南师大研究生工程数学-插值法(拉格朗日法和牛顿法)

先说一下插值的定义,本文主要讨论拉格朗日(lagrange)插值法和牛顿(newton)两种方法。

插值: 在离散数据的基础上补插连续函数,使得这条连续曲线通过全部给定的离散数据点。插值是离散函数逼近的重要方法,利用它可通过函数在有限个点处的取值状况,估算出函数在其他点处的近似值。

已知平面上n+1 个点 { x i , y i } \{x_i,y_i\} {xi,yi} 其中 i=0,1,2,3…n ;
求解析函数f(x) ,恰好经过这n+1 个点。
多项式插值: 在给给定的平面上有n+1 个点, { x i , y i } \{x_i,y_i\} {xi,yi},求一个多项式
P n ( x ) = a n x n + a n − 1 x n − 1 + a n − 2 x n − 2 + . . . + a 0 P_n(x)=a_nx^n+a_{n-1}x^{n-1}+a_{n-2}x^{n-2}+...+a_0 Pn(x)=anxn+an1xn1+an2xn2+...+a0 使 得 y = P n ( x ) 使得y=P_n(x) 使y=Pn(x),刚好经过这n+1 个点。

lagrange 插值法

首先构造一个基函数,每个点都会对应一个基函数。 x i → l i ( x ) x_i \rightarrow l_i(x) xili(x)
其中,基函数满足以下两个条件:
条件一
{ l i ( x i ) = 1 l i ( x j ) = 0 x i ≠ x j \begin{cases} l_i(x_i)=1 \\ l_i(x_j)=0 &x_i \not = x_j \end{cases} {li(xi)=1li(xj)=0xi=xj
条件二
l i ( x ) 是 多 项 式 l_i(x) 是多项式 li(x)
基函数的定义如下:
l o ( x ) = ( x − x 1 ) ( x − x 2 ) ( x − x 3 ) . . . . . . . . ( x − x n ) ( x 0 − x 1 ) ( x 0 − x 2 ) ( x 0 − x 3 ) . . . . . ( x 0 − x n ) l 1 ( x ) = ( x − x 0 ) ( x − x 2 ) ( x − x 3 ) . . . . . . . . ( x − x n ) ( x 1 − x 0 ) ( x 1 − x 2 ) ( x 1 − x 3 ) . . . . . ( x 1 − x n ) l_o(x)=\frac{(x-x_1)(x-x_2)(x-x_3)........(x-x_n)}{(x_0-x_1)(x_0-x_2)(x_0-x_3).....(x_0-x_n)} \\ l_1(x)=\frac{(x-x_0)(x-x_2)(x-x_3)........(x-x_n)}{(x_1-x_0)(x_1-x_2)(x_1-x_3).....(x_1-x_n)} lo(x)=(x0x1)(x0x2)(x0x3).....(x0xn)(xx1)(xx2)(xx3)........(xxn)l1(x)=(x1x0)(x1x2)(x1x3).....(x1xn)(xx0)(xx2)(xx3)........(xxn)
有了这个基函数,我们就可以继续求插值的多项式;
P n ( x ) = ∑ i = 0 n l i ( x ) y i P_n(x)=\sum_{i=0}^nl_i(x)y_i Pn(x)=i=0nli(x)yi

例题时刻

例1. 设有两个点(2,3),(1,2),求这两个点的插值多项式。
先求 l i l_i li
l 0 = ( x − 1 ) ( 2 − 1 ) = x − 1 l 1 = ( x − 2 ) ( 1 − 2 ) = 2 − x l_0=\frac{(x-1)}{(2-1)}=x-1\\l_1=\frac{(x-2)}{(1-2)}=2-x l0=(21)(x1)=x1l1=(12)(x2)=2x
所以有
P n ( x ) = ( x − 1 ) ∗ 3 + ( 2 − x ) ∗ 2 P_n(x)=(x-1)*3+(2-x)*2 Pn(x)=(x1)3+(2x)2
例2. 设有三个点 (2,3),(1,2),(3,1),求这三个带你的多项式插值多项式。
先求 l i l_i li
l 0 = ( x − 1 ) ( x − 3 ) ( 2 − 1 ) ( 2 − 3 ) = ( 1 − x ) ( x − 3 ) l 1 = ( x − 2 ) ( x − 3 ) ( 1 − 2 ) ( 1 − 3 ) = 1 2 ( x − 2 ) ( x − 3 ) l 2 = ( x − 2 ) ( x − 1 ) ( 3 − 2 ) ( 3 − 1 ) = 1 2 ( x − 2 ) ( x − 1 ) l_0=\frac{(x-1)(x-3)}{(2-1)(2-3)}=(1-x)(x-3)\\ l_1=\frac{(x-2)(x-3)}{(1-2)(1-3)}=\frac{1}{2}(x-2)(x-3)\\ l_2=\frac{(x-2)(x-1)}{(3-2)(3-1)}=\frac{1}{2}(x-2)(x-1) l0=(21)(23)(x1)(x3)=(1x)(x3)l1=(12)(13)(x2)(x3)=21(x2)(x3)l2=(32)(31)(x2)(x1)=21(x2)(x1)
所以有
P n ( x ) = ( 1 − x ) ( x − 3 ) ∗ 3 + ( x − 2 ) ( x − 3 ) + 1 2 ( x − 2 ) ( x − 1 ) P_n(x)=(1-x)(x-3)*3+(x-2)(x-3)+\frac{1}{2}(x-2)(x-1) Pn(x)=(1x)(x3)3+(x2)(x3)+21(x2)(x1)

newton插值法

学习这个问题之前,先介绍差商的概念,废话少说,上才艺。

差商即均差,一阶差商是一阶导数的近似值。对等步长(h)的离散函数f(x),其n阶差商就是它的n阶差分与其步长的n次幂的比值。例如n=1时,若差分取向前的或向后的,所得一阶差商就是函数的导数的一阶近似;若差分取中心的,则所得一阶差商是导数的二阶近似。

然后来一波形式化定义:
f [ x 0 , x 1 ] f[x_0,x_1] f[x0,x1]表示两个点 ( x 0 , y 0 ) , ( x 1 , y 1 ) (x_0,y_0),(x_1,y_1) (x0,y0),(x1,y1)的一阶差商;
f [ x 0 , x 1 , x 2 ] f[x_0,x_1,x_2] f[x0,x1,x2]表示三个点 ( x 0 , y 0 ) , ( x 1 , y 1 ) , ( x 2 , y 2 ) (x_0,y_0),(x_1,y_1),(x_2,y_2) (x0,y0),(x1,y1),(x2,y2)的二阶差商;
f [ x 0 , x 1 , x 2 , x 3 ] f[x_0,x_1,x_2,x_3] f[x0,x1,x2,x3]表示四个点 ( x 0 , y 0 ) , ( x 1 , y 1 ) , ( x 2 , y 2 ) , ( x 3 , y 3 ) (x_0,y_0),(x_1,y_1),(x_2,y_2),(x_3,y_3) (x0,y0),(x1,y1),(x2,y2),(x3,y3)的三阶差商;

下面介绍下差商的计算方法:
对于一阶差商 ,就是一阶导数的近似
f [ x 0 , x 1 ] = y 1 − y 0 x 1 − x 0 f [ x 1 , x 2 ] = y 2 − y 1 x 2 − x 1 f[x_0,x_1]=\frac{y_1-y_0}{x_1-x_0}\\ f[x_1,x_2]=\frac{y_2-y_1}{x_2-x_1} f[x0,x1]=x1x0y1y0f[x1,x2]=x2x1y2y1对于二阶差商,就是一阶差商的差商
f [ x 0 , x 1 , x 2 ] = f [ x 1 , x 2 ] − f [ x 0 , x 1 ] x 2 − x 0 f[x_0,x_1,x_2]=\frac{f[x_1,x_2]-f[x_0,x_1]}{x_2-x_0} f[x0,x1,x2]=x2x0f[x1,x2]f[x0,x1]就是一个迭代的过程。或者使用下图可以更加生动的表示。
在这里插入图片描述有了这个差商的定义,我们就可以继续求插值多项式了。

y ( x ) = f ( x 0 ) + f [ x 0 , x 1 ] ( x − x 0 ) + f [ x 0 , x 1 , x 2 ] ( x − x 0 ) ( x − x 1 ) + . . . . y(x)=f(x_0)+f[x_0,x_1](x-x_0)+f[x_0,x_1,x_2](x-x_0)(x-x_1)+.... y(x)=f(x0)+f[x0,x1](xx0)+f[x0,x1,x2](xx0)(xx1)+....
【注】相比拉格朗日法,牛顿法的好处在于,当有一个新的点加入时,前面的计算可以继续使用,只需要计算新加入的点就行了。

例题时刻

例3. 设有两个点(2,3),(1,2),求这两个点的插值多项式。
有差商公式可得
f [ x 0 , x 1 ] = 2 − 3 1 − 2 = 1 f[x_0,x_1]=\frac{2-3}{1-2}=1 f[x0,x1]=1223=1
所以
y ( x ) = 3 + 1 ∗ ( x − 2 ) y(x)=3+1*(x-2) y(x)=3+1(x2)

例4. 设有三个点 (2,3),(1,2),(3,1),求这三个带你的多项式插值多项式。
有差商公式可得
f [ x 0 , x 1 ] = 2 − 3 1 − 2 = 1 f[x_0,x_1]=\frac{2-3}{1-2}=1 f[x0,x1]=1223=1
f [ x 1 , x 2 ] = 1 − 2 3 − 1 = − 1 2 f[x_1,x_2]=\frac{1-2}{3-1}=-\frac{1}{2} f[x1,x2]=3112=21
f [ x 0 , x 1 , x 2 ] = − 1 / 2 − 1 3 − 2 = − 3 2 f[x_0,x_1,x_2]=\frac{-1/2-1}{3-2}=-\frac{3}{2} f[x0,x1,x2]=321/21=23
所以
y ( x ) = 3 + 1 ∗ ( x − 2 ) − 3 2 ∗ ( x − 2 ) ( x − 1 ) y(x)=3+1*(x-2)-\frac{3}{2}*(x-2)(x-1) y(x)=3+1(x2)23(x2)(x1)

也可以如下图分析。只要取红绿任意一条路就行了。
在这里插入图片描述

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值