展开全部
下面为其函数文件代码,自己建立一个function文件保存即可
function s=Newton(x,y,x0,nn)
%Newton插值,x为插值点,y为其函数值
%x0为要求插值点的x坐标值,nn为Newton插值多项式的阶数
nx=length(x);
ny=length(y);
if nx~=ny
warning('矢量x与y的长度应该相同')
return
end
m=length(x0);
%按照公式对要求的插值点x0的每个元素进行计算
for i=1:m
t=0.0;
j=1;
yy=y;
kk=j;
while(kk<=nn)
kk=kk+1;
for k=kk:nx
yy(k)=(yy(k)-yy(kk-1))/(x(k)-x(kk-1));
end
end
t=yy(1);
for k=2:nn
u=1.0;
jj=1;
while(jj<k)
u=u*(x0(i)-x(jj));
jj=jj+1;
end
t=t+yy(k)*u;
end
s(i)=t;
end
function s=Newton(x,y,x0,nn)
%Newton插值,x为插值点,y为其函数值
%x0为要求插值点的x坐标值,nn为Newton插值多项式的阶数
nx=length(x);
ny=length(y);
if nx~=ny
warning('矢量x与y的长度应该相同')
return
end
m=length(x0);
%按照公式对要求的插值点x0的每个元素进行计算
for i=1:m
t=0.0;
j=1;
yy=y;
kk=j;
while(kk<=nn)
kk=kk+1;
for k=kk:nx
yy(k)=(yy(k)-yy(kk-1))/(x(k)-x(kk-1));
end
end
t=yy(1);
for k=2:nn
u=1.0;
jj=1;
while(jj<k)
u=u*(x0(i)-x(jj));
jj=jj+1;
end
t=t+yy(k)*u;
end
s(i)=t;
end
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询