MATLAB实现牛顿插值的源程序
【摘要】
function yi=Newton(x,y,xi) %Newton插值方法,给定一系列插值的点(x,y),得到在x=xi处的,牛顿插值多项的值yi n=length(x); m=length(y); if m~=n error('x,y的长度不一样,请重新输入!'); &n...
function yi=Newton(x,y,xi)
%Newton插值方法,给定一系列插值的点(x,y),得到在x=xi处的,牛顿插值多项的值yi
n=length(x);
m=length(y);
if m~=n
error('x,y的长度不一样,请重新输入!');
return
end
A=zeros(n); %定义差商表
A(:,1)=y; %差商表第一列为y
for j=2:n %j为列标
for i=1:(n-j+1) %i为行标
A(i,j)=(A(i+1,j-1)-A(i,j-1))/(x(i+j-1)-x(i)); %计算差商表
end
end
%根据差商表,求对应的牛顿插值多项式在x=xi处的值yi
N(1)=A(1,1);
for j=2:n
T=1;
for i=1:j-1
T=T*(xi-x(i));
end
N(j)=A(1,j)*T;
end
yi=sum(N); %将x=xi带入牛顿插值多项式,得到的yi的值
end
%Newton插值方法,给定一系列插值的点(x,y),得到在x=xi处的,牛顿插值多项的值yi
n=length(x);
m=length(y);
if m~=n
error('x,y的长度不一样,请重新输入!');
return
end
A=zeros(n); %定义差商表
A(:,1)=y; %差商表第一列为y
for j=2:n %j为列标
for i=1:(n-j+1) %i为行标
A(i,j)=(A(i+1,j-1)-A(i,j-1))/(x(i+j-1)-x(i)); %计算差商表
end
end
%根据差商表,求对应的牛顿插值多项式在x=xi处的值yi
N(1)=A(1,1);
for j=2:n
T=1;
for i=1:j-1
T=T*(xi-x(i));
end
N(j)=A(1,j)*T;
end
yi=sum(N); %将x=xi带入牛顿插值多项式,得到的yi的值
end
文章来源: wenyusuran.blog.csdn.net,作者:文宇肃然,版权归原作者所有,如需转载,请联系作者。
原文链接:wenyusuran.blog.csdn.net/article/details/41725983
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)