計算機求解多項式的值可以使用嵌套乘法,例如:
P(x) = 2x^4 + 3x^3 - 3x^2 + 5x -1
可以展開一般形式:
c1 + (x - r1)( c2 + (x - r2)(c3 + (x - r3)(c4 + (x - r4)(c5))))
其中c = [-1 5 -3 3 2] , 階次d = 4,r = [0 0 0 0];
在matlab下實作:
function y = nest(d,c,x,r)
if nargin < 4
r = zeros(1,d);
end;
y = c(d+1);
for i = d:-1:1
y = y.*(x-r(i))+c(i);
end
驗證一下:
>> nest(4,[-1 5 -3 3 2],1/2)
ans =
1.2500