主题:关于Newton插值法的程序
tina8778
[专家分:0] 发布于 2008-12-14 11:13:00
请问谁有Newton插值法的程序吗?关于求差商那部分不太明白
希望哪个大侠能帮一下忙,万谢!
回复列表 (共2个回复)
沙发
Guassfans [专家分:4090] 发布于 2008-12-14 12:19:00
function f = Newton(x,y,x0)
syms t;
if(length(x) == length(y))
n = length(x);
c(1:n) = 0.0;
else
disp('x和y的维数不相等!');
return;
end
f = y(1);
y1 = 0;
l = 1;
for(i=1:n-1)
for(j=i+1:n)
y1(j) = (y(j)-y(i))/(x(j)-x(i));
end
c(i) = y1(i+1);
l = l*(t-x(i));
f = f + c(i)*l;
simplify(f);
y = y1;
if(i==n-1)
if(nargin == 3)
f = subs(f,'t',x0);
else
f = collect(f); %将插值多项式展开
f = vpa(f, 6);
end
end
end
板凳
tina8778 [专家分:0] 发布于 2008-12-14 22:35:00
万分感谢!
我来回复