1、毕业论文 开题报告 信息与计算科学 导数的数值计算方法 一、 选题的背景、意义 数学中研究导数 ,微分及其应用的部分称为微分学 ,定积分及其应用的部分称为积分学 . 微分学与积分学统称为微积分学 .微积分学是高等数学最基本 ,最重要的组成部分 ,是现代数学许多分支的基础 ,是人类认识客观世界 ,探索宇宙奥秘乃至人类自身的典型数学模型之一 . 恩格斯 (1820-1895)曾指出 :“在一切理论成就中 ,未必再有什么像 17 世纪下半叶微积分的发明那样被看作人类精神的最高胜利了” . 微积分的发展历史曲折跌宕 ,撼 人心灵 ,是培养人们正确世界观 ,科学方法论和对人们进行文化熏陶的极好素材 .积
2、分的雏形可追溯到古希腊和我国魏晋时期 , 公元前三世纪,古希腊的阿基米德在研究解决抛物弓形的面积、球和球冠面积、螺线下面积和旋转双曲体的体积的问题中,就隐含着近代积分学的思想。作为微分学基础的极限理论来说,早在古代以有比较清楚的论述。比如我国的庄周所著的庄子一书的“ 天下篇 ” 中,记有 “ 一尺之棰,日取其半,万世不竭 ” 。三国时期的刘徽在他的割圆术中提到 “ 割之弥细,所失弥小,割之又割,以至于不可割,则与圆周和体而无所失矣。 ” 这些都是朴素的、 也是很典型的极限概念。 但微分概念直至 16 世纪才应运萌生 .从 15 世纪初文艺复兴时期起 ,欧洲的工业 ,农业 ,航海事业与商贾贸易得
3、到大规模的发展 ,形成了一个新的经济时代 .而十六世纪的欧洲 ,正处在资本主义萌芽时期 ,生产力得到了很大的发展 .生产实践的发展对自然科学提出了新的课题 ,迫切要求力学 ,天文学等基础科学的发展 ,而这些学科都是深刻依赖于数学的 ,因而也推动了数学的发展 .在各类学科对数学提出的种种要求中 ,下列四类问题导致了微分学的产生 : ( 1) 研究运动的时候直接出现的,也就是求即时速度的问题 . (2) 求曲线的切线的 问题 . ( 3) 求函数的最大值和最小值问题 . ( 4) 求曲线长、曲线围成的面积、曲面围成的体积、物体的重心、一个体积相当大的物体作用于另一物体上的引力 . 这四类实际问题的
4、现实原型在数学上都可归结为函数相对于自变量变化而变化的快慢程度 ,即所谓函数的变化率问题 .导数的思想最初 ,但与导数概念直接相联系的是以下两个问题 :已知运动规律求速度和已知曲线求它的切线 .这是由英国数学家牛顿 (Newton)和德国数学家莱布尼茨 (Leibniz)分别在研究力学和几何学过程中建立起来的 1 . 导 数由于其应用的广泛性 ,为我们解决所学过的有关函数问题提供了一般性的方法 ,导数是研究函数的切线、单调性、极值与最值等问题的有力工具;运用它可以简捷地解决一些实际问题 ,导数的概念是用来研究函数在一点及其附近的局部性质的精确工具 ,而对于函数在某点附近的性质还可以应用另一种方
5、法来研究 ,就是通过最为简单的线性函数来逼近 ,这就是微分的方法 .微分学是数学分析的重要组成部分 ,微分中值定理作为微分学的核心 ,是沟通导数和函数值之间的桥梁 ,Rolle 中值定理 ,Lagrange 中值定理 ,Cauchy 中值定理 ,Taylor 公式是 微分学的基本定理 ,统称为微分学的中值定理 ,这四个定理作为微分学的基本定理 , 是研究函数形态的有力工具 2 .在微分学中 ,函数的导数是通过极限定义的 ,但当函数用表格给出时 ,就不可用定义来求其导数 ,只能用近似方法求数值导数 .最简单的数值微分公式是用差商近似地代替微商 ,常见的有 f x h f xfx h , f x
6、f x hfx h , 2f x h f x hfx h 5 . 需要注意的是微分是非常敏感的问题 ,数据的微小扰动会使结果产生很大的变化 4 . 几乎与微分同时产生的 微分方程是近代数学的一个十分重要的学科分支 .随着现代社会的发展,无论是在工程、宇航等自然科学领域,还是在经济、金融等社会科学领域,微分方程都有着十分广泛地应用 .尤其是在经济和金融研究领域,微分方程及其应用似乎已经是不可或缺 .关于金融衍生产品定价的 Black-Scholes 方程便是一个典型的例子,在金融界这个方程几乎人所皆知,耳熟能详 .另外,微分方程在保险领域的 应用也在逐渐深入 .不难预见,微分方程理论及其应用今后
7、仍将在自然科学和社会经济的各个领域中发挥重要的作用 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 相比较,从上图可以
8、看出,一般地说以 BC 的斜率更接近于切线 AT 的斜率 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 . 所以截断误差
9、24 50 0 0 3 ! 5!hhf x D h f x f x . ( 1.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 应用插值原理 ,可以建立插值多项
10、式 npx作为 fx的近似 .由于多项式的求导比较容易 ,因此可以取 npx的值作为 fx的近似值 ,这样建立的数值公式 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 上的导数值,此时(
11、2.2)右端的第 2 项由于 1 0nkWx 而变为零,这时 npx的截断误差为 11 1!nk 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
12、 f x xh . 22 0 1 2 3 3 0 21 4 3 , ,23 hf x y y y f x xh . 利用插值多项式 npx作为 fx的近似函数 ,还可建立高阶导数数值微分公式 kknf x p x 1,2,.k 我们对它不作深入讨论,但要指出的是,尽管 npx与 fx的值相差不多 ,其各阶导数的值 knpx与真值 kfx仍然可能差别很大 ,因此要注意误差 分析 12 . 数值微分的插值型公式 ,应用难度在于步长 h 的选取 .h 过大 ,截断误差变大 ;h 过小 ,舍入误差变大 .因此 ,在实际计算时 ,恰当地选取步长 h 是关键 13 . (三)理查森外推法 14 理查森外推
13、法 是科学计算领域提高算法精度的重要方法 ,广泛应用于数值积分 ,有限元和偏微分方程数值解等领域 15 . 理查森外推法是一种对低阶收敛方法进行适当的组合 ,从而产生较高阶收敛精度的一种方法 . 首先先引进数值微分公式: 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) 232 2 3 !hhf x h f x h f x f x f . ( 3.3) 我们现在就引入理查森外推的过程,并介绍如何利用它来巧妙地改进数值公式的精度 .把 ( 3.2)式和( 3.3)式扩展到具有
14、高阶项 .假 设 fx用它的泰勒级数表示 为 0 1 ! kkkf x h h f xk , ( 3.4) 0 1 1! k kkkf x 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 表 示数值微
15、分公式 ( 3.1);即 12h f x h f x hh . 其中 x 是指定的数值,下面设计的数值过程用于估计 L .对于 0h ,可计算函数 的值,但不能计算 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)式,可消去误
16、差级数中的第一项 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 16L 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 . 则 4
17、646L 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 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 . 事实上,可执行任意多步来得到不断增加精确度的公式 .下面是完整
18、的算法,即允许执行 M 步的理查森外推算法: 1. 选取一个方便的 h 值(例如 1h )并且计算 1M 个数 , 0 2 nD n h 0 nM 2. 用下列公式计算 41, , 1 1 , 14 1 4 1kkkD n k 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 . ( 2.4.1) 其中 x 为任意指定的数 .设 0 0 ,1,ix
19、 x ih i n 为一组等距节点 ,并设 kky f x .在公式( 2.4.1)中取 11,kkx x x x 于是式 )1.4.2( 变为 1111kkxkk xf x f x t d t 1, 2, , 1kn ( 2.4.2) 对上式右端的积分采用 不同的求积公式就得到不同的数值微分公式 . ( 1)对积分采用中点公式 11322 24kkx kkx ht d t h x , 从而得到中点微分公式 211 26kkk k kf x f x hf x x fh , ( 2.4.3) 其中 11 1 , 2 , , 1k k kx x k n . ( 2)如果对式( 2.4.2)中的积分
20、采用辛普森求积公式 ,则有 115 51143 9 0kkx k k k kx hht d t x x x f ( 2.4.4) 其中 1k k kxx . 如果记 k 为 kfx的近似值 ,且在上式中略去高阶项 ,那么从式( 2.4.2)可得到辛普森数值微分公式 1111 34 kkk k k yyh 1, 2, , 1kn (五)关于求导在 Matlab 环境中的编程实现: Matlab 是数学、自然科学和工程学的标 准指导语言 .它有一个由许多实现特殊应用任务的功能集所组成的工具箱 .对于我们的目的而言,我们只需要使用一般的 Matlab 功能集 . 本文将使用 Matlab 通过实例实
21、现求导 . (六)拟解决的主要问题: 1.有关于数值微分的推导与应用; 2.将数值微分的算法在 Matlab 环境中编程实现 . 三、 研究的方法与技术路线、研究难点,预期达到的目标 1.研究方法及技术路线 本论文主要以查找资料、参考文献,以学过的相关知识,在前人的研究论述基础上,应用导数的数值计算的基本方法来解决基本问题,并用来优化社会中的常见问 题 .采取了从大量阅读已有的数据资料 然后对这些内容进行归纳总结 最后运用相关知识来求解及应用的技术路线 . 2.研究难点 ( 1)由于论题比较宽泛,很难有对一点或一面进行深入研究; ( 2)关于数值微分计算的方法有很多种,本文讲述基本的方法;它的应用领域也很广泛,本文只论述常见的方面 . 3.预期达到的目标 通过这次论文的撰写更好的了解了有关导数理论的发展历程,深入的认识了导数微分问题,更好的掌握了解关于导数的数值计算方法问题的方法,同时了解如何借用其他数值计算方法和 MATLAB 软件来解决此类问题,并会应用此理论来 解决社会中常见的优化问题,同时还可以结合其他知识来综合解决这类问题 .除此,对数值微分理论的掌握,还能更好的学习其他相关理论,能更容易的更好的解决这类问题 .也掌握参考文献资料查找方法和论文写作的基本要求和方法,培养自己利用所学知识分析和解决问题的能力,从而达到对所学知识融会贯通的能力 .