天天看點

多項式的嵌套乘法代碼實作

計算機求解多項式的值可以使用嵌套乘法,例如:

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

繼續閱讀