选择多种不同的函数类型,由于代数多项式具有简单和一些良好的特性,例如,多项式是无穷光滑的,容易计算它的导数和积分,故常选用代数多项式作为插值函数。
线性插值
问题5.1
给定两个插值点
其中
,怎样做通过这两点的一次插值函数?
过两点作一条直线,这条直线就是通过这两点的一次多项式插值函数,简称线性插值。如图5.1所示。
图5.1 线性插值函数
在初等数学中,可用两点式、点斜式或截距式构造通过两点的一条直线。
下面先用待定系数法构造插值直线。
设直线方程为
,将
分别代入直线方程
得:
当
时,因
,所以方程组有解,而且解是唯一的。这也表明,平面上两个点,有且仅有一条直线通过。用待定系数法构造插值多项式的方法简单直观,容易看到解的存在性和惟一性,但要解一个方程组才能得到插值函数的系数,因工作量较大和不便向高阶推广,故这种构造方法通常不宜采用。
当
时,若用两点式表示这条直线,则有:
(5.1)
这种形式称为拉格朗日插值多项式。
,
,
称为插值基函数,计算
,
的值,易见
(5.2)
在拉格朗日插值多项式中可将
看做两条直线
,
的叠加,并可看到两个插值点的作用和地位都是平等的。
拉格朗日插值多项式型式免除了解方程组的计算,易于向高次插值多项式型式推广。
线性插值误差
定理5.1
记
为以
为插值点的插值函数,
。这里
,设
一阶连续可导,
在
上存在,则对任意给定的
,至少存在一点
,使
(5.3)
证明
令
,因
是
的根,所以可设
对任何一个固定的点
,引进辅助函数
:
则
。
由定义可得
,这样
至少有3个零点,不失一般性,假定
,分别在
和
上应用洛尔定理,可知
在每个区间至少存在一个零点,不妨记为
和
,即
和
,对
在
上应用洛尔定理,得到
在
上至少有一个零点
,
。
现在对
求二次导数,其中
的线性函数),故有
代入
,得
所以
即
5.2.2 二次插值
问题5.2
给定三个插值点
,
,其中
互不相等,怎样构造函数
的二次的(抛物线)插值多项式?
平面上的三个点能确定一条次曲线,如图5.2所示。
图5.2 三个插值点的二次插值
仿造线性插值的拉格朗日插值,即用插值基函数的方法构造插值多项式。设
每个基函数
是一个二次函数,对
来说,要求
是它的零点,因此可设
同理
,
也相对应的形式,得
将
代入
,得
同理将
代入
得到
和
的值,以及
和
的表达式。
也容易验证:
插值基函数仍然满足:
二次插值函数误差:
上式证明完全类似于线性插值误差的证明,故省略。
插值作为函数逼近方法,常用来作函数的近似计算。当计算点落在插值点区间之内时叫做内插,否则叫做外插。内插的效果一般优于外插。
例5.1
给定
。构造线性插值函数并用插值函数计算
和
解:构造线性插值函数:
分别将
代入上式,得
,准确值
,准确值
例5.2
给定
。构造二次插值函数并计算
。
解:
,准确值
例5.3
要制做三角函数的函数
值表,已知表值有四位小数,要求用线性插值引起的截断误差不超过表值的舍入误差,试决定其最大允许步长。
解
:设最大允许步长
5.2.3
次拉格朗日插值多项式
问题5.3
给定平面上两个互不相同的插值点
,有且仅有一条通过这两点的直线;给定平面上三个互不相同的插值点
,有且仅有一条通过这三个点的二次曲线;给定平面上
个互不相同的插值点
,互不相同是指
互不相等,是否有且仅有一条不高于
次的插值多项式曲线,如果曲线存在,那么如何简单地作出这条
次插值多项式曲线?
分析:
次多项式
,它完全由
个系数
决定。若曲线
通过给定平面上
个互不相同的插值点
,则
应满足
,事实上一个插值点就是一个插值条件。
将
依次代入
中得到线性方程组:
(5.4)
方程组的系数行列式是范德蒙(Vandermonde)行列式:
当
互异时,
,所以方程组(5.4)的解存在且惟一。即问题5.3的解存在而且惟一。
通过求解(5.4)得到插值多项式
,因其计算量太大而不可取,仿照线性以及二次插值多项式的拉格朗日形式,我们可构造
次拉格朗日插值多项式。
对于
个互不相同的插值节点
,由
次插值多项式的惟一性,可对每个插值节点
作出相应的
次插值基函数
。
要求
是
,的零点,因此可设
由
将
代入
,得到
(5.5)
作其组合:
(5.6)
那么
不高于
次且满足
,故
就是关于插值点
的插值多项式,这种插值形式称为拉格朗日插值多项式。
称为关于节点
的拉格朗日基函数。
例5.4
给出下列插值节点数据,做三次拉格朗日插值多项式,并计算
(0.6)。
|
-2.00 |
0.00 |
1.00 |
2.00 |
|
17.00 |
1.00 |
2.00 |
17.00 |
解:
拉格朗日插值基函数为:
三次拉格朗日插值多项式:
n
次插值多项式的误差
定理5.2
设
是
上过
的
次插值多项式,
互不相等,当
时,则插值多项式的误差:
其中
(5.7)
证明
*
:
记
。由于
,因而
是
的根,于是可设
下面的目标是算出
,为此引入变量为
的函数
:
(5.8)
令
,得
令
,由定义
即
至少有
个零点,由于
,由洛尔定理,
在
相邻的两个零点之间至少有一个零点,即
至少有
个零点。同理再对
应用洛尔定理,即
至少有
个零点,反复应用洛尔定理得到
至少有一个零点
。
另一方面,对
求
阶导数,有
令
,有
得到
(5.9)
由于
的零点
与
的零点
有关,因而
为
的函数。
若|
可表示为
(5.10)
由(5.9)式可以看到,当
是不高于
次的多项式时,
,即
。
对于函数
,关于节点
的拉格朗日插值多项式就是其本身,故拉格朗日基函数
满足
令
,得到
。
定理5.2给出了当被插函数充分光滑时的插值误差或称插值余项表达式,但是,在实际计算中,并不知道
的具体表示,难以得到
的形式或较精确的界限
,因此也难以得到界
。在实际计算中,可对误差运用下面的事后估计方法。
给出
个插值节点
,任选其中的
个插值节点,不妨取
,构造一个
次插值多项式,记为
。在
个插值节点中另选
个插值点,不妨取
,构造一个
次插值多项式,记为
。由定理2可得到
(5.11)
(5.12)
设
在插值区间内连续而且变化不大,有
,则
从而可得到
(5.13)
(5.14)
拉格朗日插值多项式的算法
下面用伪码描述拉格朗日插值多项式的算法。
1:输入:插值节点控制数
,插值点序列
,要计算的函数点
,及变量
。
2:FOR i :=0,1,…,n //i控制拉格朗日基函数序列
{tmp:=1;
2.1 FOR j:=0,1,…,i-1,i+1,…,n
{ //对于给定
,计算拉格朗日基函数
;
} // tmp表示拉格朗日基函数
2.2
}
3:输出
的计算结果
。