计算机求解多项式需要多次乘法,为了减少乘法次数可使用嵌套乘法。
如若多项式为:
则可使用嵌套法展开为:
matlab实现:
% 嵌套乘法
% 使用霍纳方法以嵌套形式计算多项式的值
% 输入:多项式的阶d,
% d+1个系数构成的数组c(第一个元素为常数项),
% x坐标需要进行求值的x位置,
% 如果需要的话,还有d个基点构成的数组b
% 输出:多项式在x点对应的值y
function y = nest(d,c,x,b)
if nargin<4
b=zeros(d,1);
end
y=c(d+1);
for i=d:-1:1
y=y.*(x-b(i))+c(i);
end
可以验证此算法