Lagrange插值算法

本章涉及知识点

1、插值问题的定义

2、插值基函数

3、Lagrange插值多项式

4、 Lagrange线性插值

5、 Lagrange抛物线插值

6、 Lagrange插值误差

7、实际案例演示Lagrange线性插值和抛物线插值

一、插值问题的定义

在实际问题中,我们往往需要计算y=f(x)的解,而很多时候f(x)可能很复杂,甚至没有其具体的函数表达式,比如微积分问题中原函数不能用初等函数来表示,那么此时应该怎么求解f(x)呢?

通常情况下,我们可以方便的测量到一些f(x)的节点,得到数据表如下

测量数据表

根据测量到的数据表,插值问题可描述为:已知某一个函数f(x)在闭区间[a,b]上测量到若干个函数值(及其若干阶导数值),如何计算f(x)在区间上任意一点x的近似值?

插值问题分为代数多项式,三角多项式,有理函数等,我们主要演示代数多项式插值

多项式插值的数学模型为:在测量的数据表中,求解一个次数不超过n的多项式来拟合f(x)

n次多项式

使得

拟合函数值

二、插值基函数

为了构造出这个n次多项式,我们先构造一个n+1个n次多项式函数li(x)来描述多项式

构造n+1和n次多项式函数

拟合的目标为

拟合的目的

展开行列式为

行列式展开

为了拟合目标,ai需要满足

ai和目标的关系

因此,需要使得行列式坐标的矩阵是单位矩阵,则可以推导出li(x)的表达式为下面分段函数

li函数的值域

由以上分段函数可知,li(x)的最高次幂为n次,所以li(x)函数可写为n个差分相乘

li函数的差分相乘形式

带入li函数的值li(x)=1求解出系数矩阵Ai

系数矩阵Ai

带入系数矩阵Ai,得到li函数的表达式为

li函数的表达式

三、Lagrange插值多项式

根据要拟合的目标

拟合的目的

Lagrange多项式定义为

Lagrange插值算法_第1张图片
Lagrange插值多项式

可知当li=1时,Lagrange多项式即完成f(x)所有值域的拟合

四、Lagrange线性插值

当我们需要构造的多项式只有一个相加计算,即n=1时,由Lagrange多项式的定义可得

线性插值表达式

我们用L1(x)来近似的拟合了f(x)。其几何意义为通过曲线f(x)的两点(x0,y0)和(x1,y1),由一条直线L1(x)来近似拟合该曲线f(x)

五、Lagrange抛物线插值

同理, 当我们需要构造的多项式有两个相加计算,即n=2时,由Lagrange多项式的定义可得

Lagrange插值算法_第2张图片
抛物线插值表达式

我们用L2(x)来近似的拟合了f(x)。其几何意义为通过曲线f(x)的三点(x0,y0),(x1,y1)和(x2,y2),由一条抛物线L2(x)来近似拟合该曲线f(x)

六、Lagrange插值误差

Lagrange插值的误差定义为

Lagrange插值的误差估计

其中M是目标函数f(x)的n+1阶导数的上界

f(x)的n+1阶导数上界

七、实际案例演示Lagrange线性插值和抛物线插值

下面我们利用上述知识点,来近似计算sin(0.3367)=?

假设我们已知f(x)=sin(x)上的三个点

Lagrange插值算法_第3张图片
已知f(x)的三个点

目标是计算出sin(0.3367),在不调用API的基础上,我们分别用Lagrange线性插值和抛物线插值来近似计算结果和误差,最后和调用API计算的结果相比

Lagrange插值算法_第4张图片
线性插值
抛物线插值

分别带入已知点和计算点,得到结果为

三种计算方法的结果

可以看到两种插值算法的结果都近似逼近API计算结果,并且随着多项式的项数增加,计算精度也随着提高

案例代码见:Lagrange插值算法

你可能感兴趣的:(Lagrange插值算法)