第6章 常微分方程数值解法
第6章 常微分方程数值解法
绪论 在工程和科学计算中,所建立的各 种常微分方程的初值或边值问题,除很 少几类的特殊方程能给出解析解,绝大 多数的方程是很难甚至不可能给出解析 解的,其主要原因在于积分工具的局限 性。因此,人们转向用数值方法去解常 微分方程,并获得相当大的成功,讨论 和研究常微分方程的数值解法是有重要 意义的
绪论 在工程和科学计算中,所建立的各 种常微分方程的初值或边值问题,除很 少几类的特殊方程能给出解析解,绝大 多数的方程是很难甚至不可能给出解析 解的,其主要原因在于积分工具的局限 性。因此,人们转向用数值方法去解常 微分方程,并获得相当大的成功,讨论 和研究常微分方程的数值解法是有重要 意义的
6.1初值问题的 Euler方法 设一阶常微分方程初值问题 f(x, y) dx 记xn=a+mh(n=0,1,2,,h>0为步长,一般总 假定为常数。该式的数值解是指通过某种方法 去获得解y(x)在点xn上的近似值n,即 y(xn)≈yn(n=0,2,,)
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 去获得解 在点 上的近似值 即 假定为常数。该式的数值解是指通过某种方法 记 为步长,一般总 设一阶常微分方程初值问题
初值问题的Eue方法 为实现这一目标, Euler方法首先将微分算子离 散化,并用x代替x,于是该式可离散为: y(rn+h-y(xn) h 以y表示yv(xn)的近似值,则有 yn1=yn+b/(xn,yn)(n=0,2,)() 这就是显式的Euer公式,它可以从y出发,逐次 算出y1,y2,y
初值问题的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 = + = + − +
初值问题的Eue方法 如果用xn代替x,于是该式可离散为: ≈f(xn+1,y(xn+1) 以y表示y(xn舶近似值,则有 yn1=yn+bf(xn1,yn)(n=0,12…(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
初值问题的Eue方法 如果取以上两式的算术平均值的结果,则得 yn1=y, +lf(n, yn)+f(nl)yn+) (n=0, 1, 2, 称为梯形公式。 计算y时常用以下迭代式: ym=yn hf(xn, yn) (3) y(+)=yn+a[f(xn,yn)+f(xn1,y1)(k=0,1,2 当|y+-y)k<E时,取y (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 当 时 取 ( ) ( ) 计算 时常用以下迭代式: 称为梯形公式。 ( ) 如果取以上两式的算术平均值的结果,则得
初值问题的Eue方法 定理611设函数f(x,y)对变量y:足 Lipschitz 条件,L为ch常数。如果步长h满足气L∠ 即h<2时,则由3)产生的序列y+(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
初值问题的Eue方法 证明:由式(2)和(3)有 -|f( )-f( (k) n+1 n+1 n+15yn+1 n+15n+1 hL k) n+1 n+ k+1 yn+1 n+ 由假设知:im(=)=0,故有 lm y)=yn1 k→2
初值问题的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
初值问题的Eue方法 对于(2)计算yn,由于迭代工作量较大,一般只 迭代一次构成一类预估一校正算法,即 m=yn+hf(xn,yn) ynt=yn +lf(n, yn)+f(rn, yI2)) 并取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
初值问题的Eue方法 上式还常写成 Wn+1=yn+f(k+k, 2 k,=hf(rn,yn) k2=hf(xn+h,yn+k1)(n=0,1,2,) 该式称为改进Eer方法,亦可写成 ym=y,+lf(rn+yn)+f(rn ,yn+hf(mn,y
初值问题的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 = + + + + = + + = = = + + + + + 该式称为改进 方法 亦可写成 上式还常写成