1、 毕业论文文献综述 信息与计算科学 导数的数值计算方法 一、 前言部分 导数概念的产生有着直觉的起源 , 与曲线的切线和运动质点的速度有密切的关系 导数用于描述函数变化率 , 刻画函数的因变量随自变量变化的快慢程度 比如说 , 物理上考虑功随时间的变化率(称为功率) , 化学上考虑反应物的量对时间的变化率(称为反应速度) ,经济学上考虑生产某种产品的成本随产量的变化率(称为边际成本)等等 , 这些变化率在数学上都可用导数表示 导数由于其应用的广泛性 , 为我们解决所学过的有关函数问题提供了一般性的方法 , 导数是研究函数的切线、单调性、极值与 最值等问题的有力工具;运用它可以简捷地解决一些实际
2、问题 , 导数的概念是用来研究函数在一点及其附近的局部性质的精确工具 , 而对于函数在某点附近的性质还可以应用另一种方法来研究 , 就是通过最为简单的线性函数来逼近 , 这就是微分的方法 微分学是数学分析的重要组成部分 , 微分中值定理作为微分学的核心 , 是沟通导数和函数值之间的桥梁 , Rolle 中值定理 , Lagrange 中值定理 , Cauchy 中值定理 , Taylor 公式是微分学的基本定理 , 统称为微分学的中值定理 , 这四个定理作为微分学的基本定理 , 是研究函数形态的有力工具 1 在微分学中 , 函数的导数是通过极限定义的 , 但当函数用表格给出时 , 就不可用定义
3、来求其导数 , 只能用近似方法求数值导数 2 最简单的数值微分公式是用差商近似地代替微商 , 常见的有 3 f x h f xfx h , f x f x hfx h , 2f x h f x hfx h 需要注意的是微分是非常敏感的问题 , 数据的微小扰动会使结果产生很大的变化 4 二、 主题部分 数学中研究导数 , 微分及其应用的部分称为微分学,定积分及其应用的部分称为积分学 微分学与积分学统称为微积分学 微积分学是高等数学最基本 , 最重要的组成部分 , 是现代数学许多分支的基础 , 是人类认识客观世界 , 探索宇宙奥秘乃至人类自身的典型数学模型之一 恩格斯 (1820-1895)曾指出
4、 :“在一切理论成就中 , 未必再有什么像 17 世纪下半叶微积分的发明那样被看作人类精神的最高胜利了” 微积分的发展历史曲折跌宕 , 撼人心灵 ,是培养人们正确世界观 , 科学方法论和对人们进行文化熏陶的极好素材 积分的雏形可追溯到古希腊和我国魏晋时期 , 但微分概念直至 16 世纪才应运萌生,从 15 世纪初文艺复兴时期起 , 欧洲的工业 , 农业 , 航海事业与商贾贸易得到大规模的发展 , 形成了一个新的经济时代 而十六世纪的欧洲 , 正处在资本主义萌芽时期 , 生产力得到了很大的发展生产实践的发展对自然科学提出了新的课题 , 迫切要求力学 , 天文学等基础科学的发展 , 而这些学科都是
5、深刻依赖于数学 的 , 因而也推动了数学的发展 在各类学科对数学提出的种种要求中 , 下列三类问题导致了微分学的产生 : (1) 求变速运动的瞬时速度 ; (2) 求曲线上一点处的切线 ; (3) 求最大值和最小值 这三类实际问题的现实原型在数学上都可归结为函数相对于自变量变化而变化的快慢程度 ,即所谓函数的变化率问题 导数的思想最初是由法国数学家费马 (Fermat)为研究极值问题而引入的 , 但与导数概念直接相联系的是以下两个问题 :已知运动规律求速度和已知曲线求它的切线 这是由英国数学家牛顿 (Newton)和德国数学家莱布尼茨 (Leibniz)分别在研究力学和几何学过程中建立起来的
6、5 下面我们就来研究几种推导数值微分公式的常用方法 (一)利用差商表求导数 67, 最简单的数值微分公式是用向前差商近似代替导数: 000 f x h f xfx h ( 1 1) 类似地,也可用向后差商近似代替导数 000 f x f x hfx h ( 1 2) 或用中心差商近似代替导数 000 2f x h f x hfx h ( 1 3) y T A B C 0 0xh 0x 0xh x 数值微分示意图 在几何图形上,这 3 种差商分别表示弦 AB, AC 和 BC 的斜率将这 3 条弦同过 A 点的切线 AT 相比较,从上图可以看出,一般地说以 BC 的斜率更接近于切线 AT 的斜率
7、 0fx,因此就精确度而言,以 式( 1 3)更为可取称 002f x h f x hDh h ( 1 4) 为求 0fx的中点公式 现在来考察用式 ( 1 4)代替 0fx所产生的截断误差首先分别将 0f x h 在 0x 处作 Taylor 展开,有 2 3 4 40 0 0 0 0 0 2 ! 3 ! 4 !h h hf x h f x h f x f x f x f x 5 5 05!h fx 然后代入中点公 式( 1 4),得 24 50 0 0 3 ! 5!hhD h f x f x f x 所以截断误差 24 50 0 0 3 ! 5!hhf x D h f x f x ( 1
8、5) 由此可以得到:从截断误差的角度来看,步长 h 越小,计算结果越准确但从计算角度看, h 越小, 0f x h 与 0f x h 越接近,直接相减会造成有效数字的严重损失,因此从舍入误差的角度看步长 h 不宜去的太小怎 样选取合适的步长呢?可采用二分步长及误差事后估计法,即比较二分前后所得值 Dh与 2hD,若 2hD h D ,则 2h 为所需的合适的步长且 02hD f x (二)插值型求导公式 对于列表函数 y f x x 0x 1x nx y 0y 1y ny 应用插值原理 , 可以建立插值多项式 npx作为 fx的近似 由于多项式的求导比较容易 ,因 此可以取 npx的值作为 f
9、x的近似值 , 这样建立的数值公式 nf x p x ( 2 1) 统称为插值型求导公式 8,9 npx的截断误差可由 npx的截断误差求导数得到 因为 1 11!nnnff x p x W xn 式中, ,ab 且依赖于 x ; 1 0nnjjW x x x 于是 npx的截断误差为 1 111 1 ! 1 !n nnnnf W x df x p x W x fn n d x ( 2 2) 由于 是 x 的位置函数,因此求 1nd fdx 较麻烦,一般都限定求某个节点 kx 上的导数值,此时( 2 2)右端的第 2 项由于 1 0nkWx 而变为零,这时 npx的截断误差为 11 1!nk
10、n k n kff x p x W xn ( 2 3) 由于以上的原因,以下仅考察节点处的导数值,为简化讨论,假定所给节点是等距的11,10 1一阶两点公式 1n 0 1 0 1 1 0 11 , ,2hf x y y f x xh , 1 1 0 2 2 0 11 , ,2hf x y y f x xh 2 一阶三点公式 2n 20 0 1 2 1 1 0 21 3 4 , ,23 hf x y y y f x xh 21 0 2 2 2 0 21 , ,26 hf x y y f x xh 22 0 1 2 3 3 0 21 4 3 , ,23 hf x y y y f x xh 利用插值
11、多项式 npx作为 fx的近似函数 , 还可建立高阶导数数值微分公式 kknf x p x 1,2,.k 我们对它不作深入讨论,但要指出的是,尽管 npx与 fx的值相差不多 , 其各阶导数的值 knpx与真值 kfx仍然可能差别很大 , 因此要注意误差分析 12 数值微分的插值型公式 , 应用难度在于步长 h 的选取 h 过大 , 截断误差变大 ; h 过小 ,舍入误差变大 因此 , 在实际计算时 , 恰当地选取步长 h 是关键 13 (三)理查森外 推法 14 理查森外推法是科学计算领域提高算法精度的重要方法 , 广泛应用于数值积分 , 有限元和偏微分方程数值解等领域 15 理查森外推法是
12、一种对低阶收敛方法进行适当的组合 , 从而产生较高阶收敛精度的一种方法 首先先引进数值微分公式: 1 2f x f x h f x hh ( 3 1) 它由泰勒定理的两种情况导出: 231 2 3 !hhf x h f x h f x f x f , ( 3 2) 23 2 2 3 !hhf x h f x h f x f x f ( 3 3) 我们现在就引入理查森外推的过程,并介绍如何利用它来巧妙地改进数值公式的精度把 ( 3 2)式和( 3 3)式扩展到具有高阶项假 设 fx用它的泰勒级数表示 为 0 1 ! kkkf x h h f xk , ( 3 4) 0 1 1! k kkkf x
13、 h h f xk ( 3 5) 如果第一个等式减去第二个等式,则消去了所有 k 是偶数的项,得 535222 3 ! 5 !f x h f x h h f x h f x h f x 重新整理得 1 2f x f x h f x hh 3 5 72 4 61 1 13 ! 5 ! 7 !h f x h f x h f x 这个等式具有形式 2 4 62 4 6L h a h a h a h ( 3 6) 其 中 L 表示 fx, h 表示数值微分公式 ( 3 1);即 12h f x h f x hh 其中 x 是指定的数值,下面设计的数值过程用于估计 L 对于 0h ,可计算函数 的值,但
14、不能计算 0h ,级数的项 2424a h a h给出了误差假设 2 0a ,可以看出当 h 充分小时,第一阶 22ah 大于其他项因此要设法消去这一占优项 22ah 我们的分析仅仅是建立在 ( 3 6)式地基础上,并且它可应用于其他数值过程 用 2h 替换 ( 3 6)式中的 h 得到 2 4 62 4 62 4 1 6 6 4L h a h a h a h ( 3 7) ( 3 6)式减去 4倍的( 3 7)式,可消去误差级数中的第一项 22ah 结果如下: 2 4 62 4 6L h a h a h a h , 2 4 62 4 646464 4 2 4 163 4 2 3 4 15 1
15、6L h a h a h a hL h h a h a h 因此我们有 4646412 4 5 1 633L h h a h a h ( 3 8) 式( 3 8)表达了理查森外推的第一步它表明 h 和 2h 的一个简单组合提供了一个计算 L 的方法 还有一种情况,对 ( 3 6)式所完成的过程现在可以用于( 3 8)式(做适当地修改)相应的做法如下:在( 3 8)式中令 41233h h h 则 4646L h b h b h , 46462 1 6 6 4L h b h b h 此时 4646L h b h b h , 4646 6616 16 2 415 16 2 3 4L h b h b
16、 hL h h b h 因而,我们有 661 6 12 2 01 5 1 5L h h b h ( 3 9) 再一次重复这个过程,在( 3 9)式中令 1 6 121 5 1 5h h h 使得 6868L h c h c h 用上述相同的方法可得 886 4 12 3 2 5 26 3 6 3L h h c h 事实上,可执行任意多步来得到不断增加精确度的公式下面是完整的算法,即允许执行 M 步的理查森外推算法: 1. 选取一个方便的 h 值(例如 1h )并且计算 1M 个数 , 0 2 nD n h 0 nM 2. 用下列公式计算 41, , 1 1 , 14 1 4 1kkkD n k
17、 D n k D n k ( 3 10) 这里 1 , 2 , , , , 1 , ,k M n k k M (四)将微分问题转化为积分问题 3 微分是积分的逆运算 , 因此可借助于数值微分来计算数值积分 设 f 是一个充分光滑的函数 , 其导数为 由积分定义有 xxf x f x t d t ( 4 1) 其中 x 为任意指定的数 设 0 0 ,1,ix x ih i n 为一组等距节点 , 并设 kky f x 在公式( 4 1)中取 11,kkx x x x 于是式( 4 1)变为 1111kkxkk xf x f x t d t 1, 2, , 1kn ( 4 2) 对上式右端的积分采
18、用不同的求积公式就得到不同的数值微分公式 ( 1)对积分采用中点公式 11322 24kkx kkx ht d t h x , 从而得到中点微分公式 211 26kkk k kf x f x hf x x fh , ( 4 3) 其中 11 1 , 2 , , 1k k kx x k n ( 2)如果对式( 4 2)中的积分采用 辛普森求积公式 , 则有 115 51143 9 0kkx k k k kx hht d t x x x f ( 4 4) 其中 1k k kxx 如果记 k 为 kfx的近似值 , 且在上式中略去高阶项 , 那么从式( 4 2)可得到辛普森数值微分公式 1111 3
19、4 kkk k k yyh 1, 2, , 1kn 三、总结部分 本文首先介绍了导数产生的背景及发展历程和方向,让大家对导数有了初步认识总体来说, 导数主要用于描述函数变化率 , 刻画函数的因变量随自变量变化的快慢程度 因此被广泛地应用于物理化学以及经济各个领域中 然后本文着重讲了几种推导 数值微分公式的常用几种方法,如差商法,插值多项式求导法,理查森外推法,以及将微分问题转化为积分问题 还归纳总结了常用的数值微分公式,如中点公式,两点公式和三点公式等此外,因为 微分是非常敏感的问题 , 数据的微小扰动会使结果产生很大的变化,所以本文对于步长的选 取以及截断误差的分析也进行了进一步的说明 随着
20、导数的被广泛应用,对于导数精确度的提高也不容忽视在将来的日子里除了继续不断寻求更简便的方法推导数值微分公式外,对于误差分析的研究也将越来越被重视 四、参考文献 1石文 微分中值定理的应用实例 J 高等函授学报 (自然科学版 ) 2009, 22(6):54-58 2Jeffery J Leader Numerical Analysis and Scientific ComputationM 影印版 北京 :清华大学出版社 , 2008 5:328 3现代应用数学手册编委会 现代应用数学手册 计算与数值分析卷 M 北京 :清华大学出版社 ,2005:245 246 4Michael T Heat
21、h Scientific Computing: An Introductory SurveyM 第 2版影印版 北京 :清华大学出版社 , 2001 10:365 5华东师范大学数学系编 数学分析 上册 M 第 3版 北京 :高等教育出版社 , 2001 6:87-101 6Curtis F Gerald, Patrick O Wheatley著 , 吕淑娟译 应用数值分析 M 北京 :机械工业出版社 ,2006 8:212-213 7方春华 双曲线方程的组合差商算法研究 J 湖南理工学院学报 (自然科学版 ) 2008 12, 21(4):7-10 8孙志忠 , 吴宏伟 , 袁慰平 , 闻震
22、初 计算方法与实习 M 南京 :东南大学出版社 , 2005 7(2009 2重印 ):93-153 9蒋长锦 科学计算和 C程序集 M 合肥 :中国科学技术大学出版社 , 1998 9:257-260 10周小清 , 邬云雯 , 戴薇 , 黄国盛 数值求导算法研究 J 吉首大学学报 (自然科学报 ) 2001 3,22(1):64-65 11封建湖 , 车刚明 , 聂玉峰 数学分析原理 M 北京 :科学出版社 , 2001 9:128 12孙志忠 , 袁慰平 , 闻震初 数值分析 M 南京 :东南大学出版社 , 2002 1:226 13李桂成 计算方法 M 北京 :电子工业出版社 , 2005 10:172-186 14David Kincaid, Ward Cheney著 , 王国荣 , 俞耀明 , 徐兆亮译 数值分析 M 第 3版 北京 :机械工业出版社 , 2005 9:376-380 15杨小远 , 周渝志 , 林柏洪 N阶导数值计算的外推算法研究 J 河南科学 2010, 28(7):762-766