其他分享
首页 > 其他分享> > 数值分析:研究高次插值的龙格现象

数值分析:研究高次插值的龙格现象

作者:互联网

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

结果

 

标签:拉格朗,xi,函数,插值,高次,龙格,x0,x1
来源: https://blog.csdn.net/m0_62670963/article/details/120686788