资源描述:
《数值计算方法之数值微分与外推方法.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第11章:数值微分与外推方法设f(x)是[x0-h,x0+h]上连续可微的实函数,数值微分就是直接利用计算f(x)的程序来计算f(x)在x0处的导数值。对于工程应用来说,数值微分还是非常重要的:如果函数是用列表的方式给出的,如果函数不是初等函数,这时我们只能用数值微分方法求导数值。为了争夺市场,现在的软件商更喜欢开发所谓傻瓜软件,这种软件不能要求用户给出一个函数的导函数。直接采用数值微分方法可使相关的软件开发简单一些。现在的计算工具也为我们求数值微分提供了极大的方便,主要是计算时间和数值稳定性都得到明显改善,从而提升了的数值微分的实用价值。11
2、.1利用差商外推加速求数值微分的方法还是比较多的,当我们强烈推荐的方法是外推加速方法,基本步骤是:构造一个与步长有关的近似公式;构造一个步长收敛于零的变步长序列;利用变步长序列外推,得到一个加速收敛序列。利用外推方法加速的优点是:尽管理论上有一定的高度,但学习起来并不困难,而编程方法特别简单;方法具有通用性,在后面求数值积分和常微分方程数值解都用到了这种方法,也收到显著效果;外推方法的效果特别好,在几乎不增加计算量的同时,可以大幅度提升计算结果的精度。1.利用差商替代微商计算公式假设f(x)是[x0-h,x0+h]上连续可微的实函数,当h的值充
3、分小时,我们用f(x)在x0,x0+h处的一阶差商f[x0,x0+h]作为f’(x0)的近似值,从而得到一个与步长h有关的近似公式1.利用差商替代微商估计截断误差记f[x0,x0+h]为f(x)在x0,x0+h处的差商,在上面的(1)式中,把f(x0+h)在x0处一阶泰勒展开,简单处理后后即可得到
4、f’(x0)-f[x0,x0+h]
5、=O(h)定义:如果一个关于微小增量h的近似公式的截断误差与hk成正比,则称该公式具有k阶精度。结论上面的(1)式具有1阶精度。2.利用变步长方法提高精度构造一个单调收敛于零的步长序列进行计算对于给定的初始步长h0
6、>0,我们可以令hk=hk-1/2,k=1,2,…即可简单地得到一个步长序列,相应地得到一个导数的近似值序列Zk=f[x0,x0+hk],k=0,1,…基本结论从理论上讲,当k→∞时,我们有hk→0,从而zk收敛于f’(x0)。一般的实际情况是,首先当k增大时,截断误差会显著减小,到一定程度后,舍入误差又会显著增大,所以存在临界的k值。2.利用变步长方法提高精度确定停机规则利用一个循环结构计算序列{(hk,zk)
7、k=0,1,…}当然是一件很容易的事情,但确定停机规则需要慎重。根据实际精度要求来决定是否停机。事先确定充分小的正数EPS,只要某个
8、
9、zk+1-zk
10、11、zk+1-zk
12、开始随k的增大而增大时,停止进一步的计算。也可以综合上面两条规格而形成一个综合性的规则。3.利用外推方法加速收敛问题的提法对于前面变步长方法得到的序列{(hk,zk)
13、k=0,1,…},我们可以把他们看成是自变量为h的函数z=f[x0,x0+h]的函数值列表,从而可以从中取出若干对数据作插值多项式p(h),进而得到当h=0时多项式的值。虽然可以用Lagrange插值
14、公式完成相应的计算,由于多项式但自变量为零时的值就是常数项,所以能够找到更好的计算方法。由于我们是利用若干个hk>0构造插值多项式来推算f[x0,x0+h]当h趋近于零时的极限值,而插值多项式中的h可以取零,所以是一种外推式的插值方法,亦即插值点在所有插值基点所在的最小区间的外边。3.利用外推方法加速收敛以抛物线插值微利说明处理方法假设利用(hk,zk)、(hk+1,zk+1)、(hk+2,zk+2)作插值抛物线z=a0+a1h+a2h2,利用hk+1=hk/2,hk+2=hk/4,不难写出由此解得3.利用外推方法加速收敛建立递推格式在上面的(
15、2)式中,可以把a0记为Ak+2,从而得到递推格式3.利用外推方法加速收敛编程与案例计算利用上面的递推格式编程是很容易的,源代码可参看教材第305页程序11.01。利用程序11.01求平方根函数在x0=4处的导数值得计算结果又下表给出,不难看到外推法的效果。图1.111.2利用中心差商外推加速利用中心差商外推加速与利用差商外推加速的基本思路完全相同,也采用三步走的方法:构造计算导数的近似公式,其误差也是与步长h有关;构造变步长序列,从而得到导数的近似值序列;利用所得到的近似值序列构造插值多项式,从而得到多项式的常数项。与上一节相比,差别只是计算
16、导数的近似公式不同,所以我们关注的重点是这种计算公式的差别所导致的方法上的细微差别以及性能上的差异。1.利用中心差商替代微商计算公式假设f(x)是[x