第6章 常微分方程数值解法
第6章 常微分方程数值解法
绪论 在工程和科学计算中,所建立的各 种常微分方程的初值或边值问题,除很 少几类的特殊方程能给出解析解,绝大 多数的方程是很难甚至不可能给出解析 解的,其主要原因在于积分工具的局限 性。因此,人们转向用数值方法去解常 微分方程,并获得相当大的成功,讨论 和研究常微分方程的数值解法是有重要 意义的
绪论 在工程和科学计算中,所建立的各 种常微分方程的初值或边值问题,除很 少几类的特殊方程能给出解析解,绝大 多数的方程是很难甚至不可能给出解析 解的,其主要原因在于积分工具的局限 性。因此,人们转向用数值方法去解常 微分方程,并获得相当大的成功,讨论 和研究常微分方程的数值解法是有重要 意义的
6.1初值问题的Euer方法 设一阶常微分方程初值问题 dv y(o) 记xn=a+mh(m=0,1,2,)h>0为步长,一般总 假定为常数。该式的数值解是指通过某种方法 去获得解y(x)在点xn上的近似值yn,即 y(xn) (n=0,32,)
6.1 初值问题的Euler方法 ( ) ( 0,1,2,...) ( ) , ( 0,1,2,...), 0 ( ) ( , ) 0 0 = = + = = = y x y n y x x y x a nh n h y x y f x y dx dy n n n n n 去获得解 在点 上的近似值 即 假定为常数。该式的数值解是指通过某种方法 记 为步长,一般总 设一阶常微分方程初值问题
初值问题的 Euler方法 为实现这一目标, Euler方法首先将微分算子离 散化,并用x代替x2于是该式可离散为: y(xn+h)-y(n) n≈f(xn,y(xn) 以y表示y(xn)的近似值,则有 yn=yn+hf(xn2yn)(n=0,1,2,)(1) 这就是显式的 Euler公式,它可以从y出发,逐次 算出y,y2,y3
初值问题的Euler方法 算出 。 这就是显式的 公式,它可以从 出发,逐次 ( ) 以 表示 的近似值,则有 散化,并用 代替 于是该式可离散为: 为实现这一目标, 方法首先将微分算子离 , , ... `Euler ( , ) 0,1,2,... (1) ( ) ( , ( )) ( ) ( ) , Euler 1 2 3 0 1 0 y y y y y y hf x y n y y x f x y x h y x h y x x x n n n n n n n n n n n = + = + − +
初值问题的 Euler方法 如果用xn代替x,于是该式可离散为: y(xn+h)-y(≈∫(xy(xn,) 以y表示y(xn)的近似值,则有 yn+I=yn+ hf(x n+15yn+1 )(n=0,2,)(2) 这就是隐式的Euer公式或向后Euer方法,它与显式 的不同在于,它每算一步要解函数方程(2)才能得到 n+1°
初值问题的Euler方法 。 的不同在于,它每算一步要解函数方程 才能得到 这就是隐式的 公式或向后 方法,它与显式 ( ) 以 表示 的近似值,则有 如果用 代替 于是该式可离散为: 1 1 1 1 1 1 1 0 (2) `Euler Euler ( , ) 0,1,2,... (2) ( ) ( , ( )) ( ) ( ) , + + + + + + + = + = + − n n n n n n n n n n n n y y y hf x y n y y x f x y x h y x h y x x x
初值问题的 Euler方法 如果取以上两式的算术平均值的结果,则得 n=yn+[f(x,y)+f(xn+1y+1)(n=01,2 称为梯形公式。 计算y时常用以下迭代式: ym=yn+ hf(n, yn) yH1=yn+[f(xn,yn)+(xm)(k=012(3) (k+1) h+1 E时取 k+1) n+1
初值问题的Euler方法 ( 1) 1 1 ( 1) ( ) 1 ( ) 1 1 ( 1) 1 (0) 1 1 1 1 | | , 3 [ ( , ) ( , )] 0,1,2,... 2 ( , ) [ ( , ) ( , )] 0,1,2,... 2 + + + + + + + + + + + + + − = + + = = + = + + = k n n k n k n k n n n n n k n n n n n n n n n n n n y y y y f x y f x y k h y y y y hf x y y f x y f x y n h y y 当 时 取 ( ) ( ) 计算 时常用以下迭代式: 称为梯形公式。 ( ) 如果取以上两式的算术平均值的结果,则得
初值问题的 Euler方法 定理61.1设函数f(x,y)对变量y满足 Lipschi 条件,L为ch常数。如果步长满足0M∠, 2 即h<时,则由(3)产生的序列{y6}(k=0,1,2 L 收敛
初值问题的Euler方法 收敛。 即 时,则由( )产生的序列 条件, 为 常数。如果步长 满足 定理 设函数 对变量 满足 3 { } ( 0,1,2...) 2 1, 2 Lipschitz 0 6.1.1 ( , ) y Lipschitz ( ) 1 = + y k L h hL L h f x y k n
初值问题的 Euler方法 证明:由式(2)和(3)有 (k+1) |f(xn+1,yn+1)-f( (k) n+1 n+1 n+1,vn+ hL 21m-y( k+1 由假设知:历nhy4+=0,故有impk+=yn1 k n+1
初值问题的Euler方法 由假设知 故有 。 证明:由式( )和( )有 1 ( 1) 1 1 (0) 1 1 1 ( ) 1 1 ( ) 1 1 1 1 (k 1 ) n 1 n 1 ) 0 , lim 2 : lim ( ) | | 2 ( ...... | | 2 | ( , ) ( , )| 2 | y y | 2 3 + + + → + → + + + + + + + + + + + + = = − − − = − n k n k k k n n k k n n k n n n n y y hL y y hL y y hL f x y f x y h
初值问题的 Euler方法 对于(2)计算yn,由于迭代工作量较大,一般只 迭代一次,构成一类预估一校正算法,即 (P) +1 hf(n,yn) yn=y,+lf(n, yn)+f(xn+l,yIp)) 并取yn1=ye
初值问题的Euler方法 并取 。 迭代一次 构成一类预估 校正算法 即 对于 计算 由于迭代工作量较大 一般只 (c) 1 1 ( ) 1 1 ( ) ` ( ) 1 1 [ ( , ) ( , )] 2 ( , ) , , (2) , , + + + + + + + = = + + = + − n n p n n n n n c n n n n p n n y y f x y f x y h y y y y hf x y y
初值问题的 Euler方法 上式还常写成 yn=yn+f(k,+k2) k =hf(n, yn) k2=hf(xn+h,yn+k1)(n=0,2,) 该式称为改进 Euler方法,亦可写成 yn=yn+[f(xn+yn)+f(n+l, yn+hf(xn, yn))
初值问题的Euler方法 [ ( ) ( , ( , ))] 2 Euler , ( , ) ( 0,1,2,...) ( , ) ( ) 2 1 1 1 2 1 1 1 1 2 n n n n n n n n n n n n n n f x y f x y hf x y h y y k hf x h y k n k hf x y y y f k k = + + + + = + + = = = + + + + + 该式称为改进 方法 亦可写成 上式还常写成