理解插值法(拉格朗日、牛顿插值法)

引言

我们首先理解下插值法主要用来做什么事:插值法就是利用已知的点建立合适的插值函数 f ( x ) f(x) f(x) ,未知点 x i x_i xi 由插值函数 f ( x ) f(x) f(x) 可以求出函数值 f ( x i ) f(x_i) f(xi),用求得的 ( x i , f ( x i ) ) (x_i,f(x_i)) (xi,f(xi))近似代替未知点。

对于平面上相异(无两点在一条直线上)的 n n n 个点,我们必定可以找到一个 n − 1 n-1 n1 次多项式 y = a 0 + a 1 x + a 2 x 2 + . . . a n − 1 x n − 1 y=a_0+a_1x+a_2x^2+...a_{n-1}x^{n-1} y=a0+a1x+a2x2+...an1xn1 ,使这个多项式函数经过这些点。拉格朗日插值法和牛顿插值法所要做的就是求得这个多项式函数。只是求得多项式的方式有些不同,下面详细介绍。

拉格朗日插值法

  1. 已知 n n n 个点的坐标 ( x 1 , y 1 ) , ( x 2 , y 2 ) , ( x 3 , y 3 ) . . . . ( x n , y n ) (x_1,y_1),(x_2,y_2),(x_3,y_3)....(x_n,y_n) (x1,y1),(x2,y2),(x3,y3)....(xn,yn),求得一个 n − 1 n-1 n1 次多项式 过这些点。
  2. 假设 n − 1 n-1 n1 次多项式为: y = a 0 + a 1 x + a 2 x 2 + . . . a n − 1 x n − 1 y=a_0+a_1x+a_2x^2+...a_{n-1}x^{n-1} y=a0+a1x+a2x2+...an1xn1
  3. 将n个点代入多项式得: y 1 = a 0 + a 1 x 1 + a 2 x 1 2 + . . . a n − 1 x 1 n − 1 y_1=a_0+a_1x_1+a_2x_1^2+...a_{n-1}x_{1}^{n-1} y1=a0+a1x1+a2x12+...an1x1n1 y 2 = a 0 + a 1 x 2 + a 2 x 2 2 + . . . a n − 1 x 2 n − 1 y_2=a_0+a_1x_2+a_2x_2^2+...a_{n-1}x_{2}^{n-1} y2=a0+a1x2+a2x22+...an1x2n1 . . . . . ..... ..... y n = a 0 + a 1 x n + a 2 x n 2 + . . . a n − 1 x n n − 1 y_n=a_0+a_1x_n+a_2x_n^2+...a_{n-1}x_{n}^{n-1} yn=a0+a1xn+a2xn2+...an1xnn1
  4. 易解出拉格朗日插值多项式为: L ( x ) = y 1 ( x − x 2 ) ( x − x 3 ) . . . ( x − x n ) ( x 1 − x 2 ) ( x 1 − x 3 ) . . . ( x 1 − x n ) + y 2 ( x − x 1 ) ( x − x 3 ) . . . ( x − x n ) ( x 2 − x 1 ) ( x 2 − x 3 ) . . . ( x 2 − x n ) L(x)=y_1\frac{(x-x_2)(x-x_3)...(x-x_n)}{(x_1-x_2)(x_1-x_3)...(x_1-x_n)}+y_2\frac{(x-x_1)(x-x_3)...(x-x_n)}{(x_2-x_1)(x_2-x_3)...(x_2-x_n)} L(x)=y1(x1x2)(x1x3)...(x1xn)(xx2)(xx3)...(xxn)+y2(x2x1)(x2x3)...(x2xn)(xx1)(xx3)...(xxn) . . . + y n ( x − x 1 ) ( x − x 2 ) . . . ( x − x n − 1 ) ( x n − x 1 ) ( x n − x 2 ) . . . ( x n − x n − 1 ) ...+y_{n}\frac{(x-x_1)(x-x_2)...(x-x_{n-1})}{(x_{n}-x_1)(x_{n}-x_2)...(x_{n}-x_{n-1})} ...+yn(xnx1)(xnx2)...(xnxn1)(xx1)(xx2)...(xxn1)
  5. 上式也可以写为:
    L ( x ) = ∑ i = 1 n y i ∏ j = 1 , j = ̸ i n x − x j x i − x j L(x)=\sum_{i=1}^{n}y_i \prod_{j=1,j =\not i}^n \frac{x-x_j}{x_i-x_j} L(x)=i=1nyij=1,j≠inxixjxxj

拉格朗日插值公式在理论分析理解上很容易理解,但是若插值节点发生改变时,插值公式随之就要重新计算生成,在实际计算中会占用大量的计算量。e.g. 现在有n个节点生成的插值公式,这里第 n+1 个节点也要加入进去,若使用拉格朗日插值法,之前的n个节点生成的插值公式则要完全调整废弃,重新生成含 n+1 个节点插值公式,这样就带来很大的计算量。正常的想法是,当一个节点要加入,我们只需在原来的插值公式上稍加修改就可以得到新的插值公式,牛顿法的出现正是克服这个问题,当插值节点发生增加,新的插值公式基于原来的公式很容易就得到。

牛顿插值法

要理解牛顿插值法首先理解一些概念:

差商:

设函数 f ( x ) f(x) f(x) ,已知其 n n n个插值节点为 ( x 1 , y 1 ) , ( x 2 , y 2 ) , ( x 3 , y 3 ) . . . . ( x n , y n ) (x_1,y_1),(x_2,y_2),(x_3,y_3)....(x_n,y_n) (x1,y1),(x2,y2),(x3,y3)....(xn,yn),我们定义:

  • 一阶差商
    在这里插入图片描述
  • 二阶差商
    在这里插入图片描述
  • n n n阶差商
    在这里插入图片描述
    其中 ⋀ \bigwedge 是省略的意思 ̄□ ̄||。

由以上定义我们的到 差商表 如下:
在这里插入图片描述
基于差商的牛顿插值公式:

根据差商的定义,我们可以得到下面公式:
在这里插入图片描述

我们可以从后往前不断地代入消去得到:
在这里插入图片描述
这时候上式有两部分组成, (不含未知x的)牛顿插值逼近函数 P ( x ) P(x) P(x)(含未知x的)误差函数 R ( x ) R(x) R(x)也称为余项 R ( x ) R(x) R(x) 去掉,就得到牛顿插值公式:
在这里插入图片描述

拉格朗日、牛顿插值法小结

motivation: 将缺失的函数值对应的点 x x x 代入多项式得到缺失值的近似值 f ( x ) f(x) f(x)

牛顿插值法和拉格朗日插值法两者都是多项式插值法。从本质上说,两者给出的结果是一样的(相同的次数,相同的系数多项式),只不过表示的形式不同。牛顿插值法与拉格朗日插值法相比具有承袭性和易于变动的特点。

  • 7
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
牛顿插值法拉格朗日插值法都是用来求解函数在给定点处的近似值的方法,它们的主要区别在于插值多项式的形式和计算方法。 牛顿插值法基于差商的概念,将插值多项式表示为一个递推的形式,每次增加一个节点,就可以通过差商的计算来求解新的多项式系数。具体来说,对于给定的一组节点和函数值,牛顿插值法的计算过程如下: 1. 将节点按照升序排列,设节点为x0,x1,...,xn,对应的函数值为f0,f1,...,fn。 2. 定义差商f[xi,xj]为函数在节点xi和xj处的斜率,即f[xi,xj]=(fi-fj)/(xi-xj)。 3. 定义n次插值多项式为Pn(x),其中Pn(x)的系数为f[x0],f[x0,x1],...,f[x0,x1,...,xn]。 4. 递推计算插值多项式的系数,即f[x0,x1,...,xk]=(f[x1,x2,...,xk]-f[x0,x1,...,x(k-1)])/(xk-x0),其中k=1,2,...,n。 5. 最终的插值多项式为Pn(x)=f[x0]+f[x0,x1](x-x0)+...+f[x0,x1,...,xn](x-x0)(x-x1)...(x-xn)。 相比之下,拉格朗日插值法则是通过构造拉格朗日基函数来表示插值多项式,每个基函数都满足在给定节点处的函数值为1,而在其他节点处的函数值为0。然后将每个基函数与对应节点处的函数值相乘,再将它们相加即可得到插值多项式。具体来说,对于给定的一组节点和函数值,拉格朗日插值法的计算过程如下: 1. 将节点按照升序排列,设节点为x0,x1,...,xn,对应的函数值为f0,f1,...,fn。 2. 定义n次拉格朗日基函数为li(x),其中li(x)=∏(j=0,j≠i,n)(x-xj)/(xi-xj)。 3. 定义n次插值多项式为Pn(x),其中Pn(x)=∑(i=0,n)li(x)fi。 4. 最终的插值多项式为Pn(x)。 总的来说,牛顿插值法拉格朗日插值法都是有效的插值方法,具体应用取决于问题的质和计算需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值