用matlab作拉格朗日插值,所编的函数为:(问题补充处)
来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/06 11:13:04
用matlab作拉格朗日插值,所编的函数为:(问题补充处)
m=31*24;n=31*4;
l=ones(m,n);
y2=ones(1,m);%初始化
for i=1:m;
for j=1:n;
s1=1;
for k=1:n;
if(j~=k)
s1=(x(i)-t(k))/(t(j)-t(k))*s1;
end
end
l(i,j)=s1;%计算插值基函数
end
s=0;
for j=1:n;
s=l(i,j)*sp(j)+s;%拉格朗日插值公式
end
y2(i)=s;
end
请问哪里出错了?
m=31*24;n=31*4;
l=ones(m,n);
y2=ones(1,m);%初始化
for i=1:m;
for j=1:n;
s1=1;
for k=1:n;
if(j~=k)
s1=(x(i)-t(k))/(t(j)-t(k))*s1;
end
end
l(i,j)=s1;%计算插值基函数
end
s=0;
for j=1:n;
s=l(i,j)*sp(j)+s;%拉格朗日插值公式
end
y2(i)=s;
end
请问哪里出错了?
y2=0;
x2=-1:0.01:1;
n=length(x2);
for i=0:length(x1)-1
L=ones(1,n);
for j=0:length(x1)-1
if j~=i
L=L.*(x2-(x1(1)+p.*j))/(p*(i-j));
end
end
y2=y2+y1(i+1)*L;
end
其中x1,y1为原始插值点(x,y)坐标,p为步长.
你原来n,m不相等了
x2=-1:0.01:1;
n=length(x2);
for i=0:length(x1)-1
L=ones(1,n);
for j=0:length(x1)-1
if j~=i
L=L.*(x2-(x1(1)+p.*j))/(p*(i-j));
end
end
y2=y2+y1(i+1)*L;
end
其中x1,y1为原始插值点(x,y)坐标,p为步长.
你原来n,m不相等了