作业帮 > 综合 > 作业

matlab拉格朗日插值程序

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/14 19:42:11
matlab拉格朗日插值程序
function [a,d] = Lagrange(x)
y=1./(1+x.^2);
n=length(x);
a=0;
syms t l
for(i=1:n)
l=1;
for(j=1:i-1)
l=l*(t-x(j))/(x(i)-x(j));
end;
for(j=i+1:n)
l=l*(t-x(j))/(x(i)-x(j));
end;
a=a+l*y(i);
end;
t=[0.75,1.75,2.75,3.75,4.75];
d=subs(a);
end
求大神指点我的程序哪里不对?运算结果偏差很大.
用拉格朗日插值做y=1./(1+x.^2);本来就有很大的偏差,你的插值函数没写错

这是我做过的一个y=1/(1+25x^2)的图像 ,这里取得是11点,你的应该是5点的吧.你的做完是这种么.这样没错,插值法不适合太多点,想做多点的用的是分段插值.你应该是在学计算方法的课程吧,后边就会讲的.