||
源代码
clear;
%lagrange插值所用的点
format rat %分数显示计算值
for n=3:1:15 %n表示legend插值的阶次
for i=0:1:n
x(i+1)=i*2/n-1
y(i+1)=1/(1+25*x(i+1)^2)
end
l=1;
for xx=-1:0.01:1
s=0;
for i=1:1:n+1
t=1;
for j=1:1:n+1
if j~=i
t=t*(xx-x(j))/(x(i)-x(j))
end
end
s=s+t*y(i)
end
m(l,n)=s
l=l+1
end
end
%画图
b=1
for x=-1:0.01:1
yy(b)=1/(1+25*x.^2)
b=b+1
end
x=-1:0.01:1
plot(x,yy,'b',x,m(:,3),'c',x,m(:,5),'k',x,m(:,9),'r',x,m(:,15),'g');
legend('原函数','3阶larange插值','5阶larange插值','9阶larange插值','15阶插值的larange函数')
grid;
title('不同阶次larange插值效果图(dx=0.01)')
xlabel('x');ylabel('y');
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-11-1 09:02
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社