实验五常微分方程初值问题数值解幻灯片.ppt
实验五常微分方程初值问题数值解第1页,共22页,编辑于2022年,星期五一、基本概念与结论一、基本概念与结论1 1常微分初值问题常微分初值问题常微分方程特解问题称为初值问题,通常其形式为常微分方程特解问题称为初值问题,通常其形式为2 2常微分初值问题数值解常微分初值问题数值解常微分方程初值问题的解在上的有限常微分方程初值问题的解在上的有限个值个值 的近似值的近似值 称为常微分方程初值问题数称为常微分方程初值问题数值解,其中值解,其中 称为节点,称为节点,称为步长。通常步长取等距步长称为步长。通常步长取等距步长 ,其中其中 为区间为区间 的分割数。的分割数。第2页,共22页,编辑于2022年,星期五3 3单步法单步法4 4多步法多步法在计算在计算 时只用到时只用到 的方法,其计算公式为的方法,其计算公式为显式单步计算公式显式单步计算公式隐式单步计算公式隐式单步计算公式式中函数为连续函数,称为增量函数。式中函数为连续函数,称为增量函数。在计算在计算 时不仅用到时不仅用到 ,还要用到还要用到 的方法,一般的方法,一般 步方法要用到步方法要用到 ,多步多步法也有显式方法和隐式方法之分。法也有显式方法和隐式方法之分。第3页,共22页,编辑于2022年,星期五5 5数值解法的局部截断误差数值解法的局部截断误差6 6数值解法的阶数值解法的阶为该数值方法的局部截断误差。为该数值方法的局部截断误差。假设某常微分方程初值问题数值解法在没假设某常微分方程初值问题数值解法在没有误差,即,称有误差,即,称显式单步法局部截断误差为显式单步法局部截断误差为某常微分方程初值问题数值解的局部截断误差为某常微分方程初值问题数值解的局部截断误差为则称该数值解法的阶为则称该数值解法的阶为 。第4页,共22页,编辑于2022年,星期五二、二、Euler折线法折线法Euler折线法是最简单的求常微分方程数值解的折线法是最简单的求常微分方程数值解的法方。此方法精度不高,实用中较少使用。此方法常法方。此方法精度不高,实用中较少使用。此方法常用来说明求常微分方程数值解所涉及到的一些问题。用来说明求常微分方程数值解所涉及到的一些问题。1 1Euler折线法的构造过程之一折线法的构造过程之一设充分光滑,将在点作设充分光滑,将在点作泰勒展开,得:泰勒展开,得:取其关于的线性部分,有取其关于的线性部分,有第5页,共22页,编辑于2022年,星期五注意到注意到 ,用,用 代替代替 ,并将,并将约等号换为等号,得到约等号换为等号,得到Euler公式公式Euler折线法折线法是单步显式方法。其截断误差是单步显式方法。其截断误差因此,因此,Euler折线法是一阶方法。折线法是一阶方法。由初始条件由初始条件 ,借助,借助Euler公式就可依公式就可依次计算出微分方程初值问题的数值解法,此方法次计算出微分方程初值问题的数值解法,此方法称为称为Euler折线法。折线法。第6页,共22页,编辑于2022年,星期五将微分方程的初值问题将微分方程的初值问题2 2Euler折线法的构造过程之二折线法的构造过程之二记记 ,从而从而 ,则有则有化成一个代数方程化成一个代数方程(差分方程差分方程),),主要步骤是用插商主要步骤是用插商 代替微商代替微商 ,于是于是第7页,共22页,编辑于2022年,星期五3 3Euler折线法的构造过程之三折线法的构造过程之三假设及其对的偏导数假设及其对的偏导数 在包含点在包含点 的的某一邻域内某一邻域内 上连续且有界,由牛顿莱布尼兹公式上连续且有界,由牛顿莱布尼兹公式有有取不同的取不同的 ,用不同的近似函数代替用不同的近似函数代替 可可得到不同的数值解法。得到不同的数值解法。在上式中,取在上式中,取 ,而积分用矩形公式,则有,而积分用矩形公式,则有左矩形公式:左矩形公式:显式显式Euler折线法折线法右矩形公式:右矩形公式:隐式隐式Euler折线法折线法第8页,共22页,编辑于2022年,星期五对于显式对于显式Euler折线法:折线法:误差分析:由泰勒公式误差分析:由泰勒公式显式显式Euler折线法是一阶方法。折线法是一阶方法。对于隐式对于隐式Euler折线法:折线法:可见,隐式可见,隐式Euler折线法也是一阶方法。折线法也是一阶方法。及及第9页,共22页,编辑于2022年,星期五4 4Euler折线法的算法折线法的算法 (1)(1)输入函数输入函数 ,初值初值 ,变量区间端点变量区间端点 及步长及步长 ;(2)(2)计算节点数计算节点数 和节点和节点 ;(3)(3)用用Euler公式公式 求数值解。求数值解。例例1 1用用Euler折线法求初值问题折线法求初值问题的数值解,步长,并在同一坐标系中画出的数值解,步长,并在同一坐标系中画出数值解与准确解的图形。数值解与准确解的图形。5.5.例题与实验例题与实验第10页,共22页,编辑于2022年,星期五三、改进的三、改进的Euler方法方法在上述公式中,对积分用梯形公式,有:在上述公式中,对积分用梯形公式,有:可得求微分方程初值问题数值解的梯形公式:可得求微分方程初值问题数值解的梯形公式:误差分析:由前误差分析:由前 可知可知于是有于是有可见,上述公式是单步隐式公式,且为二阶方法。可见,上述公式是单步隐式公式,且为二阶方法。1 1改进的改进的Euler方法的构造过程方法的构造过程第11页,共22页,编辑于2022年,星期五上述方法比上述方法比Euler折线法阶数高,但是在给定初始折线法阶数高,但是在给定初始条件条件 后要求出数值解,每一次计算后要求出数值解,每一次计算 的值的值都要进行非线性方程求根的迭代解法来完成,因此都要进行非线性方程求根的迭代解法来完成,因此计算量大。计算量大。为了减少计算量,通常采用先用为了减少计算量,通常采用先用Euler公式进行一公式进行一次预测,然后再用梯形公式进行校正,从而得到下一次预测,然后再用梯形公式进行校正,从而得到下一步的值,其计算格式为步的值,其计算格式为此方法称为此方法称为Euler予估予估-校正法。校正法。第12页,共22页,编辑于2022年,星期五2Euler予估予估-校正校正法的算法法的算法 (1)(1)输入函数输入函数 ,初值初值 ,变量区间端点变量区间端点 及步长及步长 ;(2)(2)计算节点数计算节点数 和节点和节点 ;(3)(3)用改进的用改进的Euler公式求数值解。公式求数值解。3 3例题与实验例题与实验例例2 2用用Euler予估予估-校正法求初值问题校正法求初值问题的数值解,取步长和计算,并与准的数值解,取步长和计算,并与准确解进行比较。确解进行比较。第13页,共22页,编辑于2022年,星期五四、四、Runge-Kutta法法1 1Runge-Kutta法的构造过程法的构造过程在公式在公式 中中,仍取仍取 ,而积分利用积分中值定理,有:而积分利用积分中值定理,有:为增加求解精度,把写成一个线性组合为增加求解精度,把写成一个线性组合的形式并用代替的形式并用代替 ,就得到就得到Runge-kutta方法的一般形式方法的一般形式上式若选择不同的上式若选择不同的 值,就得到不同形式的值,就得到不同形式的Runge-kutta计算公式。计算公式。第14页,共22页,编辑于2022年,星期五通常为方便获得通常为方便获得Runge-Kutta计算公式,常把计算公式,常把Runge-Kutta方法的一般形式写为:方法的一般形式写为:利用二元泰勒展开将公式中的在利用二元泰勒展开将公式中的在 展开并适展开并适当的选择参数,就可以得到具体的当的选择参数,就可以得到具体的Runge-Kutta计算公式。计算公式。第15页,共22页,编辑于2022年,星期五它的增量函数为它的增量函数为时二阶时二阶Runge-Kutta计算公式为计算公式为它的局部截断误差为它的局部截断误差为第16页,共22页,编辑于2022年,星期五这是这是4 4个参数个参数3 3个方程的方程组,其解有无穷多个。个方程的方程组,其解有无穷多个。例如可取例如可取 ,可以得到,可以得到 。于是得到一个于是得到一个 的二阶计算公式的二阶计算公式它被称为中点公式。它被称为中点公式。利用利用 在在 作二元作二元泰勒展开,其阶数为泰勒展开,其阶数为2 2阶,则有阶,则有第17页,共22页,编辑于2022年,星期五经典的经典的Runge-Kutta法是四阶的,其形式为法是四阶的,其形式为Euler折线法实为一阶折线法实为一阶Runge-Kutta法。法。第18页,共22页,编辑于2022年,星期五2四阶四阶Runge-kutta法的算法法的算法 (1)(1)输入函数输入函数 ,初值初值 ,变量区间端点变量区间端点 及步长及步长 ;(2)(2)计算节点数计算节点数 和节点和节点 ;(3)(3)用四阶用四阶Runge-kutta公式求数值解。公式求数值解。3 3例题与实验例题与实验例例3 3用经典用经典Runge-kutta求初值问题求初值问题的数值解,分别取步长的数值解,分别取步长 和计算和计算,并与准确解在并与准确解在 处进行比较。处进行比较。第19页,共22页,编辑于2022年,星期五练习题练习题1 1用用Euler折线法求初值问题折线法求初值问题的数值解,步长,并在同一坐标系中画出的数值解,步长,并在同一坐标系中画出数值解与准确解的图形。数值解与准确解的图形。2 2用用Euler折线法求初值问题折线法求初值问题的数值解,取步长和计算,并与准的数值解,取步长和计算,并与准确解进行比较。确解进行比较。第20页,共22页,编辑于2022年,星期五4 4用用Euler予估予估-校正法求初值问题校正法求初值问题的数值解,取步长和计算,并与准的数值解,取步长和计算,并与准确解进行比较。确解进行比较。3 3用用Euler予估予估-校正法求初值问题校正法求初值问题的数值解,取步长计算。的数值解,取步长计算。第21页,共22页,编辑于2022年,星期五5 5用四阶用四阶RangeKutta法求解初值问题法求解初值问题的数值解,取步长计算。的数值解,取步长计算。6 6用经典用经典RangeKutta法求解初值问题法求解初值问题的数值解,分别取步长和的数值解,分别取步长和 计算。计算。第22页,共22页,编辑于2022年,星期五