拉格朗日插值多项式的龙格现象

利用插值基函数可以很容易得到拉格朗日插值多项式,公式结构紧凑,在理论分析中甚为重要。但存在以下问题:

  1. 当插值节点增减时,计算要全部重新进行,甚为不便(当然现在我们有MATLAB,只需改变下参数便可);
  2. 存在高次插值的病态问题,也即龙格现象。
    关于龙格现象,李庆扬版《数值分析》课本中,列举了采用拉格朗日插值多项式对f(x)= 1 1 + x 2 \frac{1}{1+x^2} 1+x21函数在[-5,5]上取n+1个点的插值问题。现探讨n=2~10(从二次函数到十次函数)时的插值病态现象。在n=2至10时,MATLAB计算代码如下
clc
clear
syms x0 x1 y x n x_para
x0=-5:0.1:5;
y=1./(1+x0.^2);

for n=2:10
    k=0:n;  %k的范围从0到n,共n+1项
    x(k+1)=-5+10*k/n;  %从x(1)到x(n+1),共n+1项,即从第0点到第n点
for i=1:(n+1)  %共k+1项
    part_x(i)=(x_para-x(i));  %每个因式的组成,共k+1种
end
   w_x(n+1)=prod(part_x);  %求w(x)
   w_x_diff(n+1)=diff(w_x(n+1));
   
for j=1:(n+1)
   w_x_diff(j)=subs(w_x_diff(n+1),x_para,x(j));
   ln_x(j)=(1/(1+x(j)^2)) * w_x(n+1) / ( (x_para-x(j))*(w_x_diff(j)) );
end

   Ln_x=sum(ln_x);
   x_vector=-4.99:0.037:4.99;
   Ln_x=subs(Ln_x,x_para,x_vector);
   figure
   plot(x0,y)
   hold on  
   plot(x_vector,Ln_x)
   legend ('original function','n=x')
   ylabel('f(x) and Ln(x) '); 
end

可得出n=2至10时,原函数的曲线与拉格朗日多项式插值曲线对比如下:
n=2时
n=3时
n=4时
n=5时
n=6时

n=7时
n=8时
n=9时
n=10时

由此可见,采用拉格朗日多项式插值时,Ln(x)不一定收敛于 f ( x ) f(x) fx


  • 23
    点赞
  • 141
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值