如何从matlab中计算多项式的函数句柄计算多项式的系数?

如何从matlab中计算多项式的函数句柄计算多项式的系数?,matlab,Matlab,我有一个Matlab函数,它以非显式的方式在一个点上计算多项式(也就是说,我无法访问它的系数) 有没有一种方法可以计算它的系数(通过插值或其他方法),这样我就可以使用Matlab的根函数找到它的根 有一种使用符号变量的方法,但我想知道是否有不使用符号计算的解决方案: syms y ; coefficients=sym2poly(feval(P,y)); 谢谢您可以使用来拟合多项式 假设多项式的阶数小于或等于d,则最多需要d+1个点来估计系数: P = @(t) 4*t.^2-2.*t

我有一个Matlab函数,它以非显式的方式在一个点上计算多项式(也就是说,我无法访问它的系数)

有没有一种方法可以计算它的系数(通过插值或其他方法),这样我就可以使用Matlab的根函数找到它的根

有一种使用符号变量的方法,但我想知道是否有不使用符号计算的解决方案:

 syms y ; 
 coefficients=sym2poly(feval(P,y));  
谢谢

您可以使用来拟合多项式

假设多项式的阶数小于或等于
d
,则最多需要
d
+1个点来估计系数:

P = @(t) 4*t.^2-2.*t+1;  # an example of deg2 poly
d = 5;  # we estimate P to of at most deg 5
x = 0:d; 
y = P(x); 
coeff = polyfit(x,y,d)

coeff =
-0.0000    0.0000   -0.0000    4.0000   -2.0000    1.0000

正如你所看到的,当我们高估度时,高阶系数是零。

你知道多项式的度吗?@Shai我知道它最多20@YacineE.Faris如果你估计你的学位最多20个,你需要设置
d=20而不是此演示代码中的5。
P = @(t) 4*t.^2-2.*t+1;  # an example of deg2 poly
d = 5;  # we estimate P to of at most deg 5
x = 0:d; 
y = P(x); 
coeff = polyfit(x,y,d)

coeff =
-0.0000    0.0000   -0.0000    4.0000   -2.0000    1.0000