1 实验目的
研究高次插值的龙格现象。考虑函数在某区间范围内,构造拉格朗日插值多项式L(x),分别画出不同n值下的拉格朗日插值函数。
2 实验内容
2.1 实验1.1
研究高次插值的龙格现象。考虑函数在[-1,1]上取n+1个等距节点。构造拉格朗日插值多项L(x)。
(1)分别画出n=2,4,6,8,10,12,16,20的拉格朗日插值函数和函数。
(2)画出n=2,4,6,8,10,12,16,20情况下的分段线性插值函数图形。
3 实验知识点
3.1 拉格朗日插值法
3.2 matlab曲线拟合工具
4 算法思想
拉格朗日插值公式的基本思想是把Pn(x)的构造问题转化为n+1个插值函数li(x)(i=0,1,2...n)。利用节点直接构造如下多项式:
其中,πn+1(x)=(x-x0)(x-x1)...(x-xn), πn+1(x)=(xi-x0)(xi-xi-1)(xi-xi+1)...(xi-xn)
因此,n项多项式具有以下性质:
,即满足差值条件。
我们称Ln(x)为拉格朗日插值多项式,li(x)称为拉格朗日差值及函数。
5 实验代码
5.1.1
代码
for n=2:2:12
subplot(2,3,n/2)
syms x;
f=1/(1+25*x^2);
x1=sym(zeros(n+1));
W=sym(ones(n+1));
L=sym(0);
for i=0:n
x1(i+1)=-1+2*i/n;
end
for j=0:n
for i=0:n
if i~=j
w=(x-x1(i+1))/(x1(j+1)-x1(i+1));
W(j+1)=W(j+1)*w;
end
end
L=L+W(j+1)*(1/(1+25*x1(j+1)^2));
end
LL(n)=simplify(L);
x=-1:0.02:1;
y1=subs(f,x);
y2=subs(L,x);
plot(x,y1,'b');hold on;
plot(x,y2,'r');hold off;
title(['原函数f(x)=1/(1+25*x^2)与',num2str(n),'次插值函数']);
xlabel('x');ylabel('y');
legend('原函数','插值函数');
grid on
End
结果:
5.2 画出n=2,4,6,8,10,12,16,20情况下的分段线性插值函数图形
代码:
clc
clear
syms x0 y x n
a=1;
for n=[2,4,6,8,10,12,16,20]
x = linspace(-1,1,n+1);
y = 1./(1+25.*(x.^2));
x0 = -1:0.001:1;
In = interp1(x,y,x0) %分段插值
subplot(4,2,a)
plot(x,y,'ro',x0,In,'b')
grid on
legend ('节点','分段插值函数')
ylabel('In(x)');
a=a+1
End
结果