我一直在用多项式进行一些工作,最近以基本形式对它们进行评估,我认为它可能效率低,数值不稳定。我遇到了Horner的算法,我认为这是一种比我目前正在做的更好的方法。我打算自己编写代码,但我想我先问这里Matlab是否有任何内置函数来执行此操作?
答案 0 :(得分:3)
Matlab使用Horner的算法来评估POLYVAL中的多项式(算法实现为数字滤波器,以便在评估多项式的标量输入时获得速度,请参阅this Mathworks blog post - 谢谢,Ramashalanka!)
多项式4x ^ 3 + 3表示为[4 0 3]
,可以像这样计算x的值(或值数组):
polyval([4 0 3],1)
ans =
7