源代码
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');
转载本文请联系原作者获取授权,同时请注明本文来自李巧玲科学网博客。
链接地址:http://blog.sciencenet.cn/blog-2292236-856990.html
下一篇:parker太阳风解-MATLAB实现