《Ch11:数值计算方法之数值微分与外推方法.ppt》由会员分享,可在线阅读,更多相关《Ch11:数值计算方法之数值微分与外推方法.ppt(39页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第11章:章:数值微分与外推方法数值微分与外推方法n n设设设设f(x)f(x)是是是是 x x0 0-h,x-h,x0 0+h+h上连续可微的实函数,数值微分就是直上连续可微的实函数,数值微分就是直上连续可微的实函数,数值微分就是直上连续可微的实函数,数值微分就是直接利用计算接利用计算接利用计算接利用计算f(x)f(x)的程序来计算的程序来计算的程序来计算的程序来计算f(x)f(x)在在在在x x0 0处的导数值。处的导数值。处的导数值。处的导数值。n n对于工程应用来说,数值微分还是非常重要的:对于工程应用来说,数值微分还是非常重要的:对于工程应用来说,数值微分还是非常重要的:对于工程应
2、用来说,数值微分还是非常重要的:l l如果函数是用列表的方式给出的,如果函数不是初等函数,如果函数是用列表的方式给出的,如果函数不是初等函数,如果函数是用列表的方式给出的,如果函数不是初等函数,如果函数是用列表的方式给出的,如果函数不是初等函数,这时我们只能用数值微分方法求导数值。这时我们只能用数值微分方法求导数值。这时我们只能用数值微分方法求导数值。这时我们只能用数值微分方法求导数值。l l为了争夺市场,现在的软件商更喜欢开发所谓傻瓜软件,为了争夺市场,现在的软件商更喜欢开发所谓傻瓜软件,为了争夺市场,现在的软件商更喜欢开发所谓傻瓜软件,为了争夺市场,现在的软件商更喜欢开发所谓傻瓜软件,这种
3、软件不能要求用户给出一个函数的导函数。这种软件不能要求用户给出一个函数的导函数。这种软件不能要求用户给出一个函数的导函数。这种软件不能要求用户给出一个函数的导函数。l l直接采用数值微分方法可使相关的软件开发简单一些。直接采用数值微分方法可使相关的软件开发简单一些。直接采用数值微分方法可使相关的软件开发简单一些。直接采用数值微分方法可使相关的软件开发简单一些。n n现在的计算工具也为我们求数值微分提供了极大的方便,主现在的计算工具也为我们求数值微分提供了极大的方便,主现在的计算工具也为我们求数值微分提供了极大的方便,主现在的计算工具也为我们求数值微分提供了极大的方便,主要是计算时间和数值稳定性
4、都得到明显改善,从而提升了的要是计算时间和数值稳定性都得到明显改善,从而提升了的要是计算时间和数值稳定性都得到明显改善,从而提升了的要是计算时间和数值稳定性都得到明显改善,从而提升了的数值微分的实用价值。数值微分的实用价值。数值微分的实用价值。数值微分的实用价值。11.1 利用差商外推加速利用差商外推加速n n求数值微分的方法还是比较多的,当我们强烈推荐的方法是求数值微分的方法还是比较多的,当我们强烈推荐的方法是求数值微分的方法还是比较多的,当我们强烈推荐的方法是求数值微分的方法还是比较多的,当我们强烈推荐的方法是外推加速方法,基本步骤是:外推加速方法,基本步骤是:外推加速方法,基本步骤是:外
5、推加速方法,基本步骤是:l l构造一个与步长有关的近似公式;构造一个与步长有关的近似公式;构造一个与步长有关的近似公式;构造一个与步长有关的近似公式;l l构造一个步长收敛于零的变步长序列;构造一个步长收敛于零的变步长序列;构造一个步长收敛于零的变步长序列;构造一个步长收敛于零的变步长序列;l l利用变步长序列外推,得到一个加速收敛序列。利用变步长序列外推,得到一个加速收敛序列。利用变步长序列外推,得到一个加速收敛序列。利用变步长序列外推,得到一个加速收敛序列。n n利用外推方法加速的优点是:利用外推方法加速的优点是:利用外推方法加速的优点是:利用外推方法加速的优点是:l l尽管理论上有一定的
6、高度,但学习起来并不困难,而编程尽管理论上有一定的高度,但学习起来并不困难,而编程尽管理论上有一定的高度,但学习起来并不困难,而编程尽管理论上有一定的高度,但学习起来并不困难,而编程方法特别简单;方法特别简单;方法特别简单;方法特别简单;l l方法具有通用性,在后面求数值积分和常微分方程数值解方法具有通用性,在后面求数值积分和常微分方程数值解方法具有通用性,在后面求数值积分和常微分方程数值解方法具有通用性,在后面求数值积分和常微分方程数值解都用到了这种方法,也收到显著效果;都用到了这种方法,也收到显著效果;都用到了这种方法,也收到显著效果;都用到了这种方法,也收到显著效果;l l外推方法的效果
7、特别好,在几乎不增加计算量的同时,可外推方法的效果特别好,在几乎不增加计算量的同时,可外推方法的效果特别好,在几乎不增加计算量的同时,可外推方法的效果特别好,在几乎不增加计算量的同时,可以大幅度提升计算结果的精度。以大幅度提升计算结果的精度。以大幅度提升计算结果的精度。以大幅度提升计算结果的精度。n n计算公式计算公式计算公式计算公式假设假设假设假设f(x)f(x)是是是是 x x0 0-h,x-h,x0 0+h+h上连续可微的实函数,当上连续可微的实函数,当上连续可微的实函数,当上连续可微的实函数,当h h的值充分小的值充分小的值充分小的值充分小时,我们用时,我们用时,我们用时,我们用f(x
8、)f(x)在在在在x x0 0,x,x0 0+h+h处的一阶差商处的一阶差商处的一阶差商处的一阶差商fxfx0 0,x,x0 0+h+h作为作为作为作为f f(x(x0 0)的的的的近似值,从而得到一个与步长近似值,从而得到一个与步长近似值,从而得到一个与步长近似值,从而得到一个与步长h h有关的近似公式有关的近似公式有关的近似公式有关的近似公式n n估计截断误差估计截断误差估计截断误差估计截断误差l l记记记记fxfx0 0,x,x0 0+h+h为为为为f(x)f(x)在在在在x x0 0,x,x0 0+h+h处的差商,在上面的处的差商,在上面的处的差商,在上面的处的差商,在上面的(1)(1
9、)式中,式中,式中,式中,把把把把f(xf(x0 0+h)+h)在在在在x x0 0处一阶泰勒展开,简单处理后后即可得到处一阶泰勒展开,简单处理后后即可得到处一阶泰勒展开,简单处理后后即可得到处一阶泰勒展开,简单处理后后即可得到|f f (x(x0 0)-fx)-fx0 0,x,x0 0+h|=O(h)+h|=O(h)n n定义:如果一个关于微小增量定义:如果一个关于微小增量定义:如果一个关于微小增量定义:如果一个关于微小增量h h的近似公式的截断误差与的近似公式的截断误差与的近似公式的截断误差与的近似公式的截断误差与h hk k成正比,则成正比,则成正比,则成正比,则称该公式具有称该公式具有
10、称该公式具有称该公式具有k k阶精度。阶精度。阶精度。阶精度。n n结论结论结论结论 上面的上面的上面的上面的(1)(1)式具有式具有式具有式具有1 1阶精度。阶精度。阶精度。阶精度。2.2.利用变步长方法提高精度利用变步长方法提高精度n n构造一个单调收敛于零的步长序列进行计算构造一个单调收敛于零的步长序列进行计算构造一个单调收敛于零的步长序列进行计算构造一个单调收敛于零的步长序列进行计算对于给定的初始步长对于给定的初始步长对于给定的初始步长对于给定的初始步长h h0 000,我们可以令,我们可以令,我们可以令,我们可以令 h hk k=h=hk-1k-1/2 ,k=1,2,/2 ,k=1,
11、2,即可简单地得到一个步长序列,相应地得到一个导数的近即可简单地得到一个步长序列,相应地得到一个导数的近即可简单地得到一个步长序列,相应地得到一个导数的近即可简单地得到一个步长序列,相应地得到一个导数的近似值序列似值序列似值序列似值序列 Z Zk k=fx=fx0 0,x,x0 0+h+hk k,k=0,1,k=0,1,n n基本结论基本结论基本结论基本结论l l从理论上讲,当从理论上讲,当从理论上讲,当从理论上讲,当k k时时,我们有我们有我们有我们有h hk k00,从而,从而,从而,从而z zk k收敛于收敛于收敛于收敛于f f (x(x0 0)。l l一般的实际情况是,首先当一般的实际
12、情况是,首先当一般的实际情况是,首先当一般的实际情况是,首先当k k增大时,截断误差会显著减增大时,截断误差会显著减增大时,截断误差会显著减增大时,截断误差会显著减小,到一定程度后,舍入误差又会显著增大,所以存在临小,到一定程度后,舍入误差又会显著增大,所以存在临小,到一定程度后,舍入误差又会显著增大,所以存在临小,到一定程度后,舍入误差又会显著增大,所以存在临界的界的界的界的k k值。值。值。值。2.2.利用变步长方法提高精度利用变步长方法提高精度n n确定停机规则确定停机规则确定停机规则确定停机规则 利用一个循环结构计算序列利用一个循环结构计算序列利用一个循环结构计算序列利用一个循环结构计
13、算序列(h hk k,z,zk k)|k=0,1,|k=0,1,当然是一件当然是一件当然是一件当然是一件很容易的事情,但确定停机规则需要慎重。很容易的事情,但确定停机规则需要慎重。很容易的事情,但确定停机规则需要慎重。很容易的事情,但确定停机规则需要慎重。l l根据根据根据根据实际精度要求来决定是否停机。事先确定充分小的实际精度要求来决定是否停机。事先确定充分小的实际精度要求来决定是否停机。事先确定充分小的实际精度要求来决定是否停机。事先确定充分小的正数正数正数正数EPSEPSEPSEPS,只要某个,只要某个,只要某个,只要某个|z|z|z|zk+1k+1k+1k+1-z-z-z-zk k k
14、 k|EPS|EPS|EPS|00构造插值多项式来推算构造插值多项式来推算构造插值多项式来推算构造插值多项式来推算fxfx0 0,x,x0 0+h+h当当当当h h趋近于零时的极限值,而插值多项式中的趋近于零时的极限值,而插值多项式中的趋近于零时的极限值,而插值多项式中的趋近于零时的极限值,而插值多项式中的h h可以取零,所可以取零,所可以取零,所可以取零,所以是一种外推式的插值方法,亦即插值点在所有插值基点所以是一种外推式的插值方法,亦即插值点在所有插值基点所以是一种外推式的插值方法,亦即插值点在所有插值基点所以是一种外推式的插值方法,亦即插值点在所有插值基点所在的最小区间的外边。在的最小区
15、间的外边。在的最小区间的外边。在的最小区间的外边。3 3利用外推方法加速收敛利用外推方法加速收敛n n以抛物线插值微利说明处理方法以抛物线插值微利说明处理方法以抛物线插值微利说明处理方法以抛物线插值微利说明处理方法假设利用假设利用假设利用假设利用(h(hk k,z,zk k)、(h(hk+1k+1,z,zk+1k+1)、(h(hk+2k+2,z,zk+2k+2)作插值抛物线作插值抛物线作插值抛物线作插值抛物线z=az=a0 0+a+a1 1h+ah+a2 2h h2 2,利用,利用,利用,利用h hk+1k+1=h=hk k/2,h/2,hk+2k+2=h=hk k/4,/4,不难写出不难写出
16、不难写出不难写出由此解得由此解得由此解得由此解得3 3利用外推方法加速收敛利用外推方法加速收敛n n建立递推格式建立递推格式建立递推格式建立递推格式在上面的在上面的在上面的在上面的(2)(2)式中,可以把式中,可以把式中,可以把式中,可以把a a0 0记为记为记为记为A Ak+2k+2,从而得到递推格式从而得到递推格式从而得到递推格式从而得到递推格式3 3利用外推方法加速收敛利用外推方法加速收敛n n编程与案例计算编程与案例计算编程与案例计算编程与案例计算l l利用上面的递推格式编程是很容易的,源代码可参看教材利用上面的递推格式编程是很容易的,源代码可参看教材利用上面的递推格式编程是很容易的,
17、源代码可参看教材利用上面的递推格式编程是很容易的,源代码可参看教材第第第第305305页程序。页程序。页程序。页程序。l l利用程序求平方根函数在利用程序求平方根函数在利用程序求平方根函数在利用程序求平方根函数在x x0 0=4=4处的导数值得计算结果又下处的导数值得计算结果又下处的导数值得计算结果又下处的导数值得计算结果又下表给出,不难看到外推法的效果。表给出,不难看到外推法的效果。表给出,不难看到外推法的效果。表给出,不难看到外推法的效果。图图1.111.2 利用中心差商外推加速利用中心差商外推加速n n利用中心差商外推加速与利用差商外推加速的基本思路利用中心差商外推加速与利用差商外推加速
18、的基本思路利用中心差商外推加速与利用差商外推加速的基本思路利用中心差商外推加速与利用差商外推加速的基本思路完全相同,也采用三步走的方法:完全相同,也采用三步走的方法:完全相同,也采用三步走的方法:完全相同,也采用三步走的方法:l l构造计算导数的近似公式,其误差也是与步长构造计算导数的近似公式,其误差也是与步长构造计算导数的近似公式,其误差也是与步长构造计算导数的近似公式,其误差也是与步长h h有关;有关;有关;有关;l l构造变步长序列,从而得到导数的近似值序列;构造变步长序列,从而得到导数的近似值序列;构造变步长序列,从而得到导数的近似值序列;构造变步长序列,从而得到导数的近似值序列;l
19、l利用所得到的近似值序列构造插值多项式,从而得到利用所得到的近似值序列构造插值多项式,从而得到利用所得到的近似值序列构造插值多项式,从而得到利用所得到的近似值序列构造插值多项式,从而得到多项式的常数项。多项式的常数项。多项式的常数项。多项式的常数项。n n与上一节相比,差别只是计算导数的近似公式不同,所与上一节相比,差别只是计算导数的近似公式不同,所与上一节相比,差别只是计算导数的近似公式不同,所与上一节相比,差别只是计算导数的近似公式不同,所以我们关注的重点是这种计算公式的差别所导致的方法以我们关注的重点是这种计算公式的差别所导致的方法以我们关注的重点是这种计算公式的差别所导致的方法以我们关
20、注的重点是这种计算公式的差别所导致的方法上的细微差别以及性能上的差异。上的细微差别以及性能上的差异。上的细微差别以及性能上的差异。上的细微差别以及性能上的差异。1.利用中心差商替代微商利用中心差商替代微商n n计算公式计算公式假设假设假设假设f(x)f(x)是是是是 x x0 0-h,x-h,x0 0+h+h上连续可微的实函数,当上连续可微的实函数,当上连续可微的实函数,当上连续可微的实函数,当h h的值充的值充的值充的值充分小时,我们用分小时,我们用分小时,我们用分小时,我们用f(x)f(x)在在在在x x0 0,x,x0 0+h+h处的处的处的处的中心差商中心差商中心差商中心差商fxfx0
21、 0-h,x-h,x0 0+h+h 作为作为作为作为f f(x(x0 0)的近似值,即的近似值,即的近似值,即的近似值,即1 利用差商替代微商利用差商替代微商n n估计截断误差估计截断误差估计截断误差估计截断误差把把把把f(xf(x0 0+h)+h)和和和和f(xf(x0 0-h)-h)分别在分别在分别在分别在x x0 0处处处处2 2阶泰勒展开,得阶泰勒展开,得阶泰勒展开,得阶泰勒展开,得由此不难得到由此不难得到由此不难得到由此不难得到所以,中心差商是一个所以,中心差商是一个所以,中心差商是一个所以,中心差商是一个2 2阶公式。阶公式。阶公式。阶公式。2.2.利用变步长方法提高精度利用变步长
22、方法提高精度n n构造一个单调收敛于零的步长序列进行计算构造一个单调收敛于零的步长序列进行计算构造一个单调收敛于零的步长序列进行计算构造一个单调收敛于零的步长序列进行计算l l与前面的处理方式完全相同,对于给定的初始步长与前面的处理方式完全相同,对于给定的初始步长与前面的处理方式完全相同,对于给定的初始步长与前面的处理方式完全相同,对于给定的初始步长h h0 000,我们,我们,我们,我们可以利用地退的方式得到一个序列可以利用地退的方式得到一个序列可以利用地退的方式得到一个序列可以利用地退的方式得到一个序列n n基本结论基本结论基本结论基本结论l l对于这里得到的序列,也具有与前面相同的结论。
23、对于这里得到的序列,也具有与前面相同的结论。对于这里得到的序列,也具有与前面相同的结论。对于这里得到的序列,也具有与前面相同的结论。l l由于中心差商具有由于中心差商具有由于中心差商具有由于中心差商具有2 2阶精度,所以这里的序列会收敛的更快一阶精度,所以这里的序列会收敛的更快一阶精度,所以这里的序列会收敛的更快一阶精度,所以这里的序列会收敛的更快一些,所能得到的最好结果也会更精确一些。些,所能得到的最好结果也会更精确一些。些,所能得到的最好结果也会更精确一些。些,所能得到的最好结果也会更精确一些。3 3利用外推方法加速收敛利用外推方法加速收敛n n偶函数的性质偶函数的性质偶函数的性质偶函数的
24、性质l l不难验证,对于固定的不难验证,对于固定的不难验证,对于固定的不难验证,对于固定的x x0 0来说,中心差商来说,中心差商来说,中心差商来说,中心差商fxfx0 0-h,x-h,x0 0+h+h作为作为作为作为h h的函数是偶函数。的函数是偶函数。的函数是偶函数。的函数是偶函数。l l不难证明,偶函数在原点处的所有奇数次阶的导均为零。不难证明,偶函数在原点处的所有奇数次阶的导均为零。不难证明,偶函数在原点处的所有奇数次阶的导均为零。不难证明,偶函数在原点处的所有奇数次阶的导均为零。n n偶函数在原点附近的多项式插值偶函数在原点附近的多项式插值偶函数在原点附近的多项式插值偶函数在原点附近
25、的多项式插值l l如果在原点附近用插值多项式来近似表示一个偶函数,我如果在原点附近用插值多项式来近似表示一个偶函数,我如果在原点附近用插值多项式来近似表示一个偶函数,我如果在原点附近用插值多项式来近似表示一个偶函数,我们可以用仅含偶数次项的多项式作为插值多项式。们可以用仅含偶数次项的多项式作为插值多项式。们可以用仅含偶数次项的多项式作为插值多项式。们可以用仅含偶数次项的多项式作为插值多项式。l l仅含偶数次项的多项式的一般形式为仅含偶数次项的多项式的一般形式为仅含偶数次项的多项式的一般形式为仅含偶数次项的多项式的一般形式为 p pmm(x)=a(x)=a0 0+a+a1 1x x2 2+a+a
26、2 2x x4 4+a+ammx x2m 2m (4)(4)l l所以,如果是偶函数在原点附近的多项式插值,我们可以所以,如果是偶函数在原点附近的多项式插值,我们可以所以,如果是偶函数在原点附近的多项式插值,我们可以所以,如果是偶函数在原点附近的多项式插值,我们可以利用利用利用利用m+1m+1对函数值列表得到对函数值列表得到对函数值列表得到对函数值列表得到2m2m阶精度的插值公式。阶精度的插值公式。阶精度的插值公式。阶精度的插值公式。3 3利用外推方法加速收敛利用外推方法加速收敛n n具体计算方法具体计算方法具体计算方法具体计算方法假设利用假设利用假设利用假设利用(h(hk k,z,zk k)
27、、(h(hk+1k+1,z,zk+1k+1)、(h(hk+2k+2,z,zk+2k+2)作作作作3 3个基点的多项个基点的多项个基点的多项个基点的多项式插值,利用式插值,利用式插值,利用式插值,利用h hk+1k+1=h=hk k/2,h/2,hk+2k+2=h=hk k/4,/4,不难写出不难写出不难写出不难写出把所求得的把所求得的把所求得的把所求得的a a0 0记为记为记为记为A Ak+2k+2即可得到即可得到即可得到即可得到3 3利用外推方法加速收敛利用外推方法加速收敛n n案例计算案例计算案例计算案例计算l l只需把程序中计算只需把程序中计算只需把程序中计算只需把程序中计算z zk k
28、和和和和A Ak k的地方稍作修改,即可得到利用的地方稍作修改,即可得到利用的地方稍作修改,即可得到利用的地方稍作修改,即可得到利用中心差商外推的程序。中心差商外推的程序。中心差商外推的程序。中心差商外推的程序。l l利用程序计算前面的案例所得到的结果如下,可以看出采利用程序计算前面的案例所得到的结果如下,可以看出采利用程序计算前面的案例所得到的结果如下,可以看出采利用程序计算前面的案例所得到的结果如下,可以看出采用中心差商外推效果更好一些。用中心差商外推效果更好一些。用中心差商外推效果更好一些。用中心差商外推效果更好一些。图图2.14.4.几点具体说明几点具体说明n n对于求数值微分来说,对
29、于给定的对于求数值微分来说,对于给定的对于求数值微分来说,对于给定的对于求数值微分来说,对于给定的x x0 0以及充分小的步长以及充分小的步长以及充分小的步长以及充分小的步长h h,计算差商时会遇到许多不利的运算:计算差商时会遇到许多不利的运算:计算差商时会遇到许多不利的运算:计算差商时会遇到许多不利的运算:l l计算计算计算计算x x0 0+h+h和和和和x x0 0-h-h时,可能出现大数吃小数的现象;时,可能出现大数吃小数的现象;时,可能出现大数吃小数的现象;时,可能出现大数吃小数的现象;l l计算计算计算计算f(xf(x0 0+h)-f(x+h)-f(x0 0-h)-h)时时时时,可能
30、出现绝对值相近符号相同的可能出现绝对值相近符号相同的可能出现绝对值相近符号相同的可能出现绝对值相近符号相同的两个数相减,从而产生较大的舍入误差。两个数相减,从而产生较大的舍入误差。两个数相减,从而产生较大的舍入误差。两个数相减,从而产生较大的舍入误差。但是,采用变步长方法结合外推加速,基本上可以化解这个但是,采用变步长方法结合外推加速,基本上可以化解这个但是,采用变步长方法结合外推加速,基本上可以化解这个但是,采用变步长方法结合外推加速,基本上可以化解这个问题。问题。问题。问题。n n尽管一般情况下利用中心差商计算效果更好一些,如果所给尽管一般情况下利用中心差商计算效果更好一些,如果所给尽管一
31、般情况下利用中心差商计算效果更好一些,如果所给尽管一般情况下利用中心差商计算效果更好一些,如果所给的问题只能求单边导数,也只能用一阶差商外推。的问题只能求单边导数,也只能用一阶差商外推。的问题只能求单边导数,也只能用一阶差商外推。的问题只能求单边导数,也只能用一阶差商外推。n n在后面两节中,我们将给出更一般性的外推方法,如果确定在后面两节中,我们将给出更一般性的外推方法,如果确定在后面两节中,我们将给出更一般性的外推方法,如果确定在后面两节中,我们将给出更一般性的外推方法,如果确定了外推多项式的次数,那么在工程应用中就可以采用这两节了外推多项式的次数,那么在工程应用中就可以采用这两节了外推多
32、项式的次数,那么在工程应用中就可以采用这两节了外推多项式的次数,那么在工程应用中就可以采用这两节介绍的基本方法,程序显得更简洁一些。介绍的基本方法,程序显得更简洁一些。介绍的基本方法,程序显得更简洁一些。介绍的基本方法,程序显得更简洁一些。11.11.3 3 里查逊外推加速法里查逊外推加速法n n科学计算领域内有一大类类似的问题可以表述为:科学计算领域内有一大类类似的问题可以表述为:科学计算领域内有一大类类似的问题可以表述为:科学计算领域内有一大类类似的问题可以表述为:l l我们要计算的某个与我们要计算的某个与我们要计算的某个与我们要计算的某个与x x0 0有关的真值有关的真值有关的真值有关的
33、真值T(xT(x0 0)可表为某个与步可表为某个与步可表为某个与步可表为某个与步长长长长h h有关的连续函数有关的连续函数有关的连续函数有关的连续函数F(xF(x0 0,h),h)当当当当h h趋近于零时的极限值。趋近于零时的极限值。趋近于零时的极限值。趋近于零时的极限值。l l为了得到为了得到为了得到为了得到T(xT(x0 0)的尽可能精确的近似值,我们通常取一个的尽可能精确的近似值,我们通常取一个的尽可能精确的近似值,我们通常取一个的尽可能精确的近似值,我们通常取一个单调趋近于零的正数速序列单调趋近于零的正数速序列单调趋近于零的正数速序列单调趋近于零的正数速序列hhk k,从而得到从而得到
34、从而得到从而得到T(xT(x0 0)的近似值的近似值的近似值的近似值序列序列序列序列zzk k=F(x=F(x0 0,h,hk k)。l l接下来对所有不小于接下来对所有不小于接下来对所有不小于接下来对所有不小于mm的的的的k k值,寻找值,寻找值,寻找值,寻找z zk k,z,zk-1k-1,z,zk-mk-m的一个的一个的一个的一个线性函数或线性组合,以得到一个比线性函数或线性组合,以得到一个比线性函数或线性组合,以得到一个比线性函数或线性组合,以得到一个比z zk k更为精确的更为精确的更为精确的更为精确的A Ak k,从从从从而又得到一个加速收敛的序列。而又得到一个加速收敛的序列。而又
35、得到一个加速收敛的序列。而又得到一个加速收敛的序列。n n里查逊外推加速法就是求解这一类问题的一种通用的算法。里查逊外推加速法就是求解这一类问题的一种通用的算法。里查逊外推加速法就是求解这一类问题的一种通用的算法。里查逊外推加速法就是求解这一类问题的一种通用的算法。提示:虽然教材的后面两节中又给出一种更为通用的外推加提示:虽然教材的后面两节中又给出一种更为通用的外推加提示:虽然教材的后面两节中又给出一种更为通用的外推加提示:虽然教材的后面两节中又给出一种更为通用的外推加速方法,但仍有必要研究速方法,但仍有必要研究速方法,但仍有必要研究速方法,但仍有必要研究里查逊外推加速方法。里查逊外推加速方法
36、。里查逊外推加速方法。里查逊外推加速方法。n n假设假设假设假设F(xF(x0 0,h),h)在在在在h=0h=0处可展为泰勒级数处可展为泰勒级数处可展为泰勒级数处可展为泰勒级数 F(xF(x0 0,h)=T(x0)+,h)=T(x0)+a a1 1h+h+a a2 2h h2 2+a ap ph hp p+如果如果如果如果a a1 10,0,则称则称则称则称F(xF(x0 0,h),h)具有具有具有具有1 1阶精度;阶精度;阶精度;阶精度;如果如果如果如果a a1 1=A=A2 2=a ap-1p-1=0,=0,a ap p0,0,则称则称则称则称F(t,h)F(t,h)具有具有具有具有p
37、p阶精度;阶精度;阶精度;阶精度;n n结论:显然,一个近似计算公式结论:显然,一个近似计算公式结论:显然,一个近似计算公式结论:显然,一个近似计算公式F(xF(x0 0,h),h)的精度愈高愈好。的精度愈高愈好。的精度愈高愈好。的精度愈高愈好。n n问题:我们能否利用利用低阶精度的公式构造高阶精度的公问题:我们能否利用利用低阶精度的公式构造高阶精度的公问题:我们能否利用利用低阶精度的公式构造高阶精度的公问题:我们能否利用利用低阶精度的公式构造高阶精度的公式?式?式?式?2 2中点公式的优越性中点公式的优越性n n如果最初给出的如果最初给出的如果最初给出的如果最初给出的F(xF(x0 0,h)
38、,h)是一个偶函数,那么它本身就具有是一个偶函数,那么它本身就具有是一个偶函数,那么它本身就具有是一个偶函数,那么它本身就具有2 2阶精度。然而,平时按数学或物理学中给出的定义,阶精度。然而,平时按数学或物理学中给出的定义,阶精度。然而,平时按数学或物理学中给出的定义,阶精度。然而,平时按数学或物理学中给出的定义,F(xF(x0 0,h),h)通常只有通常只有通常只有通常只有1 1阶精度。阶精度。阶精度。阶精度。n n如果如果如果如果F(xF(x0 0,h),h)具有具有具有具有1 1阶或奇数阶或奇数阶或奇数阶或奇数p p阶精度,而且允许阶精度,而且允许阶精度,而且允许阶精度,而且允许h h取
39、负值,取负值,取负值,取负值,那么我们可以简单地令那么我们可以简单地令那么我们可以简单地令那么我们可以简单地令 从而得到从而得到从而得到从而得到G(xG(x0 0,h),h)是偶函数,而且具有是偶函数,而且具有是偶函数,而且具有是偶函数,而且具有2 2阶或阶或阶或阶或p+1p+1阶精度。阶精度。阶精度。阶精度。n n约定:不失一般性,我们总是假定得到的第一个近似公式约定:不失一般性,我们总是假定得到的第一个近似公式约定:不失一般性,我们总是假定得到的第一个近似公式约定:不失一般性,我们总是假定得到的第一个近似公式是关于是关于是关于是关于h h的偶函数,具有的偶函数,具有的偶函数,具有的偶函数,
40、具有2 2阶精度,并记为阶精度,并记为阶精度,并记为阶精度,并记为FTFT0 0(x(x0 0,h),h)。3 3利用步长折半的方法得到利用步长折半的方法得到4 4阶公式阶公式n n假设假设假设假设FTFT0 0(x(x0 0,h),h)适当光滑,在适当光滑,在适当光滑,在适当光滑,在h=0h=0处泰勒展开,我们有处泰勒展开,我们有处泰勒展开,我们有处泰勒展开,我们有4 4如法炮制如法炮制6 6阶公式阶公式n n上面得到的上面得到的上面得到的上面得到的FTFT1 1(x(x0 0,h),h)是一个是一个是一个是一个4 4阶公式。不难验证,它还是偶阶公式。不难验证,它还是偶阶公式。不难验证,它还
41、是偶阶公式。不难验证,它还是偶函数。如果足够函数。如果足够函数。如果足够函数。如果足够光滑,我们可以如法炮制公式。光滑,我们可以如法炮制公式。光滑,我们可以如法炮制公式。光滑,我们可以如法炮制公式。n n还是把还是把还是把还是把FTFT1 1(x(x0 0,h),h)在在在在h=0h=0处泰勒展开,我们有:处泰勒展开,我们有:处泰勒展开,我们有:处泰勒展开,我们有:5.5.获得高阶近似公式的一般方法获得高阶近似公式的一般方法n n实际上我们已经得到了实际上我们已经得到了实际上我们已经得到了实际上我们已经得到了获得高阶近似公式的一般方法:获得高阶近似公式的一般方法:获得高阶近似公式的一般方法:获
42、得高阶近似公式的一般方法:假如已经得到了一个假如已经得到了一个假如已经得到了一个假如已经得到了一个2k2k阶的近似公式阶的近似公式阶的近似公式阶的近似公式FTFTk-1k-1(x(x0 0,h),h),如果,如果,如果,如果他还是足够光滑的,那么他还是足够光滑的,那么他还是足够光滑的,那么他还是足够光滑的,那么 就是一个具有就是一个具有就是一个具有就是一个具有2k+22k+2阶精度的近似公式阶精度的近似公式阶精度的近似公式阶精度的近似公式6 数值计算时采用的公式数值计算时采用的公式n n为了便于数值计算,我们采用如下记号:为了便于数值计算,我们采用如下记号:为了便于数值计算,我们采用如下记号:
43、为了便于数值计算,我们采用如下记号:l l对于给定的初始步长对于给定的初始步长对于给定的初始步长对于给定的初始步长h h0 0,记,记,记,记 H0=hH0=h0 0,Hk=Hk-1/2Hk=Hk-1/2,k=1,2,k=1,2,l l由于由于由于由于x x0 0是固定值,所以在记号中不予考虑。是固定值,所以在记号中不予考虑。是固定值,所以在记号中不予考虑。是固定值,所以在记号中不予考虑。l l对任意对任意对任意对任意 k=0,1,2,k=0,1,2,,以及,以及,以及,以及m=0,1,km=0,1,k,记,记,记,记 Tmk=FT Tmk=FTmm(x(x0 0,Hk),Hk)n n利用上面
44、的记号,前面的利用上面的记号,前面的利用上面的记号,前面的利用上面的记号,前面的 (*)(*)式可表示为式可表示为式可表示为式可表示为6.三角形的计算表格三角形的计算表格n n把把把把k k作为行号,作为行号,作为行号,作为行号,mm作为列号,即可把前面定义的诸作为列号,即可把前面定义的诸作为列号,即可把前面定义的诸作为列号,即可把前面定义的诸Tmk Tmk 安安安安排在下面的计算表格中。排在下面的计算表格中。排在下面的计算表格中。排在下面的计算表格中。mm=0=0m=1m=1m=2m=2m=3m=3k=0k=0T00T00k=1k=1T01T01T11T11k=k=2 2T02T02T12T
45、12T22T22k=3k=3T03T03T13T13T23T23T33T33n n计算方法计算方法计算方法计算方法过去人们利用手工的方式计算,就是利用前面的过去人们利用手工的方式计算,就是利用前面的过去人们利用手工的方式计算,就是利用前面的过去人们利用手工的方式计算,就是利用前面的(*)(*)(*)(*)式,式,式,式,在上面的表格中由上往下逐行计算,在每一行中,由左向在上面的表格中由上往下逐行计算,在每一行中,由左向在上面的表格中由上往下逐行计算,在每一行中,由左向在上面的表格中由上往下逐行计算,在每一行中,由左向右逐列计算。右逐列计算。右逐列计算。右逐列计算。7.编写实用程序的考虑编写实用
46、程序的考虑n n现在利用计算机进行外推,为了强调程序的通用性,也为了现在利用计算机进行外推,为了强调程序的通用性,也为了现在利用计算机进行外推,为了强调程序的通用性,也为了现在利用计算机进行外推,为了强调程序的通用性,也为了强调数值稳定性,建议只用强调数值稳定性,建议只用强调数值稳定性,建议只用强调数值稳定性,建议只用3434列计算,已经相当于采用列计算,已经相当于采用列计算,已经相当于采用列计算,已经相当于采用6868阶精度的近似公式计算,进一步加列数已无实际意义。阶精度的近似公式计算,进一步加列数已无实际意义。阶精度的近似公式计算,进一步加列数已无实际意义。阶精度的近似公式计算,进一步加列
47、数已无实际意义。n n采用固定列数计算时,可以不用指示列的变量,从而可以用采用固定列数计算时,可以不用指示列的变量,从而可以用采用固定列数计算时,可以不用指示列的变量,从而可以用采用固定列数计算时,可以不用指示列的变量,从而可以用4 4个数组个数组个数组个数组T0,T1,T2,T3T0,T1,T2,T3来存放表格各列中的数据。来存放表格各列中的数据。来存放表格各列中的数据。来存放表格各列中的数据。n n为了得到精确结果,可适当增加计算的行数,所以实际的计为了得到精确结果,可适当增加计算的行数,所以实际的计为了得到精确结果,可适当增加计算的行数,所以实际的计为了得到精确结果,可适当增加计算的行数
48、,所以实际的计算表格像一个直角梯形。算表格像一个直角梯形。算表格像一个直角梯形。算表格像一个直角梯形。n n矩形表格右上角单元格中的数据没有实际意义,但可以设置矩形表格右上角单元格中的数据没有实际意义,但可以设置矩形表格右上角单元格中的数据没有实际意义,但可以设置矩形表格右上角单元格中的数据没有实际意义,但可以设置得与同行左边相邻的数据相同,这样程序会特别简单。得与同行左边相邻的数据相同,这样程序会特别简单。得与同行左边相邻的数据相同,这样程序会特别简单。得与同行左边相邻的数据相同,这样程序会特别简单。n n即使增加计算的行数,数组的长度一般不要超过即使增加计算的行数,数组的长度一般不要超过即
49、使增加计算的行数,数组的长度一般不要超过即使增加计算的行数,数组的长度一般不要超过1515,无论如,无论如,无论如,无论如何不要超过何不要超过何不要超过何不要超过3131。所以对额外内存的需求可忽略不计。所以对额外内存的需求可忽略不计。所以对额外内存的需求可忽略不计。所以对额外内存的需求可忽略不计。8.实用里查逊外推方法实用里查逊外推方法n n结合计算机数值计算的特点,我们可以把实现里查逊外推方结合计算机数值计算的特点,我们可以把实现里查逊外推方结合计算机数值计算的特点,我们可以把实现里查逊外推方结合计算机数值计算的特点,我们可以把实现里查逊外推方法的程序设计得非常简单:只用一个简单的循环结构
50、即可,法的程序设计得非常简单:只用一个简单的循环结构即可,法的程序设计得非常简单:只用一个简单的循环结构即可,法的程序设计得非常简单:只用一个简单的循环结构即可,简化后的递推格式如下,完整的代码讲程序,推广应用时只简化后的递推格式如下,完整的代码讲程序,推广应用时只简化后的递推格式如下,完整的代码讲程序,推广应用时只简化后的递推格式如下,完整的代码讲程序,推广应用时只需改写计算需改写计算需改写计算需改写计算FT0(x,h)FT0(x,h)的代码即可。的代码即可。的代码即可。的代码即可。11.4 涅维尔递推插值方法涅维尔递推插值方法n n大量科学计算问题都是利用迭代方法产生一对自变量和因变大量科