微分方程数值解 发展方程的差分方法 陈文斌 复旦大学数学系 Na diffe3.tex-微分方程数值解一陈文斌-21/4/2003-17:00-p.1/29
©§ê) uЧ©{ ©R multigrid@scicomput.com EÆêÆX NA˙diffc3.tex – ©§ê) – ©R – 21/4/2003 – 17:00 – p.1/29
Diffusing equations 扩散方程初边值问题:设a>0,在区 域D={(x,t)0<x<1,0≤t≤们}找(x,t满足 au a2, 0<<1.0<t<T (x,0)=0(x),0<x<1初值条件 (0,+)=(1,t)=0,0≤t≤T边值条件 这里边值条件也可以有多种提法 Na diffe3.tex-微分方程数值解一陈文斌-21/4/2003-17:00-p.2/29
Diffusing equations * Ñ §Ð > ¯ Kµa > 0 § 3 « D ∞ = { (x, t )|0 ^ ù p > ^ ± k õ « J { " NA˙diffc3.tex – © § ê ) – © R – 21/4/2003 – 17:00 – p.2/29
Diffusing equations 区域的离散:这里需要空间方向x和时间方向t的 离散,假设空间方向N等分,空间步长 为h=,x;=2*h;时间方向为步长 为 T 方程离散 边界条件的处理 Na diffe3.tex-微分方程数值解一陈文斌-21/4/2003-17:00-p.3/29
Diffusing equations « l Ñ:ù p I m x Ú m t l Ñ § b m N © § m Ú h = 1 N ,x i = i ∗ h¶ m Ú τ § t j = jτ " § l Ñ > . ^ ? n NA˙diffc3.tex – © § ê ) – © R – 21/4/2003 – 17:00 – p.3/29
Diffusing equations 区域的离散 c∞OoμAa,n 4/29
Diffusing equations « l Ñ ÇøÓòµÄÍø¸ñ x t T (x i,t j) x i t j NA˙diffc3.tex – © § ê ) – © R – 21/4/2003 – 17:00 – p.4/29
Diffusing equations 古典显格式取=0 r+1+(1-2r)r+r 0 截断误差是 R=O(T +h Na diffe3.tex-微分方程数值解一陈文斌-21/4/2003-17:00-p.5/29
Diffusing equations ; w ª θ = 0 u j+1 i = ru j i+1 + (1 − 2 r ) u j i + ru j i − 1 u 0 i = φ i u j 0 = u j N = 0 ä Ø ´ R j i = O ( τ + h 2 ) NA˙diffc3.tex – © § ê ) – © R – 21/4/2003 – 17:00 – p.5/29
Diffusing equations 古典隐格式取θ=1 1 +(1+2r)+1-r+1=ve 0 截断误差是 R=O(T +h 与显格式不同的是:每求一层(下一个时间点)的 解,都需要求解一个代数方程。 Na diffe3.tex-微分方程数值解一陈文斌-21/4/2003-17:00-p6/29
Diffusing equations ; Û ª θ = 1 − ru j+1 i+1 + (1 + 2 r ) u j+1 i − ru j+1 i − 1 = u j i u 0 i = φ i u j 0 = u j N = 0 ä Ø ´ R j i = O ( τ + h 2 ) w ª Ø Ó ´µz ¦ £ e m : ¤ ) § Ñ I ¦ ) ê § " NA˙diffc3.tex – © § ê ) – © R – 21/4/2003 – 17:00 – p.6/29
Diffusing equations Crank-Nicholson格式取 1+(1+7) +1 T-20 l+1+(1-7)2+ 0 截断误差是B=O(72+12)与显格式不同的是:每 求一层(下一个时间点)的解,都需要求解一个代 数方程。 Na diffe3.tex-微分方程数值解一陈文斌-21/4/2003-17:00-p.729
Diffusing equations Crank-Nicholson ª θ = 1 2 − r 2 u j+1 i+1 + (1 + r ) u j+1 i − r 2 u j+1 i − 1 = r 2 u j i+1 + (1 − r ) u j i + r 2 u j i − 1 u 0 i = φ i u j 0 = u j N = 0 ä Ø ´ R j i = O ( τ 2 + h 2 ) w ª Ø Ó ´µz ¦ £ e m : ¤ ) § Ñ I ¦ ) ê § " NA˙diffc3.tex – © § ê ) – © R – 21/4/2003 – 17:00 – p.7/29
Diffusing equations 边界条件的离散这里我们不做特殊的处理,比方 说: 第一类边界条件:0=0=0(=0,1, 第三类边界条件:假设在右端点 +ak=0 0.1 Na diffe3.tex-微分方程数值解一陈文斌-21/4/2003-17:00-p.8/29
Diffusing equations > . ^ l Ñ ù p · Ø A Ï ? n § ' `µ 1 a > . ^ µu j 0 = u j N = 0,( j = 0, 1, . . . ) 1 n a > . ^ µb 3 mà: u j N − u j N − 1 h + αu j N = 0, j = 0, 1, 2, . . . NA˙diffc3.tex – © § ê ) – © R – 21/4/2003 – 17:00 – p.8/29
Method of separation of variables 考虑初边值问题 (, t)=karr(a, t), 00 (0,t)=0,u(L,t)=0,t>0 (x,0)=f(x),0<x<L 我们试着去找解 (a, t)=X(c)T( 代入方程,有 T(t) X(a) X(x)(t)=kX"(x)(t)→ 程数值解 03-17:00-p.929
Method of separation of variables Ä Ð > ¯ K u t (x, t) = kuxx (x, t ), 0 0 u(0, t) = 0, u (L, t) = 0, t > 0 u (x, 0) = f ( x ), 0 < x < L · Á X é ) u (x, t) = X ( x ) T ( t ) \ § § k X ( x ) T 0 ( t) = kX00 ( x ) T ( t ) ⇒ 1 k T 0 ( t ) T ( t ) = X00 ( x ) X ( x ) NA˙diffc3.tex – © § ê ) – © R – 21/4/2003 – 17:00 – p.9/29
Method of separation of variables 注意到方程两边分别是t和x的函数,所以两边只能是 常数,设为一入 1T(t) X"(a 入 k t(t) X( 这样我们就得到 X(x)+入X(x)=000 NA diffe3tex-微分方程数值解-陈文斌-21/4/2003-17:00-p.1029
Method of separation of variables 5 ¿ § ü > © O ´ t Ú x ¼ ê § ¤ ± ü > U ´ ~ ê § − λ 1 k T 0 ( t ) T ( t ) = X00 ( x ) X ( x ) = − λ ù · Ò X00 ( x) + λX ( x) = 0 0 0 NA˙diffc3.tex – © § ê ) – © R – 21/4/2003 – 17:00 – p.10/29