上海交通大学计算方法课件宋宝瑞CH8
第八章第八章常微分方程初值问题的数值解法常微分方程初值问题的数值解法 dy f (x, y)x[x 0 ,b] ((1 1))dx y(x0) y0 ((1 1)的解:解析解)的解:解析解函数函数 y y(x), dy f (x, y(x))x[x 0 ,x N ]y(x) xx y 0 0 dx 常微分方程课程中讨论了(常微分方程课程中讨论了(1 1)的解的存在性,唯一性条件)的解的存在性,唯一性条件 例如例如f (x, y)C[x0,b;,],且,且f (x, y)满足对满足对y的的 LipchitzLipchitz 条件:条件: f (x, y 1) f (x, y2 ) L y 1 y 2 x[x 0 ,x n ] 则(则(1 1)的解存在,唯一)的解存在,唯一 以后我们总设以后我们总设f (x, y)LipL(y) 解析解不易求得,或太复杂。实际问题中归结出的方程主要用数值解,解析解不易求得,或太复杂。实际问题中归结出的方程主要用数值解, 即求即求y y(x)在一系列离散点上的近似值,这些点是在一系列离散点上的近似值,这些点是 x 0 , x 1 x 0 h 1, , xn x n1 h n 诸诸hi可以不同,为方便计算,设可以不同,为方便计算,设h i h,i 1,2, 方法:方法: ⊙据常微分方程理论,已知⊙据常微分方程理论,已知y(xk) yk,则(,则(1 1)在)在[xk,b]上的解满足上的解满足 y f (x, y) y(x ) y k k 1 提示我们从提示我们从x 0 出发,一步一步向前跨,得到出发,一步一步向前跨,得到y i y(x i ), i 0,1,,n 初值问题:初值问题: TaylorTaylor展式法展式法( (数值积分法数值积分法) ) EulerEuler 折线法折线法 分点分点 x k x 0 khk 0,1,2,.,nh b x 0 n 给定(给定(1 1)) ,在,在x x k 处将处将y(x)展成展成 TaylorTaylor展式展式 y(x k1) y(xk ) y(x k )h 2 1 y()h2 2 一般一般h很小,略去很小,略去h项,得:项,得: y 1 y 0 hf (x 0 , y 0 ) y 2 y 1 hf (x 1, y1) 一般地,一般地,yk yk1hf (xk1, yk1) k 1,2,, n y(x) (x) y k (x x k ) f (x k , y k )x[x k ,x k1] 分段线性函分段线性函 数(数(EulerEuler 折线法名称的由来)折线法名称的由来) 如果如果yk y(xk)(没有误差)(没有误差) y k1 用用 EulerEuler 折线法求得折线法求得 h2 y() :T k1 局部截断误差局部截断误差则则y(xk1) yk1 2 h2 T k1 y(x k )o(h2) 2 主项 EulerEuler 折线法算法简单,自开始,但精度差折线法算法简单,自开始,但精度差(P.281(P.281,表,表 9-1)9-1),几乎不单独,几乎不单独 2 用。用。 向后的向后的 EulerEuler 公式:公式: y k1 y k hf (x k1, yk1) h2h2 TaylorTaylor展开可得,展开可得,T k1 2 y(), , 主项主项 2 y(x k ) 隐式,隐式,y k1 可迭代求解,精度也不高。可迭代求解,精度也不高。 梯形公式(梯形公式(向前、向后向前、向后 EulerEuler 法,取算术平均)法,取算术平均) yy h k1 k 2 [ f (x k , y k ) f (x k1, yk1)] ○○ 1 1 平均斜率平均斜率○○ 2 2 消去截断误差中的消去截断误差中的h2项。提高精度项。提高精度T 3 k1 O(h ) 隐式,迭代方法隐式,迭代方法 y(0) k1 y k hf (x k , y k ) y(n1) h (n) k1 y k 2 [ f (x k , y k ) f (x k1, yk1)] 迭代有限步,或迭代至收敛(收敛吗?下证)迭代有限步,或迭代至收敛(收敛吗?下证) (2)-(3)(2)-(3) y (n1) h k1 y k1 2 [ f (x (n) k1, yk1) f (xk1, yk1)] LipchitzLipchitz 条件条件 y (n) hL k1 y k1 2 y (n1) k1 y k1 当当h充分小,即充分小,即 hL 2 1时,方法收敛,缺点迭代次数无法控制。 时,方法收敛,缺点迭代次数无法控制。 如果只迭代一次,得到改进的如果只迭代一次,得到改进的 EulerEuler 公式公式 (2) (3) 3 y k1 y k hf (x k , y k )T k1 O(h2) y h 3 k1 y k 2 [ f (x k , y k ) f (x k1, yk1)] T k1 O(h ) 预估预估——校正法校正法 y k f (x k , y k ) y k1 y k1 2 预估 hf (x k , y k ) y T k1 O(h3) k1 f (x k1, yk1) h 校正 yk1 y k 2 (y k1 y 3 k )T k1 O(h ) y k1 y k hy k h2 2 y k O(h3) 2 说明:说明:)y h O(h3) k1 y k hy k 2 y k y k1 y k1 2hf (x k , y k )O(h3) T k1 O(h3) 优点:优点: 预估与校正精度相同;不需迭代,精度较高。预估与校正精度相同;不需迭代,精度较高。 问题:问题: 已知已知y0, y1才可起步,要用其它方法做“表头”才可起步,要用其它方法做“表头” EulerEuler 法的整体误差法的整体误差 e n y(x n ) y n ,,受第受第 1 1,,2 2,,…………第第n步截断误差的影响步截断误差的影响 记记yn y(xn1)hf (xn1, y(xn1)),则,则 4 e n y(x n ) y n n y n y n y(x n ) y T n y(x n1)hf (xn1, y(xn1)) yn1 hf (x n1, yn1) T n y(x n1) yn1 h f (x n1, y(xn1)) f (xn1, yn1) T n (1hL) e n1 反复应用上式