LL1分析构造法_数值分析笔记整理(2)——插值方法

本笔记权作为本学期数值分析学习的总结和回顾,参考教材有徐萃薇、孙绳武编的《计算方法引论》,和Timothy Sauer的《数值分析》。这一节介绍的是求解方程(主要针对非线性方程)的方法。

对于许多数值分析中的算法,我们往往关注以下几件事情:

  1. 算法的输入是什么,输出是什么,从输入得到输出的算法步骤是什么;
  2. 算法是否总能得到足够精度的输出,若否,何时能得到足够精度的输出;
  3. 算法是否能用足够小的代价得到足够精度的输出。

总结起来,上述三个问题导向了关于一个算法的步骤、误差和时间复杂度的讨论,这是我们在讨论算法时总要涉及的三个部分,往后也时常从这几方面来介绍一个算法。

目录

  1. 什么是插值
  2. 拉格朗日插值
  3. 牛顿插值
  4. 误差:余项表达式
  5. Hermite插值

什么是插值?

首先插值所要做的事情,大体上来说,就是已知n个数据点,要找一个函数,使得其图像通过所给的n个数据点。当我们在做这件事情的时候,我们实际上假设所给的n个数据点来源于一个未知的函数,而找一个函数使其通过这些数据点,其实想要做的是找一个函数逼近那个提供数据点的未知函数。因而插值是属于数值逼近的内容。

有两个角度理解这个算法:

  1. 当我们输入数据点而得到一个插值函数的时候,我们由有限的插值点得到了一个由无限被插值点组成的插值函数,换言之,是由有限的信息估计出了无穷的信息。所以我们自然地希望按某种方法从插值点得到的插值函数能够唯一,这样会比较简单。
  2. 但从另一个角度看,我们是如何得到插值点的呢?是从某一个未知的函数关系式中抽取出来的,这毫无疑问是一个压缩信息的过程:将一个含无限个点的实函数压缩成了有限个插值点。

从这里我们就可以回答,什么是插值呢?插值其实就是一个解压缩的过程,它其实是函数求值的逆过程——由值求函数。我们希望通过解压缩,来看到压缩之前的那个未知函数长什么样子。这样做的好处是,我们能用一个相较于原来的未知函数更简单的函数来替代未知函数;这样做的代价在于,我们会损失一些精度,而我们所能做的就是,尽可能地降低这个代价。

大体地解释了一下什么是插值之后,就要问:该如何插值呢?换言之,输入一串数据点,该如何得到通过它们的插值函数呢?首先我们能够知道的是,若要求得一函数

满足插值条件,那么就要将n个点的横纵坐标代入这个函数当中,以产生n个方程。此时若想解得唯一的插值函数,
中不定的参数只能有n个。因而不能在浩如烟海的函数中随意挑选,而应先选中一函数类,进而在函数类中通过求解不定参数,挑选出符合要求的插值函数。
其次的问题就是,选择什么函数类呢?我们在这部分将主要谈的是多项式函数。选择用多项式函数进行插值的理由,Timothy Sauer的《数值分析》中总结得很好:

ab8c09982028551661270eec10599f2a.png
图片来自Timothy Sauer的《数值分析》

还有一个需要解决的问题是,通过n个插值点,怎样才能得到唯一的插值多项式呢?下面的主定理回答了这个问题:

c6b86accdfd6c104894defcf5270dd79.png
图片来自Timothy Sauer的《数值分析》

首先我们可以预想到的是,n个插值节点只能产生n个方程,要想得到唯一解,多项式必然只能有最多n个待定系数,而显然的,n-1次多项式就有n个待定系数,因而我们易知,当待解多项式次数>n-1时,我们将解不出唯一的插值多项式(事实上此时方程应有无穷多解)。其次,将n个插值点代入n-1次多项式后,所产生的n阶方程的系数矩阵行列式为范德蒙行列式,这就保证了该系数矩阵行列式不为零(因为所有的n个

皆互异),也就保证了解的唯一性。

接下来就来具体看看,如何得到一个满足要求的插值多项式。当然,如上所说将插值点代入解n阶方程固然可以,但是这样非常麻烦,数值分析既然考虑到计算机执行的问题,就需要设计复杂度尽可能低的算法。

拉格朗日多项式插值

拉格朗日插值多项式的构造完全是从插值条件的要求出发的。插值条件要求所得插值函数经过给定的n个插值点,翻译过来就是,当

时,插值函数
要满足
。因而拉格朗日插值法构造了n个插值基函数,第i个基函数保证在
上为1,在
上均为零。然后再将这些基函数分别乘以
相加,所得函数便能满足要求。若我们有n+1个点
,拉格朗日插值多项式如下:

9ccde46ff810989021f969f0bbe79b86.png

其中的

为:

8c00c1d3ac073a34d081ab82bc58ce1b.png

对于

的构造,首先是要使
均等于零,故而
可写为
。然后要使
,于是将
代入上式,便求得:
.这就得到了上述
的表达式。然后再将每个
按上述方式线性组合即可。

牛顿插值多项式

牛顿插值多项式的思路与拉格朗日插值不同之处在于,拉格朗日插值让每一个插值横坐标

代入后多项式均只剩下一项,只需要控制好这一项的取值即可;而牛顿插值多项式让每一个插值横坐标
代入后多项式剩下i项,现在则要控制这
项的取值使之等于
即可。先给出计算公式如下:

87c50f4849de9ddec45917cf27027d08.png

可以看到这当中有许多

形式的式子,这叫差商,有n个点参与便表示这n个点构成的n-1阶差商,它的表达式为:

1d6cb4458a281907f2bd006dd15b66f6.png

首先我们先看看牛顿公式的特点。一是如上所言,牛顿插值多项式让每一个插值横坐标

代入后多项式剩下i项,要构造这i项的系数以达成插值条件;二是为方便记忆,可以看出牛顿插值多项式的样子十分像泰勒展开式:第i项为i-1次多项式乘以i-1阶差商,只不过牛顿插值多项式并不除以阶乘了。

然后要看看差商的性质。

71530e44d350becc22708c8723076874.png
图片来自徐萃薇、孙绳武编的《计算方法引论》

许多数值分析书上都会有这么一张类似的图表,它的含义是,用n+1个函数值,两个两个地计算一阶差商,可以得到n个一阶差商;然后用这些一阶差商,两个两个地计算二阶差商,就能得到n-1个二阶差商,依次往下。而牛顿插值多项式的各项系数就是位于每列最上方的划线的这些差商。

最后,牛顿插值有一个拉格朗日插值没有的优点,就是当需要新增插值点的时候,拉格朗日插值需要将所有的基函数重新算过,而牛顿插值只需要在之前算得的插值多项式的基础上新增一项,即:

45072bf7a02008da2e1179d62fb9d4f6.png

这是十分方便的。

误差:余项表达式

此处直接将误差余项式子放上来,不作推导:

c07109116f9d404bf6ae1fb56ee98e30.png
图片来自徐萃薇、孙绳武编的《计算方法引论》

其中:

.

(还记得刚刚有说牛顿插值多项式神似泰勒展开式吗?此处余项是否也神似泰勒余项呢?)

Hermite插值多项式

Hermite插值也叫做带指定微商值的插值,由此已经能看出它的特点:牛顿插值和拉格朗日插值的插值条件都是在给定节点取已知函数值,而Hermite插值还要求插值函数在给定节点上取已知导数值。我们将以两节点的Hermite插值为例展现如何构造Hermite插值,然后直接给出n节点的计算公式。

设给定

及其相应的函数值
和微商值
,则由于有四个条件,因而构造的插值函数最多不超过三次。

两节点Hermite的构造法一:

这一方法是类似于拉格朗日插值的构造方法,先构造出有如下取值的插值基函数:

50a417aa0f5972196d4bf3dc03aa0409.png
图片来自徐萃薇、孙绳武编的《计算方法引论》

然后像拉格朗日插值一样,将上述基函数做线性组合如下:

500dc7ec3dae8b592e990513361346b0.png

我们能看到,当我们分别考虑

处的函数值、导数值时,
均只剩下上述四项中的一项,并且该项取值将为相应的函数值、导数值乘以1.这就说明
正是我们要找的插值多项式。下一个问题是如何构造

先考虑

,以
为例。可以看出
有一个二阶零点
,因而可以设
,加上这样的分母是为了下面讨论方便。另外,
是一个不超过三次的多项式,故
可设为一次多项式,便得到
,其中一次项这样写也是为了讨论之方便。现已经使用了点
的全部信息,再使用点
的两条信息,就能分别解出a和b。最终解得:

88648fca281df7886c89c38efa61fbd9.png

同理可得:

992e736ae83e898b800191ea07c1ffaf.png

再考虑

,以
为例。
有一个二阶零点
和一个一阶零点
,于是可得
。再用最后一个条件:
,便可解得:

0070719b7e49d5971286fa6d2c6b6f74.png

同理可得:

2bf3af2d7b37b8abafa1bcc5f9712a6f.png

这便求出了所有的

。下面再给出n节点的

b24fb3e22a72b284d2147f44a65107f8.png
图片来自徐萃薇、孙绳武编的《计算方法引论》

其中

eac47c9931a7f738b438cc286037fdc4.png

总结一下:

除了
以外的各
皆是
的二重零点,故而会有
。 除了
以外的各
同样都是
的二重零点,且
的一重零点,故有如上表达式。

两节点Hermite的构造法二(粗略):

构造法二类似于牛顿插值法,利用差商作为系数来构造多项式。首先要引入重节点的差商:

,并且更一般地,我们有
.然后我们考虑如下的差商表:

40309834d70eac15fb285013a1c47eeb.png

与牛顿插值法相似地,此时可以构造Hermite插值多项式如下:

d6e4c9b8e6e8e9dfcc995ea49b90a590.png

证明略去。

最后要考虑一下Hermite插值多项式的误差余项。该余项如下:

0a2d9463c105168e2db3b584c22e1ad0.png

由构造法二和误差余项我们就可以感觉到,Hermite插值很大程度上是将给出的n个点都分别考虑了两次,就像二阶零点其实可以看作两个零点一样,只不过是相等的零点。构造法二其实就是将

分别考虑两次,皆认为成二重的点,来仿照牛顿插值法构造Hermite插值多项式,由此就可以仿照牛顿插值法来给出Hermite插值的误差余项。

小结:首先,本章中所提到的插值方法都是多项式插值,最终会得到一个满足插值条件的多项式。其次,在本章中最关键的是两种插值多项式的构造思路:拉格朗日法和牛顿法,因为我们讨论Hermite插值时也是用相似的两种思路构造的。拉格朗日法最大的好处在于直观,它是直接由插值条件出发构造的;而牛顿法最大的好处在于易更新性,而且牛顿法的分析特征十分显著,与插值余项形式上的联系更加紧密。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值