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

时间:2016-06-30 10:12:51

标签: matlab

我有一个Matlab函数,以非显式方式评估一个点中的多项式(即,我无法访问其系数)

y = @(t) P(t)   

有没有办法可以计算其系数(通过插值或其他方法),以便我可以使用Matlab根函数找到它的根。

有一种方法可以使用符号变量来实现,但我想知道是否存在不使用符号计算的解决方案:

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

谢谢

1 个答案:

答案 0 :(得分:2)

您可以使用polyfit来拟合多项式。

假设您的多项式的次数小于或等于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

如您所见,当我们高估度数时,高阶系数为零。