一、误差

1. 误差的产生

从纯数学的角度,我们求解问题的答案是完全精确的但在实际工程问题中,我们是很难真正得到所谓的精确解,常常只需要近似解就可以了。

误差的来源一般有:

例:近似计算.

解:原函数不存在,考虑将作Taylor展开后再积分,,若将前四项记作,取,则计算分数时的四舍五入导致了舍入误差,此时,而称为截断误差,此时,因此.

2. 误差的有效数字

定义:我们把称为绝对误差,其中为精确值,的近似值。由于精确值往往无法得知,我们记的上限为,并称其为绝对误差限,工程上常记为,例如

理论上是唯一确定的,可能取正也可能取负。但并不唯一,当然越小越具有参考价值。

定义:我们把称为相对误差相对误差上限定义为

有时会把简写为,把简写为

定义:若近似值的绝对误差限是某一位的半个单位,就称精确到这一位,且若从该位直到的第一位非零数字共有位,则称近似值有效数字。即,假设(其中),则称位有效数字,可用科学计数法表示为,则

例:,若取,问有几位有效数字?请证明。

解:,且有4位有效数字,精确到小数点后3位。

注意:有4位有效数字,而只有2位有效数字。12300如果写成,则表示只有3位有效数字。(数字末尾的0不可随意省去

有效数字与相对误差的关系1:如果位有效数字,那么它的相对误差限为

证明:根据定义,.

有效数字与相对误差的关系2:已知的相对误差限可写为,则至少有位有效数字。

证明:,因此,根据有效数字的定义,至少有位有效数字。

例:为使的相对误差小于,至少应取几位有效数字?

解:假设取到为有效数字,则其相对误差上限为,要保证其相对误差小于,只要保证其上限满足,已知,则从以上不等式可解得,即,应取

3. 误差的积累与传播

误差的积累

例:计算.

解:估算的范围:),,即

公式一:用分部积分法得,则初始误差,依次计算,得,可见从开始就已经不在之前估算出来的积分范围内了,考察第步的误差,可见初始的小扰动迅速积累,误差呈递增走势。

公式二:,此公式理论上与公式一等价。要使用此公式,首先要估算一个,再反推要求的),,可取区间的中点作为的估计值,即,估算出,则,考察反推一步的误差,依此类推,对,误差逐步递减,这样的算法称为稳定的算法

四则运算的误差传播

两个近似数进行加、减、乘、除运算后的绝对误差

两个近似数进行加、减、乘、除运算后的相对误差

函数的误差传播

对于,若存在误差,对产生的影响:

的条件数在处小,则称在该点是好条件(的条件数在处大,则称在该点是坏条件)。

4. 误差的控制(算法的稳定性)

为把误差控制在一定范围内,构造算法时要遵循以下准则:

二、非线性方程的数值解法

1. 方程求根的基本思想

对于方程,当不是的线性函数时,称对应的函数方程为非线性方程,如果是多项式函数,则称为代数方程,否则称为超越方程(如三角方程,指数、对数方程等)。

非线性方程根的定义:非线性方程,亦称为函数零点。如果可以分解为,其中为正整数且,则称m重零点,或称方程m重根,当时称为单根。若存在阶导数,则是方程重根(),当且仅当

求根的算法思路:

(1)根的存在性:方程有没有根?如果有,有几个根?

(2)这些根大致在哪里?如何把根隔离开来?

(3)根的精确化。

根的存在性定理(零点定理):设函数在区间上连续,如果。则方程内至少有一实根

根据该定理找根的方法一:画出的略图,从而看出曲线与轴交点的位置。方法二:从左端点出发,按某个预先选定的步长一步一步地向右跨,每跨一步都检验每步起点与终点的函数值,若,那么所求的根必在之间,这里可取作为根的初始近似。

2. 非线性方程求根-二分法

对于方程,设函数在闭区间上连续,且,根据连续函数的性质可知,内必有实根,称区间有根区间。这里为了方便讨论,假定方程在区间内有唯一实根

二分法的思想:先确定有根区间,将区间二等分,根据零值定理,通过判断的符号,逐步将有根区间缩小,直至有根区间足够小,便可求出满足精度要求的近似根。

圈定根所在的范围的过程叫做圈定根根的隔离,圈定好根后,采取适当的数值方法确定有一定精度要求的初值

对于代数方程,其根的个数(实根或复根)与其次数相同;对于超越方程,其根可能是一个、几个或无解,并没有固定的圈根方法。

求方程根的问题,从几何上讲,就是求曲线轴交点的横坐标,方法有画图法逐步搜索法等:

例:确定方程的有根区间.

解:不难发现,故在区间内至少有一个实根,设从出发,取为步长,进行根的搜索,列表如下:

可以看出,在内必有一根。

二分法是对逐步搜索法的改进,二分法的具体步骤如下:

(1)取有根区间的中点,将它分为两半,分点为,判断的符号,根据零点定理确定新的有根区间,这样就缩小了有根区间。

(2)对压缩了的有根区间,施行同样的手法,即再取中点,将区间再分为两半,然后再确定有根区间,其长度是的二分之一。

(3)依此类推,若不出现,即可得到一系列有根区间序列,上述的每个区间都是前一个区间的一半,因此的长度,当时趋于零,这些区间最终会收敛于一点,即为所求的根。

(4)终止条件:每次二分后,将的中点作为根的近似值,可以得到一个近似根的序列,该序列以根为极限,只要二分次数足够多(即足够大),便有为给定的精度),由于,故,若给定的精度,要使成立,只要取满足即可,也就是说当时,做到第次二分,计算得到的就是满足精度要求的近似根。(程序中常用相邻的的差的绝对值或的差的绝对值是否小于来决定二分的次数)

例:证明方程在区间内有一个根,使用二分法求误差不超过的根要二分几次?

解:因为,且上连续,故内至少有一个根;又时,,故内单调递增,从而内有且仅有一根。

给定误差,使用二分法时,只要取满足,所以需二分10次便可达到要求。

二分法的优点是不管有根区间多大,总能求出满足精度要求的根,且对要求不高,只要连续即可,计算也简单。它的局限性是只能用于求函数的实根,不能用于求复根及重根,它的收敛速度与比值为的等比级数相同。

3. 非线性方程求根-迭代法

迭代法是一种逐次逼近的方法,用某个固定公式反复校正根的近似值,使之逐步精确化,最后得到满足精度要求的结果。

迭代法的思想:为求解非线性方程的根,先将其写成便于迭代的等价方程,其中的连续函数,即,如果数使,则也有,反之,若,则也有,那么称迭代函数。任取一个初值,代入式的右端,得到,再将代入式的右端,得到,依此类推,得到一个数列,其中),此式称为求解非线性方程的简单迭代法,如果由迭代格式产生的序列收敛,即,则称迭代法收敛(实际计算中不可能也没必要无穷多步地算下去,对预先给定的精度,只要满足即可结束计算,并取)。

例:用迭代法求方程附近的一个根.

解:将方程改写成如下两种等价形式:,相应地可得到两个迭代公式,如果取初始值,用上述的两个迭代公式分别迭代,计算得到:

(1)对于),则

(2)对于),则

可见第一种迭代方式是逐步收敛的,而第二种会随着迭代次数增加差异越来越大,于是可以知道,有的迭代公式可以求出根,有的公式则不能,因此判断迭代公式是否收敛尤为重要。

迭代法的几何意义:通常将方程化为与它同解的方程的方法不止一种,有的收敛,有的不收敛,这取决于的形态,类似画图法,方程的求根问题在几何上就是确定曲线与直线的交点的横坐标,如下图所示:

非线性方程的数值解法-迭代法-01
非线性方程的数值解法-迭代法-02

定理(迭代法的收敛性):设函数在上有连续的一阶导数,且满足①对所有的;②存在,使所有的;则方程上的解存在且唯一,对任意的,迭代过程均收敛于,并有如下的误差估计公式:①;②

例:对方程,构造收敛的迭代格式.

解:容易判断是方程的有根区间,且在此区间内,所以此方程在内有且仅有一根,将原方程改写为以下两种等价形式:

(1)对于,即,对于,不满足收敛条件;

(2)对于,即,对于,此时迭代公式满足迭代收敛条件。

定理:设的根的邻域中有连续的一阶导数,且,则迭代过程具有局部收敛性。

当迭代函数较复杂时,通常只能设法使迭代过程在根的邻域(局部)收敛。

例:已知方程内有根,且在上满足,利用构造一个迭代函数,使)局部收敛于.

解:由,令,则对于,故,迭代公式局部收敛。

定义(收敛速度):设迭代过程收敛于的根,记迭代误差,若存在常数)和)使得,则称序列阶收敛的,渐进误差常数,特别地,时称为线性收敛时称为平方收敛时称为超线性收敛

的大小反映了迭代法收敛速度的快慢,越大则收敛速度越快,故迭代法的收敛阶是对迭代法收敛速度的一种度量。

定理:设迭代过程,若在所求根的邻域连续且,则迭代过程在邻域是阶收敛的。

4. 牛顿迭代法

牛顿迭代法的思想:方程求根的另一种思路是用近似方程代替原方程去求根,牛顿迭代法就是将非线性方程线性化,用线性方程的解逼近非线性方程的解。取,将作一阶Taylor展开,得,其中之间,令,如果将看成高阶小量,则有,这样就变成了求线性方程的解,解得

牛顿迭代法的几何意义:如下图,曲线是,它与轴交点为,而是曲线点处的切线与轴的交点的横坐标(故牛顿迭代法又被称为切线法),依此类推可得到迭代公式

非线性方程的数值解法-牛顿迭代法-01

牛顿迭代公式,只要(即一阶连续),每一步迭代都有,而且,则就是的根。

定理(收敛的充分条件):设,若①;②在整个不变号且;③选取使得;则牛顿迭代法产生的序列收敛到上的唯一根。

条件一保证了根的存在性,条件二保证了根的唯一性(二阶导不变号则一阶导单调),条件三保证了产生的序列单调有界,保证收敛。

定理(局部收敛性)设,若上的根,且,则存在的邻域使得任取初始值,牛顿迭代法产生的序列收敛到,且满足

前面两个定理都说明了,牛顿迭代法的收敛性依赖于的选取,越接近就越有可能收敛,如下图:

非线性方程的数值解法-牛顿迭代法-02

例:用牛顿迭代法求方程附近的根.

解:,列表如下:

0 1.00 -2.8
1 1.41176 -0.727071
2 1.62424 -0.145493
3 1.6923 -0;.0131682
4 1.69991 -0.0001515
5 1.7 0

例:用牛顿迭代法计算.

解:要求相当于求的正根,由牛顿迭代公式得,其中,取初始值,代入公式进行迭代得,故

5. 牛顿迭代法的改进

重根-加速收敛法

引入:前面的两个收敛定理(充分性定理和局部收敛定理)都要求在附近,那么若,牛顿法是否仍收敛?

意味着会出现重根,设重根,则可以把写成的形式,且,因为牛顿迭代法实际上是一种特殊的不动点迭代,,则,则牛顿迭代法仍有局部收敛性,但重数越高,收敛越慢。

加速收敛法的思路:根据前面的分析,对于重根的情况,我们希望加速收敛速度,既然单根收敛速度较快,所以考虑将要求的的重根转化为另一函数的单根,因为重根,则重根,令,则的重根等于的单根,此时对使用牛顿迭代法求出的单根就是的重根。

牛顿下山法

例:牛顿迭代法求方程附近一个根.

解:建立牛顿迭代公式,算出,此时是收敛的。

前面的两个收敛定理可知,牛顿迭代法要收敛则要求初始值选在附近,这题如果选取初始值的话,则,算法发散。为防止迭代发散,在迭代的过程中附加一项要求,以保证函数值单调下降,满足这项要求的方法称为下山法

牛顿下山法:将牛顿法和下山法结合起来使用,在下山法保证函数值稳定下降的前提下,用牛顿法加快收敛速度,就叫做牛顿下山法。具体步骤为:若由得到的不能使减小,则在之间找一个更好的点,使得,其中,这里的称为下山因子。

下山因子的选择是一个逐步探索的过程,一般先取,此时就是牛顿迭代公式,若满足下山条件,则取,再进行下一次迭代;若不满足下山条件,则将减半计算,再判断是否满足下山条件,依此类推,直到满足为止;若取得很小时,即时,下山条件仍不满足,则称”下山失败“,这时需另选初始值重新计算。

接前例,若取,则按牛顿迭代公式求得的迭代值,通过反复调整下山因子,得知当时满足下山条件,代入到

正割法

牛顿迭代法的每一步都要计算,相当于计算两个函数值,比较费时,如果用的值近似求,可少算一个函数。具体近似方法是用割线斜率近似切线斜率,即,如下图:

非线性方程的数值解法-牛顿迭代法的改进-01

将近似公式代入牛顿迭代公式中得,这个方法就叫做正割法。

正割法不需要求导,但它需要两个初值,当导数难以求得或计算量较大时比较具有优势。

正割法收敛速度比牛顿迭代法慢,且对初值要求同样较高。

三、线性方程组的解法

引入:对于有个未知量的线性方程组,其中为方程组的系数,可以写成矩阵的形式,当时,根据线性代数中所学的克莱姆法则,方程的解存在且唯一,其中是将的第列元素以代替的矩阵行列式的值。由于当方程组较多时,克莱姆法则的计算量较大,所以一般用直接法求解。

直接法:如果所有计算都是精确进行的,那么经过有限步算术运算就可以求出方程组精确解的方法。

在实际计算过程中由于舍入误差的存在与影响,直接法一般只能求得方程组的近似解。对于中等规模的线性方程组(n<200),由于直接法的准确性和可靠性高,一般都用直接法求解。直接法主要有高斯消元法三角分解法

对于系数为大型稀疏矩阵的方程组,还可以使用迭代法进行求解。

1. 高斯消元法及其改进

高斯消元法

先通过例题了解以前我们如何求解线性方程组:

例:.

解:方程1乘以加到方程2中,得,解出代入方程1中得

我们把上述步骤写成矩阵的形式,可见的部分是一个上三角矩阵。于是我们得到了高斯消元法的思路:先将化为上三角矩阵,再回代求解。

其中我们在变换方程组的时候可以作如下两种操作:(1)对换某两个方程的次序;(2)把某一个方程两边同乘一个不为零的常数后加到另一个方程的两边。这两种操作分别对应了的两种初等行变换。

高斯消元法步骤:为表示方便,我们将线性方程组初始的系数矩阵记为,初始的右端项记为

(1)设,计算因子),将增广阵第行,得到,其中);

(2)依此类推,到第步:设,计算因子),则,经过步就可以将的部分化为上三角;

(3)回代:对于,可以看出,类推得)。

定理:若的所有顺序主子式均不为零,则高斯消元法无需换行即可进行到底,且得到唯一解。(顺序主子式:前行前列构成的矩阵)

例:用高斯消元法解.

解:

,回代可得.(PPT中计算错误,过程有错)

注意:当如果比同一列的元素小得多的话,会导致很大的舍入误差。因此在使用高斯消元法时,除了要避免主元素外,还要避免主元素绝对值很小。

例:用单精度解方程组.

解:,即,此结果中显然与正确结果偏差较大。

全主元消元法

全主元消元法是对高斯消元法的改进:

(1)第一次消元时,在系数矩阵中寻找绝对值最大的元素作为主元素来代替,设,再交换行与第行,交换列与第列,这样就将换到了左上角的位置,再进行消元;

(2)依此类推,到第次消元时为,主元素从系数矩阵右下角阶子矩阵中选取,交换至主元素位置并消元。

换行不影响方程组求解,但是换列交换了未知数的系数,所以必须把次序记录下来,解完方程组后再把次序换回来。

算法的每一步都选取绝对值最大的元素作为主元素,以保证,这样精度比较高,算法比较稳定。但是该算法需要花大量时间去记录列的次序。

列主元消元法

列主元消元法是对全主元消元法的改进,它省去了换列的步骤,每次选一列中绝对值最大的元素作为主元素:,以代替,可以避免列的交换,而仅交换行。

例:用列主元消元法解方程组.

解:

,回代得

列主元消元法仍然有精度的问题,它没有全主元消元法稳定。

比如(同前面高斯消元法的例题):,解出,显然这次离精确值非常靠近了。

但是如果将第一行乘以得到完全等价的方程组,解出,这时又出现了精度问题了。

标度化列主元消元法

标度化列主元消元法对列主元消元法的改进:对每一行计算,为节省时间,只在初始时计算一次,以后每次考虑子列最大的为主元。

标度化列主元消元法稳定性介于列主元消元法与全主元消元法之间。

例:用标度化列主元消元法解.

解:写出,找出每一行系数矩阵部分中的最大值,对每一行都作标度化处理,即每一行所有元素都除以对应的,得,此时再用列主元消元法进行计算即可,比如相比,显然应取为主元素,于是交换1、2行,(参考前面例题),解出,所得解很接近精确解了。

高斯-若尔当消元法

高斯-若尔当消元法与之前的高斯消元法不同,它是将变为,与此同时变为),再将除外的第列的所有元素都变为,即等于),经过步计算后得到,这样就不需要回代即可得出解。

其实这个过程就相当于,其中为单位阵。

例:用高斯-若尔当消元法与全主元消元法相结合解方程.

解:写出,按照全主元消元法找出绝对值最大的元素为,按照高斯-若尔当消元法将第三行元素都除以,将所在列变为零得;再从除所在列外的系数矩阵部分中找出最大的元素是,重复前述步骤得,故解为

可将,将高斯-若尔当消元法与全主元消元法相结合,可以得到不用换行、不用换列,也不用回代,并且精度很高的算法。

例:用高斯-若尔当消元法与;列主元消元法结合求矩阵的逆矩阵,.

解:原理是,即线性代数中的用增广矩阵求逆的方法。

写出,找出第一列中最大的元素是,交换第1行和第3行得,第一行元素除以(标准化)再将第一列其他位置化为(消元)得,重复前述步骤,最后得到.

2. 三角分解法

道立特(Doolittle)分解法

引入:高斯消元法实际上是对系数矩阵和常向量进行初等变换,而初等变换可以看作是左乘初等矩阵,即,或,令,则可以写成,其中,而也是一个下三角阵且对角线元素都是,称为单位下三角阵,而

分解又叫三角分解,当为单位下三角而为非奇异上三角的分解称为道立特(Doolittle)分解;当为一般下三角而为单位上三角的分解称为克路特(Crout)分解。

定理:若的所有顺序主子式均不为零,则分解唯一(其中为单位下三角阵)。

证明:由前面可知分解存在,只需证明其唯一性。假设不唯一,设,则,两端同时右乘,观察可知,是上三角,相乘仍为上三角,而是下三角,相乘仍为下三角,显然只有当等式两端都是单位阵时才能成立,即

Doolittle分解法的步骤:

(1)三角分解:通过比较法直接导出的计算公式,观察,可看出,若列与的前行已经算好,则),);

比如),),),);可以看出,可推出);同理,由,可得)。

(2)求出分解后,,设,得,先解出再解即可。

对于,即,则);

对于,即,则)。

例:用Doolittle分解法求解方程组.

解:对于,根据前面的分析知,故,同时,故,同理,同时,同理

,即,即.

平方根法-对称正定系数矩阵

定义:对于矩阵,如果,则称对称阵

定义:对于矩阵,如果对任意非零向量都成立,则称正定阵

回顾对称正定阵的几个性质:(1)也正定,且;(2)的顺序主子阵也对称正定;(3)的特征值;(4)的全部顺序主子式

定理:设矩阵对称正定,则存在非奇异下三角阵使得,若限定对角元为正,则分解唯一。

证明:先对分解,即

先证明都大于零,将写成分块运算的形式),根据正定的性质,的各阶主子式的行列式值都大于零,所以,所以

进一步将分解为,则,由于对称所以,故,由于是对角阵,观察可知,即,由于前面证明了对称正定矩阵的,于是可以将进一步分解为,其中,令,则

平方根法的步骤(要求对称正定):

(1)利用分解,对于,当,当

比如,类似地第一列有),依此类推有),同理)。

同时可以发现,因此的元素有界且,故平方根法是比较稳定的方法,且精度比较好。

(2)求出后,,令,先解出,再求解即可,公式为),)。

改进平方根法(要求对称正定):

(1)由于使用平方根法分解矩阵时,需要做次开方运算,为避免开方,可以直接用分解来运算:,将乘到一起得,写出,特别地,,令,则,于是

(2)对于;对于,即,则);对于,即,算出,则,而,并且由于转置后仍使用原来的下标,所以这里的)。

例:用改进平方根法求解方程组,其中.

解:按照公式有,再根据公式可以解出

追赶法-解三对角线方程组

追赶法:对于三对角线方程组,可以使用追赶法:

(1)先将分解为,对比原来的,可得

(2)追:对于,求解,即,得出

(3)赶:再求解,即,得出

由第二步可知该方法要求不等于零,并不是任何三对角阵都可以使用此方法求解。

定理(充分条件):若为三对角线矩阵,并且满足,则追赶法可以求解以为系数矩阵的方程组。

该定理要求三条对角线上都不能有零元素,对于方程组来说太过苛刻,因为它只是充分条件而非必要条件,所以可以有例外的情况:如果是严格对角优势的三对角线矩阵,则不要求三对角线上的所有元素非零。

根据不等式可知,分解的过程中,矩阵元素不会过分增大,算法保证稳定。

3. 迭代法求方程组的近似解

迭代原理与误差分析

迭代法思路:与解的不动点迭代类似,将等价改写为的形式,建立迭代,从初值出发,得到序列。迭代法精度可控,特别适用于求解系数为大型稀疏矩阵的方程组。

例:用迭代法解方程组.

解:把改写成的形式,即,建立迭代格式,得(矩阵形式略),初始向量取,迭代得

0 0 0
2.5 3 3
2.875 2.364 1
3.1365 2.0455 0.9715
3.02418 1.94777 0.92038
3.000318 1.983965 1.000963
2.993746 1.999971 1.003849
2.999026 2.002624 1.003134

直接解方程得知精确解为,迭代七次后的误差,可见用此迭代格式进行迭代,得到的向量序列是逐步逼近方程组精确解的。

但是不是所有迭代序列都可以逼近精确值的,如果用,取,得,显然,这个迭代是发散的。

为了更好地度量误差,需要引入向量范数和矩阵范数的概念。

定义:空间的向量范数对任意满足下列条件:(1)正定性:;(2)齐次性:对任意成立;(3)三角不等式:

最常用的范数是范数(p-范数):,当取1、2、时分别是:,其中

定义:向量序列收敛于向量是指对每一个都有,也可以理解为

定义:若存在常数使得对任意,则称范数比范数强。

定义:若范数比范数强,同时也比强,即存在常数使得,则称等价。

定理上一切范数都等价。

定义:空间的矩阵范数对任意满足:(1)正定性:;(2)齐次性:对任意成立;(3)三角不等式:;(4)相容性(时):

要说明的是,不是所有矩阵范数都满足相容性,因为可能部分教材没有此条件,但是仍用前面三个条件定义了一些矩阵范数。

常用的矩阵范数有:

Frobenius范数(F-范数):,这是向量范数的直接推广;如果,则有(可以用Cauchy不等式证明)。

算子范数:如果是方阵,则可以由向量范数导出关于矩阵的p-范数,;如果是同阶方阵,则有,特别地,当p为、1、2时有:(1)行和范数;(2)列和范数;(3)谱范数(其中之后的最大的那个特征根)。

注意:Frobenius范数不是算子范数,我们这里只关心有相容性的范数,而算子范数总是相容的。即使中元素全为实数,其特征根和相应的特征向量仍可能是复数,将上述定义中绝对值换成复数模仍均成立。

定义:矩阵谱半径记为,其中的特征根。

定理:对任意算子范数

证明:由算子范数的相容性可得,将任意一个特征根对应的特征向量代入得

误差分析:方程组的解为,由于某种原因,第二个方程组的系数有一个小小的扰动(误差),变为,此时方程组的解为,可见很小的误差也可能会对结果产生较大的影响,于是我们需要研究求解时,的误差对解有何影响。

情况1:设精确,有误差变为,则得到的解为,即,消去,根据相容性可知,因此将称为绝对误差放大因子;再看,因此相对误差,因此将称为相对误差放大因子

情况2:设精确,有误差,得到的解为,即,消去,根据相容性和三角不等式可知,于是得到,故相对误差,即相对误差也与有关。

Jacobi迭代法

Jacobi迭代法:对于方程组,或写成矩阵的形式,若,则有或写成矩阵形式,即迭代原理中的把写成的形式,则Jacobi迭代格式(矩阵形式略),可以简写为

对于,分析矩阵形式:如果将分为,即右上角元素组成矩阵、对角线元素组成矩阵、左下角元素组成矩阵,则,我们把称为Jacobi迭代阵,于是有迭代格式:

例:用Jacobi方法解方程组.(已知精确解为

解:将方程组写成等价形式,或写成矩阵形式,于是迭代格式为,取初始值,计算结果如下表:

0 1 1 1
1 -1.5 1.6 0.9 2.5
2 -1.25 2.08 1.09 0.48
3 -0.915 2.068 1.017 0.335
4 -0.9575 1.9864 0.9847 0.0816
5 -1.01445 1.9844 0.99711 0.05695
6 -1.00722 2.00231 1.0026 0.01387
7 -0.997543 2.00197 1.00049 0.009687

Gauss-Seidel迭代法

引入:在Jacobi迭代格式中,如果算到,则完全是根据计算出来的,而前面计算出来的并没有被利用到,考虑如果把新算出来的代进的公式中,会不会使其收敛得更快。

Gauss-Seidel迭代格式

与Jacobi迭代格式的矩阵表示类似,它可以写成,进一步可以写成,我们把称为Gauss-Seidel迭代阵

例:用Gauss-Seidel法解方程组.

解:迭代格式为,取初始值,计算结果如下表:

0 1 1 1
1 -1.5 2.1 1.04 2.5
2 -0.93 1.994 0.9936 0.57
3 -1.0062 1.99996 1.000624 0.0762
4 -0.999708 2.000064 0.99996416 0.006492

本例题的方程组和Jacobi法中的方程组完全相同,对比可以发现,Gauss-Seidel法确实收敛得更快。

在某些情况下,Jacobi法和Gauss-Seidel法可能其中一种收敛,另一种不收敛,甚至两种都不收敛。比如:

例:分别用Jacobi法和Gauss-Seidel法解方程组.

解:Jacobi法:取初始值,得,显然是发散的;

Gauss-Seidel法:取初始值,得,显然也是发散的。

但是如果交换两个方程的次序后再构造相应的迭代公式,则两种方法都收敛,为此有必要了解迭代法的收敛条件。

迭代法的收敛性

无论是何种迭代方法,迭代格式都可以写成的形式,所以第次的迭代误差可以写成,于是可以得到第k次迭代的误差,因此收敛的充要条件为:当

定义(矩阵序列的极限):设是指对所有成立,也可以理解为当

定理:设存在唯一解,则从任意出发,迭代收敛

定理

证明:由前面的推导知,,若,则当,即

定理(充分条件):若存在一个矩阵范数使得,则迭代收敛,且有下列误差估计:(1);(2)

根据该定理,若事先给出误差的控制精度,可以估计出迭代次数,即,解出.

例:若用Jacobi法解方程组,取,问Jacobi法是否收敛,若收敛,需要迭代多少次才能保证各分量误差绝对值小于

解:Jacobi迭代格式为,因为,所以迭代法收敛,迭代一次得到,由,得到,因此需要迭代14次。

前面定理中的只是迭代序列收敛的充分条件,即使对任何范数都不成立,迭代序列仍可能收敛。

例:设,其中,讨论迭代序列的收敛性.

解:显然的范数均大于1,但是由于,故迭代序列仍是收敛的。

定理(充分条件):若为严格对角优势阵(strictly diagonally dominant matrix),则解的Jacobi迭代和Gauss-Seidel迭代均收敛。

定义:如果满足),则称为严格对角优势阵。

定义:如果满足),且其中至少有一个等号严格成立,则称为弱对角优势阵。

比如,显然为严格对角优势阵,因此Jacobi迭代和Gauss-Seidel迭代均收敛。

四、插值与拟合

1. 插值多项式的唯一性

有时我们会遇到这样的问题:由实验或测量得到一批离散样点,要求作出一条通过这些点的光滑曲线,以便满足设计要求或进行加工,此外,还有一些函数虽有表达式,但因式子复杂,不易计算其值和进行理论分析。

当精确函数非常复杂或未知时,在一系列节点处测得函数值,由此构造一个简单易算的近似函数,满足条件),这里的就称为插值函数。我们常用代数多项式作为插值函数。

插值多项式是指根据给定的个点),求一个次多项式

定理(插值多项式唯一性):满足)的阶插值多项式是唯一存在的,其中为互不相同的节点。

证明:(利用范德蒙(Vandermonde)行列式论证)

对于,其中个待定系数,其系数行列式为(由于互异,根据范德蒙行列式的计算公式,必不等于零),由于系数行列式不等于零,故解唯一存在。

2. 拉格朗日插值

次多项式使得),其中当,即无重合节点。

拉格朗日线性插值:当时,,可见是过点两点的直线,根据直线方程,,写成一般形式,我们称拉格朗日基函数(Lagrange Basis),满足条件(其中是克罗内克函数,Kronecker Delta,当时函数值为1,否则为0),称为一次插值多项式或线性插值多项式(显然也是一次插值多项式)。

可见插值基函数与无关,而由插值点所决定。

拉格朗日抛物线插值:当时,设插值多项式为,类似时的情况,要求:①插值基函数为二次多项式;②它们的函数值满足下表:

1 0 0
0 1 0
0 0 1

可见只在处为1,在处为0,即的零点,故,再根据解出,即;同理可得

拉格朗日n次插值:当时,假定),设,其中,和的情况类似,推导出

有时也将拉格朗日插值多项式记作

例:已知,利用一次插值多项式求的近似值.

解:设,则,则,故,则

例:若已知

10 15 20
1 1.1761 1.3010

用二次插值多项式求近似值.

解:设,根据公式得到,故,所以

的精确值为,对比两个例题,发现高次插值的误差要比低次插值的误差小,但这不是绝对的。

定理(拉格朗日插值余项):设节点,且满足条件存在,则,其截断误差为

证明:回顾罗尔定理:若充分光滑,且,则存在使得.

推广1:若,则存在使得,并且存在使得.

推广2:若,则存在使得

因为拉格朗日插值多项式经过,故在这些点处的误差,因此至少有个根,可设;任意固定的),考察,显然个不同的根,根据前面罗尔定理的推广知,存在使得(其中是对求导),即,其中次多项式,求阶导后结果为零,故,将代入中得证。

注意:通常不能确定,而是对估计,得到阶导的上限,将作为误差估计上限。特别地,当为任意一个次数的多项式时,,即插值多项式对于次数的多项式是精确的。

3. 牛顿插值

Lagrange插值虽然格式整齐规范,但却没有承袭性质,若要增加一个节点,全部基函数都要重新算过。如果可以把Lagrange插值改写为的形式,这样每加一个节点,只需附加一项上去就可以了。

为介绍牛顿插值,需引入差商的概念。

定义:差商用归纳定义法来定义:1阶差商为);2阶差商为);阶差商为

差商的性质:

我们常把差商列成表,形式如下表(计算时先算一阶,再算二阶,依此类推):

一阶差商 二阶差商 阶差商
0
1
2
3

例:计算的一至三阶差商.

解:列出差商表如下

0 -2 17
1 0 1
2 1 2
3 2 19

比如

牛顿插值多项式:形式为,其中

证明:根据差商公式有Ⅰ.、Ⅱ.、Ⅲ.,将,整理后得到,其中前面的项是牛顿插值多项式,记作,最后一项是牛顿插值的余项,记作

注意:由唯一性可知,只是计算方式不同,故其余项也相同,即,因此

例:已知的平方根为,利用牛顿差商公式求的近似值.

解:先根据给定的节点及函数值,构造出差商表

一阶差商 二阶差商
1 1
4 2
9 3

则二次牛顿插值多项式,因此的近似值为

4. 分段低次插值

为了提高插值多项式对函数的逼近程度,自然希望增加节点个数,即提高插值多项式的次数,特别地,当时,期望,但是事实并非如此,比如:

例:在上考察.

解:取,其中,则,我们考察最后两个节点的中点,记作,如图所示红、绿、橙分别是的曲线:

插值与拟合-分段低次插值-01

的最后两个点的中点是最接近原函数的,当的时候偏差反而比的时候大了。

也就是说,当并不能逼近,我们把这种越大,端点附近抖动越大的现象称为Runge现象

由于高次插值收敛性无法保证,因此当插值节点较大时,通常不采用高次多项式插值,而改用分段低次插值。

分段线性插值:在每个区间上,用1阶多项式(直线)逼近,即,这种插值方法可以逼近函数,但是失去了原函数的光滑性(左右导数不相等)。

例:已知函数在区间上取等距插值节点(如下表),求区间上分段线性插值函数,并用它求出的近似值.

0 1 2 3 4 5
1 0.5 0.2 0.1 0.05882 0.03846

解:利用公式,得到,于是

5. 埃尔米特(Hermite)插值

有时我们不仅要求函数值重合,而且要求若干阶导数也重合。

提示:根据解方程的思想,如果题目给了个条件,则可以构造阶多项式。

下面通过例题了解埃尔米特插值多项式如何构造。

例:设,已知,求多项式满足,且.

解:题目给出了个条件,故的阶数为,模仿Lagrange多项式的思想,将写成用插值基函数表示的形式,,其中都是埃尔米特插值基函数,都是三次多项式,并且它们满足,这里的是克罗内克函数,列出函数值如下表:

函数值 1 0 0 0
函数值 0 1 0 0
函数值 0 0 1 0
导数值 0 0 0 1

比如,而,因此两个根,而且,因此是重根,故可以设,其中常数可以通过算出,最后得到;(同理)

两个根,但不是重根,因此可设,根据可解出

三个根,因此可设,其中常数可以根据解出。

埃尔米特插值多项式的一般形式:已知处有,求满足,则,其中

推导(和例题类似):设,其中都是次多项式,并且满足

根据这些条件可知,对于,除外其余的都是二重根,因此,其中,根据可求出,最后得到

对于都是它的根,而且除外其余的都是二重根,因此,其中,根据可算出,最后得到

图像特点:与轴交点为,且在处斜率为,其余()处斜率为

埃尔米特余项:若满足上连续,上存在,又个互异节点,则满足插值条件的埃尔米特插值多项式唯一存在,且插值余项为

6. 最小二乘法

最小二乘法是一种曲线拟合的方法。

对于一组数据,要确定之间的近似表达式:(1)方法一:插值,在几何上插值曲线经过所有点;(2)方法二:曲线拟合,求一连续曲线使得误差(连续)或(离散)达到最小(本来应该用误差的绝对值之和的,但是由于绝对值函数不便于分析,故改为平方和)。

插值法适用于数据精确或可靠度较高的情况,而曲线拟合法适用于数据本身就有误差的情况。当数据量特别大时一般不用插值法,因为高次插值效果不理想,而分段低次插值精度又不高,另外,由于测量数据本身就有误差,使插值曲线刻意经过这些点也不必要;而曲线拟合是根据草图画出一条拟合曲线(或使用低次多项式),然后根据最小二乘法求出该曲线,这条曲线未必经过所以已知点,但能反映处数据的基本趋势。

定义:,叫做偏差,在回归分析中又称为残差,其中是拟合函数,是测量值。

最小二乘原则:使偏差的平方和最小。(顾名思义最小二乘法就是根据最小二乘原则选择拟合曲线的方法)

数学描述如下:设)为给定的一组数据,要求在函数类)中,求一函数满足,其中中任一函数。我们称为最小二乘解,为拟合函数。

定义:对于给定的一组实验数据互异,),在函数类之间线性无关),存在唯一的函数使得关系式成立(是权系数,如果不是加权最小二乘法则等于1),并且其系数)可以通过解得到,记作

最小二乘法的多项式拟合形式的解法:对于给定的一组数据),求作次多项式(使得成立,即拟合函数取为多项式,这样的曲线拟合问题又叫做多项式拟合问题,相应的法方程为,且该方程组存在唯一的一组解。

比如:直线拟合(一次多项式拟合):若,则可通过方程组解出;

二次多项式拟合:若,则可通过方程组解出。

例:已知一组实验数据:

试用直线拟合这组数据(计算过程保留3位小数)

解:设直线,那么法方程公式为,代入数据得,解出,故所求直线方程为

实际应用中,拟合函数可能是其他类型的函数,不一定用多项式进行拟合。对于非线性最小而二乘问题,一般有如下解法(1)化为线性最小二乘问题,部分可化为线性拟合问题的常见函数见下表;(2)马奎特(Marquardt)方法,计算机上求解非线性最小二乘拟合问题的最常用的方法之一(略)。

插值与拟合-最小二乘法-01

加权最小二乘法:有时数据中每一点的重要性可能是不一样的,因此设表示数据点的重度(重度:即权重或密度,统称为权系数),定义加权平方误差为,如果选用的拟合曲线为,那么相应的法方程为

例:已知一组数据及权如下表,若之间有线性关系,试用最小二乘法确定系数.

1 2 3 4
14 27 12 1
2 4 6 8
2 11 28 40

解:将数据代入相应的法方程公式得,解出

五、数值积分

1. 数值积分的概念

要近似计算积分,可以用一个近似且易于求原函数的函数代替

比如用拉格朗日插值多项式来近似:在上取,做次插值多项式,则,其中由节点决定,与无关;

此时误差,通过拉格朗日插值余项可得插值型求积公式的误差

例:对于上1次插值有,则,故

观察发现,上述积分的近似值其实就是由两个端点及坐标轴围成的梯形的面积,故我们将称为梯形公式。

定义:若某个求积公式所对应的误差满足:对任意阶的多项式有成立,且对某个阶多项式有成立,则称此求积公式的代数精度

考察梯形公式的精度:

逐次检查公式是否精确成立,取,则左端为,右端,左右两端相等,公式精确成立;

,则左端,右端,左右两端仍相等,公式精确成立;

,则左端,右端,此时左右两端不相等,故代数精度

定理:求积公式至少有次代数精度的充要条件是该公式为插值型求积公式(即,其中是插值基函数)。

2. 牛顿-柯特斯公式及其复合

Newton-Cotes公式

Newton-Cotes(牛顿-柯特斯)公式:当节点等距分布时,即(其中),则,其中称为Cotes系数,记作,因此有,该公式称为Newton-Cotes公式,简记为N-C公式。

显然Newton-Cotes公式是一种插值型求积公式。(其复合形式亦然,因为它是通过拉格朗日插值求积通过换元化简得到的)

Cotes系数仅取决于,与及区间均无关,其值可查表得到(如下表)。

数值积分-插值型求积公式-01

比较大时,Cotes公式会开始出现负项,计算过程的稳定性没有保证,因此一般只使用的公式。

Newton-Cotes公式的截断误差可以通过拉格朗日插值多项式的截断误差推导出,,,该误差公式表面越小,误差就越小。

Cotes系数的性质

(1)权性:,即每一行的Cotes系数之和等于1;

(2)对称性:

一些比较常用的Newton-Cotes公式

定理为偶数阶的Newton-Cotes公式至少有次代数精度。

例:试分别用梯形公式和Simpson公式计算积分的近似值,并估计截断误差.

解:梯形公式:,截断误差一般用二阶导绝对值的最大值替代);

Simpson公式:,截断误差

显然Simpson公式的结果优于梯形公式的结果。

Newton-Cotes复合求积公式

根据Newton-Cotes公式的截断误差公式,步长越小,截断误差就越小,为了得到比较精确的积分值,必须用高阶求积公式,但高阶()的Newton-Cotes公式是不稳定的,因此不能通过提高Newton-Cotes公式阶数的方法来提高精度。

我们考虑对被积函数采用分段低次多项式插值(分段通常是等分),这样就得到了分段低次合成的Newton-Cotes复合求积公式,比如:

定义:若一个积分公式的误差满足,且是常数,则称该公式是p阶收敛的(收敛阶越高,收敛速度越快)。

前述三种复合积分公式的收敛阶数:

例:计算,函数值如下表

1
4 3.938461538 3.764705882 3.506849315 3.2 2.876404494 2.56 2.265486726 2

解:令,则,只有2位有效数字,而如果使用复合Simpson公式,差不多的计算量却有7位有效数字,实际上才有7位有效数字。

通过上例的分析,有必要讨论给定精度,要如何取才能达到精度要求。

复合梯形公式的误差分析:对于复合梯形公式,要求,则。(其他公式类似)

上例若要求,则,解出,即应取409。

通常采用将区间不断对分的方法,即取。上例中,即时,满足精度要求。

根据误差公式,不难发现每次对分一次,误差大概会变成原来的变为,则变为,代入中),即,如果采用区间一直对分的方法,可以使用此公式判断是否停止。

3. 变步长求积

前面介绍的Newton-Cotes公式是固定步长的方法,但是往往题目中只会给出精度要求,要根据精度要求求出步长的话要通过,这时就会出现的高阶导数,不便于计算。

变步长求积思想:变步长方法就是根据规定的精度要求,在计算过程中将积分区间逐次分半,每对分一次就用同一种复合求积公式计算出相应的积分近似值,并同时查看相继两次计算结果的误差是否达到要求,直到所求得的积分近似值满足精度要求为止。(也就是说,点仍然是等距分布的,只是每次迭代都再对分一次区间)

以梯形公式为例,将其递推化为变步长的梯形公式:

(1)将积分区间等分,等分点(其中),复合梯形公式为,画图可知是两个端点的函数值加一次,中间点的函数值全部加两次,最后再乘以

(2)若区间精度达不到要求,则将每个小区间二分一次,即令区间中点为,该小区间二分前后的两个积分值分别记为,代入梯形公式结合图像可知,整理后得

(3)将二分后的所有小区间积分累加,于是得到公式,这就是梯形公式的递推化公式,也称为梯形公式的变步长法,式中表示二分前的步长,即

(4)计算过程中,常用来判断精度是否满足要求。

可见,计算(分成份时的积分)时用到了的结果,只需对新的中间节点求和即可,这样可以使计算量减小很多。

例:用变步长法计算,使误差不超过(假设的函数值已知).

解:先对整个积分区间使用梯形公式,得,通过有:

0 1 0.920735492
1 2 0.939793285 0.019057793
2 4 0.944513522 0.004720237
3 8 0.945690864 0.001177342
4 16 0.94598503 0.000294166
5 32 0.946058561 7.3531
6 64 0.946076943 1.8382
7 128 0.946081539 4.596
8 256 0.946082687 1.148
9 512 0.946082975 2.88

4.龙贝格(Romberg)积分

变步长梯形求积虽然算法简单,但是收敛速度仍较慢。(因为它本质上仍是梯形法,只是不需要每次分区间都再从头算一遍)

前面提到了梯形公式的误差有如下结论:。如果用进行误差补偿,即,那么由来计算效果是否好一些?事实上,容易验证,即用梯形法二分前后的两个积分值按上式作线性组合,却得到了复合Simpson公式,精度提高了。

再考察Simpson公式,其截断误差与成正比,因此如果将步长折半,则误差减至,即,由此可得,容易验证,,即右端项就是复合Cotes公式。依此类推,,其中是Romberg序列。

根据前面分析,得到公式一公式二公式三,于是有Romberg算法

(1)用梯形公式计算积分近似值,令

(2)按变步长梯形公式计算,令

(3)将按公式一得到,判断相邻两次积分值是否小于,若满足精度要求则停止计算并输出,否则进行下一步;

(4)按变步长梯形公式计算,令

(5)将按公式一得到

(6)将按格式二得到,判断是否小于,若满足则停止计算并输出,否则进行下一步;

(7)按变步长梯形公式计算,令

(8)将按公式一得到

(9)将按公式二得到

(10)将按格式三得到;判断是否小于,若满足则停止计算并输出,否则类似进行下去;

可画出过程如下:

数值积分-龙贝格积分-01

例:用Romber求积算法计算的近似值,使其具有6位有效数字.

解:仿照过程的画图表示,列表如下

0 0.9207355
1 0.9397933 0.9461459
2 0.9445135 0.9460869 0.9400830
3 0.94456909 0.9460833 0.9460831 0.9460831

。(精确值为,即计算结果前6位确实是有效数字)

六、常微分方程的数值解法

1. 初值问题介绍

微分方程:有一个或多个导数及其函数的方程称为微分方程,它分为①常微分方程-只有一个自变量;②偏微分方程-一个以上自变量。

实际中求解常微分方程的定解问题有两类:初值问题边值问题。(定解指已知因变量或其导数在某些点上是已知的)

边解问题(边值问题):约束条件已知,在自变量的任一非初值上,已知函数值或其导数值,如,常常可以将边解问题转化为初值问题求解。

初值问题:约束条件为在自变量的初值上已知函数值,如,要求解,可在上的的近似值),通常取等距节点,令,则)。初值问题的数值解法特点:按节点顺序依次推进,若已知,可根据递推公式求出

初值问题的常用解法:(1)单步法:利用前一个单步的信息(即一个点),在上找下一点,欧拉法、龙格-库塔法都属于单步法;(2)预测校正法:又称多步法,利用一个以上的节点信息求的下一个,常用迭代法,如改进欧拉法、阿姆斯特当法。

单步递推法的基本思想是从出发,以某一斜率沿直线达到

比如,方程,令,且给出初值,就可以得到一阶常微分方程的初值问题

只要函数适当光滑连续,且关于满足李普希兹(Lipschitz)条件(即存在常数,使得),则由常微分方程理论知,初值问题的解必存在且唯一。

数值解法的含义:设法将常微分方程离散化,建立差分方程,给出解在一些离散点上的近似值。

数学描述如下:设方程问题的解的存在区间是,令,其中(如果是等距节点则称为步长),由于的解析表达式不容易得到或无法得到,我们用数值方法求得在每个节点的近似值,用表示,即,这样称为微分方程的数值解。

2. 欧拉(Euler)方法、欧拉预校法

欧拉显格式计算公式(显式欧拉公式或显式欧拉格式):,它可循环求解。

推导:Taylor展开法,,其中二阶导的部分可忽略,于是得到(其中,且根据初值问题的定义有)。

或者用向前差商近似导数,即,将其记作,依此类推得到,这是显式格式的欧拉计算公式。

隐式欧拉法(隐式欧拉公式或隐式欧拉格式):

推导:用向后差商近似导数,即,依此类推得到,其中。由于未知数同时出现在等式两边,不能直接得到,故称为隐式欧拉公式。使用时常用显式计算一个初值,在迭代求解。

例:用欧拉法解初值问题,取步长为,计算过程保留4位小数.

解:令,根据欧拉公式,其中,得

0 1 2 3 4 5
0 0.2 0.4 0.6 0.8 1
0 0.2000 0.3920 0.5606 0.6934 0.7824

除了欧拉格式外,还可以用梯形格式(其中),它是隐格式的。

观察可知,它是显、隐式两种算法的平均,它有两种计算思路(1)化为显格式;(2)用迭代法求,初值用Euler显格式确定。

中点欧拉公式

使用中心差商近似导数,即,依此类推得,其中

其实不同的迭代公式就是在每个小区间上用不同的形状的面积来近似积分值。

它们的优缺点如下:显式欧拉简单但精度低,隐式欧拉稳定性最好但精度低且计算量大,梯形公式精度高但计算量大,中点公式精度较高但需要多一个初值,可能影响精度。

为加快收敛速度,将显式欧拉格式与梯形格式结合起来就得到了欧拉预估-校正法。

欧拉预估-校正法(改进欧拉法)步骤:

(1)用显式欧拉公式作预测,算出

(2)将代入隐式梯形公式的右半部分作校正,得到

综合以上两步,可得到,其中。易证,当时,该方法关于的迭代收敛。

欧拉预估-校正法也可以写成,其中

例:求初值问题的数值解,取步长。(精确解为

解:,其中,计算结果如下表(为对比不同方法,加入了欧拉格式和精确解)

欧拉法 欧拉预校法 精确解
0 0 1 1 1
1 0.1 1.1 1.095909 1.095445
2 0.2 1.191818 1.184096 1.183216
3 0.3 1.277438 1.266201 1.264991
4 0.4 1.358213 1.343360 1.341641
5 0.5 1.435133 1.416402 1.414214
6 0.6 1.508966 1.485956 1.483240
7 0.7 1.580338 1.552515 1.549193
8 0.8 1.649783 1.616476 1.612452
9 0.9 1.717779 1.678168 1.673320
10 1 1.784770 1.737869 1.732051

3. 误差估计、收敛性、稳定性

定义:假设,按某种方法由严格算出这一步的误差叫做局部截断误差,记为

定义:由逐步严格算出的误差称为整体截断误差,记作

定义:若某种方法的局部截断误差为,则称该方法为p阶方法。(显然越大越好)

比如,欧拉显格式的局部误差:完整的Taylor展开为,假设,则根据欧拉显格式,两式相减得,所以欧拉显格式是一阶方法。

同理,梯形法,欧拉预校法

定理:设满足关于第2个变元的Lipschitz条件,且欧拉显格式的局部截断误差满足,则,其中为求解区间。

若初始误差为,则低一阶(具有普遍意义)。该定理揭示了局部与整体截断误差的关系,而讨论局部截断误差相对简单,所以我们这里只讨论局部截断误差。

定义:对某方法,任意固定,当(同时)时,若有,则称该方法收敛

比如,初值问题,考察欧拉显格式的收敛性:该问题的精确解为,欧拉公式为,对任意固定的,有,因此欧拉显式法收敛(当)。

同理,梯形法、欧拉预校法均收敛(当)。

定义:用某方法固定步长作计算,由初值严格得出,现假设初值有微小误差(即实际初值为),则引起第步计算值有误差(实际为),若),即不随无限扩大,则称该方法关于步长绝对稳定。一般分析时为简单起见,只考虑试验方程(可以是常数或复数)。

比如,对于欧拉法,,设初值有小扰动,则,两式相减得,显然,要使欧拉法绝对稳定,就必须保证,即时欧拉法绝对稳定。

4.龙格-库塔(R-K)方法

前面介绍的欧拉法的各种变形所能达到的最高精度只有2阶,我们有必要构造更高精度的单步递推格式。

二阶龙格-库塔格式,且.

考察改进欧拉法(即欧拉预校法):,若考虑把改为其他不同的斜率,步长也不再一定是一个,则可将其推广为,我们希望能确定系数,使得算法格式有2阶精度,即在的前提下,使得,方法如下:

Taylor展开,而(其中是我们定义的函数),将代入第一式得,对比Taylor展开,若要求,则必须有,满足这两个条件的有无穷多个解,所有满足上式的格式统称为二阶龙格-库塔格式。

特别地,当时就是改进欧拉法。

高阶龙格-库塔格式:在二阶的基础上进行推广,得到,其中均为待定系数,其确定方法和二阶时类似。

比如,三阶龙格-库塔法:四阶龙格-库法.

龙格-库塔法的计算量与最高精度阶数的关系如下表:

每步须算的个数 2 3 4 5 6 7
可达到的最高精度

由于龙格-库塔法的导出基于泰勒展开,故精度主要受函数的光滑性影响。对于光滑性不太好的解,最好采用低阶算法而将步长取小。

隐式龙格-库塔法,其中

对于显式格式的龙格-库塔法,阶数越高,其稳定的区域就越大。而对于隐式龙格-库塔法,其绝对稳定区域远高于显式格式。