当前位置:文档之家› 郑州大学研究生课程数值分析复习---第八章 常微分方程数值解法

郑州大学研究生课程数值分析复习---第八章 常微分方程数值解法

郑州大学研究生课程(2012-2013学年第一学期)数值分析Numerical Analysis习题课第八章常微分方程数值解法待求解的问题:一阶常微分方程的初值问题/* Initial-Value Problem */:⎪⎩⎪⎨⎧=∈=0)(],[),(y a y b a x y x f dx dy 解的存在唯一性(“常微分方程”理论):只要f (x , y ) 在[a , b ] ×R 1 上连续,且关于y 满足Lipschitz 条件,即存在与x , y 无关的常数L 使对任意定义在[a , b ] 上的y 1(x ) 和y 2(x ) 都成立,则上述IVP 存在唯一解。

1212|(,)(,)|||f x y f x y L y y −≤−一、要点回顾§8.2 欧拉(Euler)法通常取(常数),则Euler 法的计算格式h h x x i i i ==−+1⎩⎨⎧=+=+)(),(001x y y y x hf y y i i i i i =0,1,…,n ( 8.2 )§8.2 欧拉(Euler)法(1) 用差商近似导数))(,()()()()(1n n n n n n x y x hf x y x y h x y x y +=′+≈+⎩⎨⎧=+=+)(),(01a y y y x hf y y n n n n 差分方程初值问题向前Euler 方法h x y x y x y n n n )()()(1−≈′+))(,()()(1n n n n x y x f hx y x y ≈−+))(,()(n n n x y x f x y =′§8.2 欧拉(Euler)法若用向后差商近似导数,即))(,()()(111++++≈n n n n x y x hf x y x y ⎩⎨⎧=+=+++)(),(0111a y y y x hf y y n n n n hx y x y x y n n n )()()(11−≈′++向后Euler 方法))(,()()(111+++≈−n n n n x y x f h x y x y ))(,()(111+++=′n n n x y x f x y§8.2 欧拉(Euler)法(2)用数值积分方法∫+=−+1))(,()()(1n n x x n n dxx y x f x y x y ∫∫++=′11))(,()(n n n n x x x x dx x y x f dx x y 1111(,)(,()), (,)(,()),()()n n n n n n n n f x y f x y x f x y f x y x y x y y x y ++++≈≈≈≈分别用左矩形和右矩形公式,即代替上式右端的积分,并注意 ,分别得到1111(,)(,)n n n n n n n n y y h f x y y y h f x y ++++=+=+,。

向前欧拉公式和向后欧拉公式:§8.2 欧拉(Euler)法若对积分用梯形公式,则得[]))(,())(,(2)()(111++++≈−n n n n n n x y x f x y x f h x y x y []⎪⎩⎪⎨⎧=++≈+++)(),(),(20111a y y y x f y x f h y y n n n n n n 梯形欧拉公式§8.2 欧拉(Euler)法欧拉方法的收敛性11212 ()Taylor , (,),()()()()()2()(,())() (1)2n n n n n n n n n n n n n n y x x x x h y x y x h y x hy x y h y x hf x y x y ξξξ+++∃∈′′′=+=++′′=++将在点展开%1(),(8.2) () (,()) (2)n n n nn y x y y x h f x y x ++ 假定已知准确值 利用欧拉公式,定义§8.2 欧拉(Euler)法局部截断误差%()11112() ()()(,()) (). 2n n n n n n n n T y x y y x y x hf x y x h y ξ++++=−=−+′′=2221 max |()|,|||()|(). 22a x bn n M y x h h T y M O h ξ≤≤+′′=′′=≤=令则称为局部截断误差§8.2 欧拉(Euler)法欧拉方法的收敛性定义若给定方法的局部截断误差满足则称该方法是P 阶的,或称为具有P 阶精度。

11||(),p n T O h ++=§8.2 欧拉(Euler)法整体截断误差111().n n n e y x y +++=−记112121112 ,,(), (),, () ,(),,,.n n n n n n y y y y y x y x y x y x e y y y +++L L L 因为计算 时用到的,,是 的近似值每步产生的误差会累积到计算的误差中因此 与 ,, 都有关称整体截断误差为%%%1111111111|||()||()||| ||||. (3)n n n n n n n n n n e y x y y x y y y T y y ++++++++++=−≤−+−≤+−§8.2 欧拉(Euler)法欧拉方法的收敛性%%()1111,(8.2)|||()(,())(,)| |() ||(,())(,)| |() ||() | () (1)n n n n n n n n n n n n n n n n n n n n y y y y y x h f x y x y h f x y y x y h f x y x f x y y x y hL y x y hL ++++−=+−+≤−+−≤−+−≤+对应用欧拉公式得李普希兹条件||. (4)n e由此知,当max ||,(4)(3)k kT T =记 将代入得[]1121210112||(1)||(1)(1)|| (1)(1)|| (1)(1)(1) (1)||(1)1(1)1()(1)1 (n n n n nn n n e T hL e T hL T hL e T hL T hL e T hL T hL T hL T hL e hL hL T O h hL hLO +−−+++≤++≤++++≤++++≤≤++++++++++−+−≤=+−≤L L ).h 10,||0, n h e +→→欧拉公式是一阶有收敛的。

§8.2 欧拉(Euler)法向后欧拉公式#隐式欧拉法或向后欧拉法#/* implicit Euler method or backward Euler method*/11()()()n n n y x y x y x h++−′≈x n +1点向后差商近似导数111111()()()()()(,)n n n n n n n n n n y x y x hy x y x y y x y y h f x y ++++++′≈+↑≈≈=+代入隐式或后退欧拉公式§8.2 欧拉(Euler)法向后欧拉公式由于未知数y n +1同时出现在等式的两边,故称为隐式/* implicit */欧拉公式,而前者称为显式/* explicit */ 欧拉公式。

隐式公式不能直接求解,一般需要用Euler 显式公式得到初值,然后用Euler 隐式公式迭代求解。

因此隐式公式较显式公式计算复杂,但稳定性好(后面分析)。

隐式欧拉公式中的未知数y n +1可通过以下迭代法求解:0)1(1)()111(,)(,)n n n n k k n n n n y y h f x y yy h f x y +++++⎧=+⎨=+⎩(§8.2 欧拉(Euler)法向后欧拉公式1(,) 0,1,...n n n n y y h f x y n +=+=比较欧拉显式公式和隐式公式及其局部截断误差231112()()()h n n n n T y x y y x O h +++′′=−=+%显式公式111(,)n n n n y y h f x y +++=+隐式公式231112()()()h n n n n T y x y y x O h +++′′=−=−+%若将这两种方法进行算术平均,即可消除误差的主要部分/*leading term*/而获得更高的精度,称为梯形法#梯形公式/* trapezoid formula */—显、隐式两种算法的平均111[(,)(,)]2n n n n n n hy y f x y f x y +++=++R y xyO h+++=−=例8.2.3对初值问题⎩⎨⎧==+′1)0(0y y y 证明用梯形公式求得的近似解为nn h h y ⎟⎠⎞⎜⎝⎛+2−2=并证明当步长h →0时,y n 收敛于精确解证明: 解初值问题的梯形公式为xe−)],(),([1+1+1++2+=n n n n n n y x f y x f hy y y y x f −=),(∵][211++−−+=n n n n y y hy y ∴整理成显式n n y h h y ⎟⎠⎞⎜⎝⎛+2−2=1+反复迭代,得到1+2−31−21+⎟⎠⎞⎜⎝⎛+2−2==⎟⎠⎞⎜⎝⎛+2−2=⎟⎠⎞⎜⎝⎛+2−2=⎟⎠⎞⎜⎝⎛+2−2=y h h y h h y h h y h h y n n n n n ...10=y 22nxnh y e h −−⎛⎞=→⎜⎟+⎝⎠∵∴梯形公式单步好隐1阶欧拉隐式公式单步差显1阶欧拉显式公式步数稳定性显隐精度局部截断误差公式()3(3)3nhy x()2(2)2nhy x()2(2)2nhy x−欧拉法小结单步好隐2阶§8.3 改进欧拉(Euler)方法先用欧拉公式(8.2)求出一个初步的近似值,称为预测值, 它的精度不高, 再用梯形公式对它校正一次,即迭代一次,求得y n+1,称为校正值, 这种预测-校正方法称为改进的欧拉公式:1n y +[]⎪⎩⎪⎨⎧++=+=++++校正预测 ),(),(2),(1111n n n n n n n n n n y x f y x f hy y y x hf y y 称为Euler 公式与梯形公式的预测—校正系统。

predictor corrector),(1iiiiyxhfyy+=+[]),(),(2111+++iiiiyxfyxf[]),(),(211 1++ +++=iiiiiiyxfyxfhyy§8.3 改进欧拉(Euler)方法可以证明,改进的欧拉公式的精度为二阶。

相关主题