您的位置:首页 > 编程语言 > MATLAB

MATLAB 牛顿插值法程序

2015-11-15 16:48 288 查看
function p = newton(x,xi,yi,n)

%ton(n,n)是一个二位数组,用来保存Newton插值多项式的表。

%ton第一列保存的是yi,函数值。

%x=11.5;

%n=5;

%x1=10;

for i = 1: 1 :n

%xi(1,i)=x1;

ton(i,1)=yi(1,i);

% ton(i,1)=log(x1);

%x1=x1+1;

end

%tx一维数组保存的是课本中P109页表5-2 右端的乘子乘积

%第一个是1

tx(1,1) = 1;

for j = 2 : 1 : n

tx(1,j) =tx(1,j-1)*(x-xi(1,j-1)) ;

end

%循环生成每阶差商, ton数组第二列保存的是第一阶差商,第三列保存的是第二阶差商。以此类推,直到N-1阶差商。

for i = 2: 1 : n

m=1;

for j = i : 1 : n

ton(j,i) = ( ton(j-1,i-1) - ton(j,i-1) )/( xi(1,m) - xi(1,j) );

m = m + 1;

end

end

%用P来保存计算结果。Newton多项式Nn(x) 为ton二维数组表示的矩阵的对角线上的差商值与右端乘子乘积的和即tx()数组的乘积的和。

p = 0;

for i = 1: 1 : n

p = p + ( ton(i,i) * tx(1,i) ) ;

end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: