当前课程知识点:数值分析 > 第五章 插值法 > 5.6 Hermite 插值 > Hermite 插值
同学们 大家好
我是北京理工大学 朱国庆老师
在前面拉格朗日插值多项式
和牛顿插值多项式的基础之上
我们给大家介绍了分段线性插值多项式的理论
今天给大家接着讲Hermite插值理论
首先
Hermite插值理论讨论的时候
是说分段插值多项式的时候
我们只知道了函数值的概念
它保证不了光滑性
然后如果我们在x0,x1,xn之上
然后如果我们在x0 x1 xn之上
n+1个节点上
不仅知道了它的函数值
还知道它的导数值
那么我们这个时候
是希望构造一个多项式
满足函数值的相等
以及导数值的相等
这样我们就可以把分段插值多项式的
光滑性不能满足的这个条件
在这里得到解决
那么现在的问题就是
如果是x0 x1 xn
一共是n+1个节点
函数值有n+1个
那么导数值也有n+1个
一共是2n+2个数据
我们能够确定多少次的一个插值多项式呢
这个线性代数当中的理论会告诉你
我们至多可以找到一个
2n+1次的一个插值多项式H(x)
这个H(x)
我们一般都称之为函数f(x)的
Hermite插值多项式
下面的问题就是
如果我们知道了插值多项式H(x)
我们如何通过一个简单的形式给它构造出来
在前面
我们给大家讲插值多项式理论的时候
拉格朗日插值多项式的理论
是说我们给定的节点
我们可以构造关于节点的插值基函数
然后把插值多项式
写成插值基函数与函数值的线性组合的形式
那么我们可以按照这个思路来构造
Hermite的插值多项式
这个就是既然求这个插值多项式
我们构造插值基函数
首先我们想找一个插值基函数
它满足在节点x0 x1 xn-1上
函数值和导数值都等于0
在xi上函数值等于1 导数值为0
其它的点上都是函数值为0
导数值也为0
就是这个条件
当i和j相等的时候
我们hi(xj)是等于1的
j跟i不相等的时候
我们取的是0
那么函数值满足这个条件
导数值就是所有的xj之上
hi的导数全都等于0
这是2n+2个条件
确定2n+1次的多项式
同样我们还想知道Hi(x)
它满足的是在所有的节点之上
函数值为0
导数值只在对应的下标i那个位置
xi上取成1
其它也为0
是这样的 Hi(xj)等于0
恒等于0
j是从0一直到n的
Hi的导数在xj点上
j等于i的时候取1
j不等i的时候取0
我们把hi和Hi都称为函数f(x)
它这个插值多项式的基函数
我们把插值多项式的形式写成yi hi
和这个yi的导数乘上Hi(x)的形式
这个里面这个yi
和这个yi的导数我们都叫做系数
然后函数hi(x)
和Hi(x)都是2n+1次的多项式
按照这种形式的构造
这个Hermite插值多项式的形式
实际上是拉格朗日插值多项式的形式
在导数方面的一个推广
我们下面来看一下插值基函数
Hi(x)的构造问题
这里面
如果我们已经知道了
x=a是g(x)这个函数的根的话
也就是g(a)=0
我们可以假设
g(x)有一个因子是x-a
如果我们不仅知道了
x=a是g(x)这个函数的根
而且x=a还是g(x)的导数的一个根
也就是x=a是g(x)这个函数二重根的话
那我们可以把g(x)这个函数写成
(x-a)的平方h(x)的这种形式
我们前面的讨论的hi(x)
它在x0,x1一直到xi
它在x0 x1一直到xi
xi+1到xn
这一共是对应的n个节点之上
它有两个数据的话
这n个节点上全都是二重根
我们可以把hi(x)写成li(x)的形式
这里面这个li(x)就是
前面拉格朗日插值基函数当中那个定义li(x)
因为它是一个2n+1次的多项式
li(x)是n次多项式
那么平方起来之后就是2n次的函数
我们把2n减2n+1次的多项式
写成2n次的一个函数了
那么前面只剩下一个线性的一个系数问题了
写成a加上b倍的x-xi的形式
根据前面的条件当中
我们x0 x1一直到xi-1
它的导数函数值都在li当中已经体现出来了
后面的xi+1到xn
这里面函数值导数值也都用过了
我们想算a和b的时候
我们只需要利用在xi点之上的函数值
也就是等于1
也就是还有一个xi上的导数值等于0
这两个条件来确定a和b
这两个条件来确定a和b
分别把它代进去就行了
a=1
b是等于-2倍的li这个函数在xi点的导数
那么这个hi(x)
我们就可以通过这种方式给它写出来了
1-2li(xi)的导数
然后乘上(x-xi)
这是中括号
然后是li的平方
同样完全类似的
Hi(x)的构造
我们也可以按照这个思路
因为在x0 xi-1包括xi+1到xn之上
它是二重根
然后我们可以把这个Hi(x)形式上写成
li的平方的形式
然后在xi上它是根
所以加一个x-i
然后在xi上导数等于1
我们利用导数等于1这个条件
把给定的常数C可以确定下来
这个C算出来就是1
所以Hi(x)就是(x-xi)乘上li的平方
整理一下
我们把hi和Hi放在一起
然后如果是n=1的时候
也就是两个节点
我们看一下l0(x)是x-x1
除上x0-x1
然后l0(x0)在x里面的导数是x0-x1分之1
h0(x) H0(x) l1(x)
l1(x1)的导数
然后是h1(x)和H1(x)
这些表达式我们把它合成
两点三次Hermite插值多项式
这里面y0是已知的x0点的函数值
y1是x1点的函数值
y0的导数是已知的x0点的导数值
y1的导数实际上是已知的x1点的导数值
我们把y0前面的这个
叫做Hermite的插值基函数
y1前面的是x1点的插值基函数
y0导数前面的叫做导数的插值基函数
y1导数前面的系数叫做这个导数的插值基函数
总体上而言
我们可以把Hermite的插值多项式的形式
写成已知数据
y0 y1 y0的导数 y1的导数
前面是插值基函数线性组合的形式
这个和拉格朗日插值基函数的思路是一致的
其实我们按照前面的讨论的过程
如果是按照牛顿插值多项式的思想
我们还可以构造
另外一种Hermite插值多项式的一个表达形式
因为H(x)跟N(x)之间是有关系的
我们知道给定的n+1个数据
知道了函数值
我就可以构造n+1个节点的函数值
我就可以构造出来一个
n次的牛顿插值多项式
所以我可以把H(x)写成Nn(x)
再加上一个多项式的形式
这里面这个ωn+1(x)
其实就是x-xi的连乘积
它是一个n+1次的多项式
我们那个H(x)
我希望是一个2n+1次的
所以前面只剩了一个
pn(x) n次多项式的一个余项的形式
这里面可以跟大家说
形式上可以这么来写
其实我们还可以把H(x)这种写法理解成
H(x)和ωn+1(x)的一个除法
也就是多项式除法的问题
那么按照多项式除法的理解
pn(x)其实就是所谓的商
Nn(x)就是那个余数
这里面
我们这个Nn(x)是f(x)
过x0 x1 xn的牛顿插值多项式
然后满足的条件其实是
可以通过牛顿插值多项式
直接构造出来就行了
根据前面的导数的条件
H在xi点的导数等于yi'
那么这个里面确定Nn(x)的时候就
n+1个条件来确定
n次插值多项式p(x)的系数就可以了
事实上
按照pn(x)求解的时候
只需要满足Hi(x)的导数等于Nn(xi)的导数
然后再加上pn(xi) ωn+1(xi)的导数
它就等于yi
我们可以把pn(xi)其实是可以给出来
我们看一个简单的例子
这个例子是这么来说的
按照下面表格中的数据
让你求出来所谓的Hermite插值多项式
这里面xi
实际上给了个0 给了1
yi给了个0 给了1
然后yi的导数给的是3和9
按照前面基函数的那个做法
hi(x) Hi(x)的表达式
在这里
我们把lo(x)给出了 l1(x)给出了
h1(x) 然后H0(x) H1(x)
那么这里面我们少写了一个h0(x)
为什么呢
因为我们这里面
h0(x)是要和那个yi
在x0点的值是做乘法的
然后我们看到这里面
当xi取0的时候
yi是等于0的
所以那个h0(x)其实可以不要的
把已经知道的h1(x)
H0(x)和H1(x)组合一下
就得到了我们所要求的Hermite的表达式
10倍的x3次方减掉12倍的x平方再加上3x
同样
如果我们按照牛顿插值多项式的那个思路
我们可以叫做降阶法的处理
我们把这个根据函数值
我们可以先构造一个一次多项式
因为是两个节点
然后把我们所求的Hermite插值多项式
构造成一次多项式再加上a
加上bx
然后是(x-0)和(x-1)的这个连乘积的形式
根据条件
H(x)这个函数求一个导数
那么它的表达式可以直接给出来
把这个x=0的导数值代进去
x=1的导数值代进去
得到一个关于a和b的叫做二元一次方程组
可以把a算出来等于-2
b算出来等于10
这样的话
我们就知道了H(x)当中的那个系数
a和b代进去
当然结果还是10倍的x3次方减掉12倍的x的平方
加上3x
在前面的这个构造的基础之上
我们说Hermite插值多项式
它有什么样的一个误差呢
也就是我们这个书上的定理
假设x0 x1 xn
是[a,b]区间之上的互异节点
H(x)是f(x)过这个节点的Hermite插值多项式
如果f(x)这里面我们是假设
它具有2n+1阶的导数
那么对任意的一个区间内的点x
我们这个余项f(x)的表达式可以写成
函数 f(x)在ξ点的
Rn+2阶导数除上Rn+2的阶乘
然后是ωn+1的平方
在里面ξ是ab区间当中的某一个点
这里面跟大家着重强调了就是说
如果是两个点
三次Hermite插值多项式的话
那么它的余项应该是
这个f在ξ点的4阶导数
4的阶乘除上4的阶乘
然后是(x-x0)的平方 (x-x1)的平方
我们看下这个定理
跟前面的拉格朗日插值多项式的
那个误差估计的定理其实比较类似的
当然这个证明过程也是完全类似的
看下这个证明
我们知道前面讨论的函数
R(x)这个函数的余项
在x=xi的时候是等于0的
在x等于xi的时候
它的导数也是等于0的
这个时候我们可以说
这个x等于xi其实是余项函数
R(x)的二重根
根据前面当中讨论的那个概念
我们可以把R(x)写成K(x)ω*n+1(x)
它的平方的形式
对任意固定的一个区间内的一个点x
我们假设这个x取得不等于xi
那么我们可以构造一个ψ函数
ψ(t)等于f(t)减掉H(t)
再减掉K(x)
ωn+1的平方(t)
这里面呢
我们给大家前面说的是一样的
这个ψ(t)
它是具有2n+2阶的导数
而且ψ(x)是等于0的
然后ψ(xi)也是等于0的
ψ(xi)的话一共是n+1个点
然后加上一个x
一共是n+2个点
这里面对ψ(x)函数求一个导数
因为是n+2个零点求导数的话
当然有
根据n+1个点 n+2个点
不一样的n+1个导数的零点
形式上这么来写
ψ函数关系式求导数
f的导数减掉H的导数减掉K(x)
x是跟t无关的
这是一个系数
然后这个表达式在这
根据前面的插值条件
f这个函数
它在xi的导数是等于大写的Hi(xi)的
所以说呢
这里面这个函数ψ在xi的导数
它也是等于0的
这里面ψ关于t的这个导数
在x0 x1 xn
这是n+1个点
而且
上面那个ψ定义的时候
有跟这n+1个点不一样的另外的n+1个零点
所以ψ(t)这个函数
在[a,b]区间上就一共有
n+1再加上n+1
一共是2n+2的零点
那么我们根据前面提到的
反复使用这个罗尔中值定理
然后我们可以假设
我们可以知道ψ这个函数
在求2n+1阶导数
一共是求了2n+2阶的导数
那么在这个[a,b]区间
这样至少还有一个零点ξ
它满足的就是在ξ这个点之上
ψ(2n+2)阶的导数
它是等于0的
然后我们的这个具体表达式是
f关于2n+2阶的导数ξ点的值
减掉K(x) 2n+2的阶乘
整理一下
我们就可以把K(x)的表达式求出来
K(x)就等于2n+2的阶乘分之
f的2n+2的阶的导数在ξ点的值
整理一下我们要求的这个R(x)
就等于f在ξ点的2n+2阶的导数
除上2n+2阶乘
ωn+1(x)
这里面当x=xi的时候
我们那个证明的结论
R(n)的表达式显然是成立的
这个定理呢
就到此就证明完了
我们看下面一个
关于这个函数
如果这个函数是我们假设在区间之内
是一个一阶光滑的
那么函数在互异节点之上的
2n+1次的Hermite插值多项式是唯一的
首先
我们假设如果这里面有个H(x)
和H(x)的上面加了一横线
都是满足插值条件
2n+2次的多项式
那么我们说
第二个H上面加一横线的这个插值多项式
是前面的H(x)的
2n+1次的Hermite插值多项式
这个就是
你做一个插值多项式
可以把它视为另外一个插值多项式的插值多项式
这里面 两个插值多项式做一个减法
H(x)减掉H上面加一横线的这个H(x)
那么它就是一个H的2n+2阶的导数在ξ点的值
然后是2n+2的阶乘
那是ωn+1(x)
因为我们这里面这个H也好
H上面加一横线也好
这两个好像都是2n+1次的多项式
所以你现在这里面求了2n+2阶的导数
所以它就只能等于0了
这就是证明出来
我们知道这个Hermite插值多项式的所谓的唯一性
这个定理其实是想告诉我们
这个插值多项式是唯一的
然后前面的那个两个算法
一个是基函数的构造方法
一个是降阶的构造思路
都是讨论的插值多项式的存在性
下面给一个简单的推论
如果函数f(x)是
不超过2n+1次的这个插值多项式
那么这是多项式
然后H(x)是函数f(x)的
过任意n+1个节点的Hermite插值多项式
那么我们说
如果你被插值函数本身是个多项式
你构造出来的这个插值函数也是个多项式
它们两个只要是对应的
这个次数是能够匹配起来的
那这个H(x)肯定就是f(x)的本身了
另外一个
像拉格朗日插值基函数满足的性质是一样的
这里面给定的只关于函数值的基函数hi(x)
在i从0到n之上求和的话
那这里面它也是一个
∑求和之后等于1这样的一个概念
在这个Hermite插值多项式基础之上
我们还说
既然拉格朗日插值基函数也好
牛顿插值基函数也好
它没办法满足所谓的高阶
这个更加逼近的这个精度
我们采用的分段线性插值函数理论一样
我们Hermite插值的时候
也希望可以做一个分段的Hermite插值的讨论
因为任意两个节点之上Hermite插值的话
都具有这个函数值和导数值
所以我们的分段Hermite插值应该是三次的
严格的数学描述是这样的
在节点x0 x1 xn之上
函数值yi=f(xi)的
yi的导数等于f(xi)的导数
我们把节点两两的分段
在每一段之上做三次Hermite插值
使得函数值H(xi)等于yi
导数值H(xi)的导数等于yi的导数
然后在每个小区间段之上
这个H(x)都是一个三次多项式
形式上来说就是
如果x取定了xi到xi+1之上某一个小区间段内
H(x)的表达式都可以通过任意的
前面的那个两点三次Hermite插值多项式给出来
这里面简单给大家说一下
分段Hermite插值多项式的误差估计问题
每个小段之上都是一个三次多项式
所以其实就是f(x)-H(x)在一个小段之上的
那个h的4次方 分母是384
然后是f在区间a b之上四阶导数的最大值
证明过程就是把x取定到xi xi+1加一这个小区间段之上
按照这个f(x)减掉H(x)的表达式
这一个4的阶乘分之1
然后是x-xi的平方 x-xi+1的平方
后面是f这个函数在xi到xi+1这个区间之上
四阶导数的最大值
同样
这里面那个x-xi
乘上x-xi+1
根据这个不等式2分之xi+1减掉f(xi)的平方
就可以证明前面的结论了
Hermite插值多项式
其实我们还有更一般的形式
如果我们知道函数f(x)在n+1的互异节点上的函数值
这里面x0 x1 xn一共是n+1个节点
函数值我们知道
但是呢
我们不是知道所有的节点之上的导数值
我们只是知道某一些节点上的导数值
就是这个x0 x1 xn
这里面可能有一些个别节点事实上
只知道函数值
不知道导数值
那个xik
下面是ik
这个k是0 1 2一直到m
这个m可能要比n要小
那么我们要求得一个多项式
这个不再是一个2n+1次的多项式了
因为那个m要比n小
我们要求的是一个n+m+1次的一个多项式
我们要求的是一个n+m+1次的一个多项式
要求的条件满足的还是在节点之上
xi节点之上函数值是yi
然后在xik上
它的导数值等于yik就可以了
这个方法一般来说求解的时候
我们是拉格朗日插值基函数这个方法
可能没有那么好用
我们一般推荐的是这个降阶法来处理
首先还是根据你给定的x0 x1 xn
这n+1个节点之上
我们求出来一个牛顿插值多项式Nn(x)
然后我们说你既然函数值已经用过了
就是ψn+1已经有了
那么我们还可以再构造一个
就是ωn+1
拿ωn+1去除这个H(x)
我们还有一个M次的一个多项式
写成pm(x)
乘上ωn+1这种形式
相当于是这个降阶法
我们分了两步走
把Hermite插值多项式的问题
先改成一个求n次牛顿插值多项式的过程
然后再确定一个m次的
所谓的ωn+1(x)的系数的问题
这里面pm(x)的条件
还是由导数的条件来确定的
也就是在xik之上 这些节点之上
它的导数值是等于yik的导数的
下面是一个关于这个Hermite插值
一般形式的一个误差估计的定理
假设函数f(x)是n+m+2阶的光滑性
然后n+m+1次的插值多项式 f(x)
满足插值条件
在n+1个xi之上函数值满足
在m+1个xik之上
它导数值是满足的
那么我们结论就是在
区间a b之上任意一个点x
它的误差估计R(x)就是等于
函数f在ξ点的n+m+2阶的导数
除上n+m+2的阶乘
然后后面乘的是ωn+1(x)
这是函数值确定的
后面还有一个x-xik
导数来确定的那个xik
再做一个连乘积的形式
大家注意后面那个多项式ω
和后面连乘积
它加起来肯定还是n+m+2
我们简单看一下这个定理是如何来证明的
其实跟前面证明比较类似
我们假设这里面R(xi)是等于0的
这个R(xik)是等于0的
我们就可以把那个R(x)假设成K(x)
ωn+1(x)
后面x-xik的连乘积
这里面任意的固定a b区间内的一个点x
我们假设x不等于xi
然后我们构造一个ψ(t)
是等于f(t)减掉H(t)剪掉K(x)ωn+1(t)
后面是t减掉xi的连乘积
这个里面ψ(t)
它肯定是n+m+2阶可导的
然后ψx是等于0的
而且在ψ在xi之上也是等于0的
而且在ψ在xi之上也是等于0的
xi一共是n+1个
加上x 一共n+2个点
那么我们对这个ψ函数呢
求一个导数在区间a b之上
它就至少具有了n+1个异于x和xi的零点
ψ(t)的导数的形式写出来
这是f的导数减掉H的导数
然后再减掉k(x)
乘上中括号内ωn先求个导数
然后是后面连乘积的导数
当然中间还要有个求和
由前面的插值条件
我们知道函数f在xik之上
它有xik
一共是从0一直到m
一共是m+1个零点
也就是ψ关于t的导数这个表达式
一共是n+1个前面的异于xi和x的零点
然后xi当中还有m+1个xik的零点
一共是n+m+2个零点
所以ψ关于t的导数在a b这个区间之上
n+m+2零点
我们可以利用罗尔中值定理
再对它进行求n+m+1阶的导数
一共是n+m+2阶的导数
然后把这个形式写出来
这里面那个k(x)是不变的
然后在这个n+m+2的零点之上
这个导数基础之上我们找一个零点ξ这个点
那么这个k(x)就可以写成
函数f的n+m+2阶的导数
在ξ点的值
除上n+m+2的阶乘
整理一下
R(x)的表达式就是这个k(x)乘上ωn+1(x)
后面是x-xik的连乘积
也就是我们定理当中的形式了
当然了
这里面x等于xi的时候也就是这个节点
x取到节点的时候
上面表达式显然是成立的
这个定理证明就到此结束了
下面我们来看一个例子
给定的数据表格
第一行是函数xi的取值0 1 2
第二行是函数值
告诉你三个
然后第三行
这里面一阶导数值给两个
还给了一个二阶导数值
也就说我们给定了有六个条件
其实是可以确定一个五次多项式的
然后这个里面
我们根据xi知道的那个y的函数值
我们其实三个条件可以构造一个二次的插值多项式
N2(x)写出来之后
这是个x平方-2x+2
用降阶法的思路
我们可以把你要求求解的这个插值多项式
构造成p5(x)的形式
然后p5(x)等于
N2(x)加上后面是x-0乘上x-1乘上x-2
然后前面呢
因为是五次多项式
你后面已经是三次多项式了
所以我们只需要假设一个
ax的平方加bx加c的形式就可以了
下面根据一阶导数和二阶导数
我们要把
这里面的a b c三个系数给确定下来
首先对p5(x)这个函数求个一阶导数
然后利用一阶导数当中有两个数据
然后再求一阶导数就是二阶导数
我们这里面就利用那个二阶导数的一个数据
一共三个数据
我们希望把a b c三个都求出来
当然就是把这些数据都代进去就行了
在x0点p5的一阶导数等于-2
在x等于1这个点
p5(x)的一阶导数等于-1
在x0这个点
p5(x)的二阶导数等于-10
整理一下
我们得到关于a b c的三元一次方程组
这里面很显然可以算得出来
a b c的值
整理一下
把这个p5(x)的具体的形式给出来
前面那个x平方-2x+2就是那个N2(x)
后面的就是我们刚才算出来的
这个含有未知数a b c的
它的一个计算的过程
这就是我们要说的这个p5(x)的具体表达式
当然这个余项的形式
根据这个前面的定理
f(x)减掉五次多项式的形式
它当然就是一个六阶导数
函数f在ξ点的6阶导数除上6的阶乘
然后x这个点是出现了三个数据
x的3的次方
然后x等于1的时候两个数据
x-1的平方
x等于2的时候
这里面是一个数据
所以它就是x-2就可以了
行 这个例题到此结束
本节的内容分享到这里
-1.1 误差的概念
--误差的概念
-1.2 误差的传播
--误差的传播
-第一章 习题
--第一章 习题
-2.1 Gauss消去法
--Gauss消去法
-2.2 矩阵的三角分解
--矩阵的三角分解
-2.3 直接三角分解法
--直接三角分解法
-2.4 平方根法和改进的平方根法
-2.5 误差分析(1)向量和矩阵范数
-2.6 误差分析(2)条件数
-第二章 习题
--第二章 习题
-3.1 Jacobi迭代法和Gauss-Seidel 迭代法
-3.2 迭代法收敛性的判别
-3.3 误差分析
--误差分析
-第三章 习题
--第三章 习题
-4.1 幂法
--幂法
-4.2 反幂法
--反幂法
-第四章 习题
--第四章 习题
-5.1 多项式插值理论
--多项式插值理论
-5.2 Lagrange 插值多项式
-5.3 Newton 插值多项式(1)差商型
-5.4 Newton 插值多项式(2)差分型
-5.5 分段线性插值
--分段线性插值
-5.6 Hermite 插值
-第五章 习题
--第五章 习题
-6.1 数据拟合的最小二乘法(1)多项式拟合
-6.2 数据拟合的最小二乘法(2)其他函数拟合
-6.3 正交多项式
--正交多项式
-6.4 函数的最佳平方逼近
-第六章 习题
--第六章 习题
-7.1 数值微分
--数值微分
-7.2 Newton-Cotes求积公式(1)数值积分的基本思想、Newton-Cotes公式
--Newton-Cotes求积公式(1)数值积分的基本思想、Newton-Cotes公式
-7.3 Newton-Cotes求积公式(2)误差估计
-7.4 复化求积公式
--复化求积公式
-7.5 Romberg求积公式、Gauss型求积公式
-第七章 习题
--第七章 习题
-8.1 Romberg求积公式、Gauss型求积公式
-8.2 简单迭代法的加速、牛顿法与弦截法
-第八章 习题
--第八章 习题
-9.1 常微分方程数值解法概述
-9.2 Euler方法及其改进方法
-第九章 习题
--第九章 习题



