function Newton(X,Y,x0)
syms x; %符号变量
if length(X)==length(Y)
len=length(X);
else
disp('向量维度不等');
return
end
p=Y(1);
w=1;
for i=1:1:len-1
Y(i+1:len)=(Y(i+1:len)-Y(i:len-1))./(X(i+1:len)-X(1:len-i));
A(i)=Y(i+1);
w=w*(x-X(i));
p=p+A(i)*w;
simplify(p);
if i==len-1
if nargin==3
disp('给定点的函数值为 ');
p0=subs(p,'x',x0);
vpa(p0,6)
else
disp('牛顿插值表达式为 ');
p=collect(p);
p=vpa(p,6)
end
end
end
end
clc;
X=[0 1 2 3];
Y=[-7 -4 5 26];
Newton(X,Y);
matlab牛顿插值法
最新推荐文章于 2024-07-08 16:30:00 发布