拉格朗日插值算法分析

这几天一直研究拉格朗日多项式,今天将自己对拉格朗日多项式的理解写在这里,方便大家交流。

在数值分析中,拉格朗日常用于多项式插值。假定提供一组数据点[xi,yi],拉格朗日插值多项式就是由这些

数据的线性运算得到的。


其中基本的多项式有以下公式计算得到


注意

 1.第一提供的xi应该是没有相同的,否则不能应用此算法

 2.对于每一个xi,yi都只对应一个值

 3.对于i~=j,lj(x)包括x-xi,因此,整个表达式的乘积将是0。

     

 4.相反

         

 5.因此yi*li(x)=yi,因此在每一个点xi,L(xi) = yi+0+0+........+0=yi,表明这个拉格朗日插值算法的正确性。

举例说明

x = [1 2 3 ]  y = f(x)=[1 4 9]

则L(x) = 1*(x-2)*(x-3)/{(1-2)(1-3)}+4*(x-1)(x-3)/{(2-1)*(2-3)}+9(x-1)(x-2)/{(3-1)(3-2)}=x^2

下面看一下MATLAB的具体代码实现过程。

clear,clc;
x0 = linspace(-10,10,21);
y0 = x0.^2;
x = linspace(-20,20,100);
n = size(x0,2);
L = ones(n,size(x,2));
for ii = 1:n
    for jj = 1:n
        if(ii~=jj)
            L(ii,:) = L(ii,:).*(x-x0(jj))./(x0(ii)-x0(jj));
        end
    end
end
y = 0;
for ii = 1:n
    y = y +y0(ii).*L(ii,:);
end
y1 = x.^2;
plot(x,y1,'ro',x,y,'b*')
legend('source data','langrange')
title('langrange interplation vision')


虽然样本数据点只有21个,但足以看出插值曲线足以和满足标准了,插值效果还是很好的

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值