数值分析复习(七)——偏微分方程数值解法

七、偏微分方程数值解法

偏微分方程一般可分为抛物型方程、双曲型方程和椭圆型方程三种类型,其一般形式如下
F ( u x x , u x y , u y y , u x , u y , u , x , y ) = A u x x + B u x y + C u y y + F ~ ( u x , u y , u , x , y ) = 0 △ = B 2 − 4 A C { = 0 ⇒ 抛 物 型 > 0 ⇒ 双 曲 型 < 0 ⇒ 椭 圆 型 \begin{aligned} &F(u_{xx},u_{xy},u_{yy},u_x,u_y,u,x,y)= Au_{xx}+Bu_{xy}+Cu_{yy}+\tilde{F}(u_x,u_y,u,x,y) =0 \\ &\triangle = B^2 - 4AC \left\{ \begin{aligned} &=0 \Rightarrow 抛物型 \\ &\gt 0 \Rightarrow 双曲型 \\ &\lt0 \Rightarrow 椭圆型 \end{aligned} \right. \end{aligned} F(uxx,uxy,uyy,ux,uy,u,x,y)=Auxx+Buxy+Cuyy+F~(ux,uy,u,x,y)=0=B24AC=0>0<0
用差分方法求微分方程近似解时常用公式(通过泰勒展开即可得到)
g ′ ( x 0 ) = 1 h [ g ( x 0 + h ) − g ( x 0 ) ] − h 2 g ′ ′ ( ξ 1 ) ,   ξ 1 ∈ ( x 0 , x 0 + h ) ( 0.1 ) g ′ ( x 0 ) = 1 h [ g ( x 0 ) − g ( x 0 − h ) ] + h 2 g ′ ′ ( ξ 2 ) ,   ξ 2 ∈ ( x 0 − h , x 0 ) ( 0.2 ) g ′ ( x 0 ) = 1 h [ g ( x 0 + h 2 ) − g ( x 0 − h 2 ) ] − h 2 24 g ′ ′ ′ ( ξ 3 ) ,   ξ 3 ∈ ( x 0 − h 2 , x 0 + h 2 ) ( 0.3 ) g ′ ′ ( x 0 ) = 1 h 2 [ g ( x 0 + h ) − 2 g ( x 0 ) + g ( x 0 − h ) ] − h 2 12 g ( 4 ) ( ξ 4 ) ,   ξ 4 ∈ ( x 0 − h , x 0 + h ) ( 0.4 ) g ( x 0 ) = 1 2 [ g ( x 0 − h ) + g ( x 0 + h ) ] − h 2 2 g ′ ′ ( ξ 5 ) ,   ξ 5 ∈ ( x 0 − h , x 0 + h ) ( 0.5 ) \begin{aligned} &g^{'}(x_0) = \frac{1}{h}[g(x_0+h)-g(x_0)]-\frac{h}{2}g^{''}(\xi_1),\ \xi_1 \in (x_0, x_0+h) &(0.1)\\ &g^{'}(x_0) = \frac{1}{h}[g(x_0)-g(x_0-h)]+\frac{h}{2}g^{''}(\xi_2),\ \xi_2 \in (x_0-h, x_0) &(0.2)\\ &g^{'}(x_0) = \frac{1}{h}[g(x_0+\frac{h}{2})-g(x_0-\frac{h}{2})]-\frac{h^2}{24}g^{'''}(\xi_3),\ \xi_3 \in(x_0-\frac{h}{2}, x_0+\frac{h}{2}) &(0.3)\\ &g^{''}(x_0) = \frac{1}{h^2}[g(x_0+h)-2g(x_0)+g(x_0-h)]-\frac{h^2}{12}g^{(4)}(\xi_4),\ \xi_4 \in (x_0-h, x_0+h) &(0.4)\\ &g(x_0) = \frac{1}{2}[g(x_0-h)+g(x_0+h)]-\frac{h^2}{2}g^{''}(\xi_5),\ \xi_5 \in (x_0-h, x_0+h) &(0.5) \end{aligned} g(x0)=h1[g(x0+h)g(x0)]2hg(ξ1), ξ1(x0,x0+h)g(x0)=h1[g(x0)g(x0h)]+2hg(ξ2), ξ2(x0h,x0)g(x0)=h1[g(x0+2h)g(x02h)]24h2g(ξ3), ξ3(x02h,x0+2h)g(x0)=h21[g(x0+h)2g(x0)+g(x0h)]12h2g(4)(ξ4), ξ4(x0h,x0+h)g(x0)=21[g(x0h)+g(x0+h)]2h2g(ξ5), ξ5(x0h,x0+h)(0.1)(0.2)(0.3)(0.4)(0.5)

抛物型方程的差分方法

考虑下面的定解问题
{ ∂ u ∂ t − a ∂ 2 u ∂ x 2 = f ( x , t ) ,   x ∈ ( 0 , l ) ,   t ∈ ( 0 , T ) ( 1.1 ) u ( x , 0 ) = φ ( x ) ,   x ∈ [ 0 , l ] ( 1.2 ) u ( 0 , t ) = α ( t ) ,   u ( l , t ) = β ( t ) ,   t ∈ [ 0 , T ] ( 1.3 ) \left\{ \begin{aligned} &\frac{\partial u}{\partial t} - a \frac{\partial^2 u}{\partial x^2} = f(x,t),\ x \in (0, l),\ t \in (0, T) &(1.1)\\ &u(x,0)=\varphi(x),\ x \in [0, l] &(1.2)\\ &u(0, t) = \alpha(t),\ u(l, t) = \beta(t),\ t \in [0, T] &(1.3) \end{aligned} \right. tuax22u=f(x,t), x(0,l), t(0,T)u(x,0)=φ(x), x[0,l]u(0,t)=α(t), u(l,t)=β(t), t[0,T](1.1)(1.2)(1.3)
其中 a a a 是正常数, f f f φ \varphi φ α \alpha α β \beta β已知函数,满足 φ ( 0 ) = α ( 0 ) \varphi(0) = \alpha(0) φ(0)=α(0) φ ( l ) = β ( 0 ) \varphi(l) = \beta(0) φ(l)=β(0)假设上述定解问题存在唯一解 u ( x , t ) u(x,t) u(x,t),且具有一定的光滑性

网格剖分

D = { ( x , t ) ∣ 0 ≤ x ≤ l , 0 ≤ t ≤ T } D = \{(x,t)|0 \le x \le l,0 \le t \le T \} D={(x,t)0xl,0tT} h = l M h=\frac{l}{M} h=Ml τ = T N \tau = \frac{T}{N} τ=NT x i = i h ( 0 ≤ i ≤ M ) x_i=ih(0 \le i \le M) xi=ih(0iM) t k = k τ ( 0 ≤ k ≤ N ) t_k = k\tau(0 \le k \le N) tk=kτ(0kN),用两簇平行直线
x = x i ,   i = 0 , 1 , . . , M t = t k ,   k = 0 , 1 , . . . , N x = x_i,\ i=0,1,..,M \\ t = t_k,\ k=0,1,...,N x=xi, i=0,1,..,Mt=tk, k=0,1,...,N
将区域 D D D 分割成矩形网格。 h h h τ \tau τ 称为空间步长和时间步长,网格点 ( x i , t k ) (x_i, t_k) (xi,tk) 称为节点。记 D ‾ h = { ( x i , t k ) ∣ 0 ≤ i ≤ M , 0 ≤ k ≤ N } \overline{D}_h = \{(x_i, t_k)|0 \le i \le M, 0 \le k \le N \} Dh={(xi,tk)0iM,0kN} D h = { ( x i , t k ) ∣ 1 ≤ i ≤ M − 1 , 1 ≤ k ≤ N } D_h = \{(x_i, t_k)| 1 \le i \le M-1, 1 \le k \le N \} Dh={(xi,tk)1iM1,1kN} Γ h = D ‾ h \Gamma_h = \overline{D}_h Γh=Dh\ D h D_h Dh。称 D h D_h Dh内部节点 Γ h \Gamma_h Γh边界节点。在位于 t = t k t=t_k t=tk 上的所有节点称为 k k k 层节点 u ( x i , t k ) u(x_i, t_k) u(xi,tk) 近似值可表示为 u i k u_i^k uik

考虑在点 ( x i , t k ) (x_i, t_k) (xi,tk) 处的方程
∂ u ∂ t ( x i , t k ) − a ∂ 2 u ∂ x 2 ( x i , t k ) = f ( x i , t k ) ( 1.4 ) \frac{\partial u}{\partial t}(x_i, t_k) - a\frac{\partial^2u}{\partial x^2}(x_i, t_k) = f(x_i, t_k)\quad (1.4) tu(xi,tk)ax22u(xi,tk)=f(xi,tk)(1.4)

  • 利用 ( 0.1 ) (0.1) (0.1) ( 0.4 ) (0.4) (0.4)、初始条件 ( 1.2 ) (1.2) (1.2) 和边界条件 ( 1.3 ) (1.3) (1.3) 可得古典显格式(向前 Euler 格式)
  • 利用 ( 0.2 ) (0.2) (0.2) ( 0.4 ) (0.4) (0.4)、初始条件 ( 1.2 ) (1.2) (1.2) 和边界条件 ( 1.3 ) (1.3) (1.3) 可得古典隐格式(向后 Euler 格式)
  • 利用 ( 0.3 ) (0.3) (0.3) ( 0.4 ) (0.4) (0.4)、初始条件 ( 1.2 ) (1.2) (1.2) 和边界条件 ( 1.3 ) (1.3) (1.3) 可得 Richardson 格式
古典显格式

{ 1 τ ( u i k + 1 − u i k ) − a h 2 ( u i + 1 k − 2 u i k + u i − 1 k ) = f ( x i , t k ) ,   1 ≤ i ≤ M − 1 , 0 ≤ k ≤ N − 1 ( 1.6 ) u i 0 = φ ( x i ) ,   1 ≤ i ≤ M − 1 ( 1.7 ) u 0 k = α ( t k ) ,   u M k = β ( t k ) ,   0 ≤ k ≤ N ( 1.8 ) \left\{ \begin{aligned} &\frac{1}{\tau}(u_i^{k+1}-u_i^k)-\frac{a}{h^2}(u_{i+1}^k-2u_i^k+u_{i-1}^k) = f(x_i, t_k), \ 1 \le i \le M-1, 0 \le k \le N-1 &(1.6)\\ &u_i^0 = \varphi(x_i),\ 1 \le i \le M-1 &(1.7) \\ &u_0^k = \alpha(t_k),\ u_M^k = \beta(t_k),\ 0 \le k \le N &(1.8) \end{aligned} \right. τ1(uik+1uik)h2a(ui+1k2uik+ui1k)=f(xi,tk), 1iM1,0kN1ui0=φ(xi), 1iM1u0k=α(tk), uMk=β(tk), 0kN(1.6)(1.7)(1.8)

r = a τ h 2 r = \frac{a\tau}{h^2} r=h2aτ,称 r r r步长比,则 ( 1.6 ) (1.6) (1.6) 式可改写为
u i k + 1 = ( 1 − 2 r ) u i k + r ( u i − 1 k + u i + 1 k ) + τ f ( x i , t k ) u_i^{k+1} = (1-2r)u_i^k + r(u_{i-1}^k+u_{i+1}^k) + \tau f(x_i, t_k) uik+1=(12r)uik+r(ui1k+ui+1k)+τf(xi,tk)
从而差分格式 ( 1.6 ) − ( 1.8 ) (1.6)-(1.8) (1.6)(1.8) 可改写成向量和矩阵形式
[ u 1 k + 1 u 2 k + 1 ⋮ u M − 2 k + 1 u M − 1 k + 1 ] = [ 1 − 2 r r r 1 − 2 r r ⋱ ⋱ ⋱ r 1 − 2 r r r 1 − 2 r ] [ u 1 k u 2 k ⋮ u M − 2 k u M − 1 k ] + [ τ f ( x 1 , t k ) + r α ( t k ) τ f ( x 2 , t k ) ⋮ τ f ( x M − 2 , t k ) τ f ( x M − 1 , t k ) + r β ( t k ) ] k = 0 , 1 , . . . , N − 1 \left[ \begin{matrix} u_1^{k+1} \\ u_2^{k+1} \\ \vdots \\ u_{M-2}^{k+1} \\ u_{M-1}^{k+1} \end{matrix} \right] = \left[ \begin{matrix} 1-2r & r \\ r & 1-2r &r \\ &\ddots & \ddots & \ddots \\ &&r &1-2r & r \\ &&&r & 1-2r \end{matrix} \right] \left[ \begin{matrix} u_1^k \\ u_2^k \\ \vdots \\ u_{M-2}^k \\ u_{M-1}^k \end{matrix} \right] + \left[ \begin{matrix} \tau f(x_1, t_k)+r\alpha(t_k) \\ \tau f(x_2, t_k) \\ \vdots \\ \tau f(x_{M-2}, t_k) \\ \tau f(x_{M-1}, t_k) + r\beta(t_k) \end{matrix} \right] \quad k = 0,1,...,N-1 u1k+1u2k+1uM2k+1uM1k+1=12rrr12rrr12rrr12ru1ku2kuM2kuM1k+τf(x1,tk)+rα(tk)τf(x2,tk)τf(xM2,tk)τf(xM1,tk)+rβ(tk)k=0,1,...,N1

其截断误差如下
R i k ( 1 ) = τ 2 ∂ 2 u ∂ t 2 ( x i , η i k ) − a h 2 12 ∂ 4 u ∂ x 4 ( ξ i k , t k ) ,   η i k ∈ ( t k , t k + 1 ) ,   ξ i k ∈ ( x i − 1 , x i + 1 ) R_{ik}^{(1)} = \frac{\tau}{2}\frac{\partial^2 u}{\partial t^2}(x_i, \eta_i^k) - \frac{ah^2}{12}\frac{\partial^4 u}{\partial x^4}(\xi_i^k, t_k),\ \eta_i^k \in (t_k, t_{k+1}),\ \xi_i^k \in (x_{i-1}, x_{i+1}) Rik(1)=2τt22u(xi,ηik)12ah2x44u(ξik,tk), ηik(tk,tk+1), ξik(xi1,xi+1)

古典隐格式

{ 1 τ ( u i k − u i k − 1 ) − a h 2 ( u i + 1 k − 2 u i k + u i − 1 k ) = f ( x i , t k ) ,   1 ≤ i ≤ M − 1 , 1 ≤ k ≤ N ( 1.11 ) u i 0 = φ ( x i ) ,   1 ≤ i ≤ M − 1 ( 1.12 ) u 0 k = α ( t k ) ,   u M k = β ( t k ) ,   0 ≤ k ≤ N ( 1.13 ) \left\{ \begin{aligned} &\frac{1}{\tau}(u_i^{k}-u_i^{k-1})-\frac{a}{h^2}(u_{i+1}^k-2u_i^k+u_{i-1}^k) = f(x_i, t_k), \ 1 \le i \le M-1, 1 \le k \le N &(1.11)\\ &u_i^0 = \varphi(x_i),\ 1 \le i \le M-1 &(1.12) \\ &u_0^k = \alpha(t_k),\ u_M^k = \beta(t_k),\ 0 \le k \le N &(1.13) \end{aligned} \right. τ1(uikuik1)h2a(ui+1k2uik+ui1k)=f(xi,tk), 1iM1,1kNui0=φ(xi), 1iM1u0k=α(tk), uMk=β(tk), 0kN(1.11)(1.12)(1.13)

将其改写成矩阵形式
[ 1 + 2 r − r − r 1 + 2 r − r ⋱ ⋱ ⋱ − r 1 + 2 r − r − r 1 + 2 r ] [ u 1 k u 2 k ⋮ u M − 2 k u M − 1 k ] = [ u 1 k − 1 u 2 k − 1 ⋮ u M − 2 k − 1 u M − 1 k − 1 ] + [ τ f ( x 1 , t k ) + r α ( t k ) τ f ( x 2 , t k ) ⋮ τ f ( x M − 2 , t k ) τ f ( x M − 1 , t k ) + r β ( t k ) ] k = 1 , 2 , . . . , N \left[ \begin{matrix} 1+2r & -r \\ -r & 1+2r &-r \\ &\ddots &\ddots &\ddots \\ &&-r &1+2r & -r \\ &&&-r & 1+2r \end{matrix} \right]\left[ \begin{matrix} u_1^{k} \\ u_2^{k} \\ \vdots \\ u_{M-2}^{k} \\ u_{M-1}^{k} \end{matrix} \right] = \left[ \begin{matrix} u_1^{k-1} \\ u_2^{k-1} \\ \vdots \\ u_{M-2}^{k-1} \\ u_{M-1}^{k-1} \end{matrix} \right] + \left[ \begin{matrix} \tau f(x_1, t_k)+r\alpha(t_k) \\ \tau f(x_2, t_k) \\ \vdots \\ \tau f(x_{M-2}, t_k) \\ \tau f(x_{M-1}, t_k) + r\beta(t_k) \end{matrix} \right] \quad k = 1,2,...,N 1+2rrr1+2rrr1+2rrr1+2ru1ku2kuM2kuM1k=u1k1u2k1uM2k1uM1k1+τf(x1,tk)+rα(tk)τf(x2,tk)τf(xM2,tk)τf(xM1,tk)+rβ(tk)k=1,2...,N

其截断误差如下
R i k ( 2 ) = − τ 2 ∂ 2 u ∂ t 2 ( x i , η i k ) − a h 2 12 ∂ 4 u ∂ x 4 ( ξ i k , t k ) ,   η i k ∈ ( t k − 1 , t k ) ,   ξ i k ∈ ( x i − 1 , x i + 1 ) R_{ik}^{(2)} = -\frac{\tau}{2}\frac{\partial^2 u}{\partial t^2}(x_i, \eta_i^k) - \frac{ah^2}{12}\frac{\partial^4 u}{\partial x^4}(\xi_i^k, t_k),\ \eta_i^k \in (t_{k-1}, t_k),\ \xi_i^k \in (x_{i-1}, x_{i+1}) Rik(2)=2τt22u(xi,ηik)12ah2x44u(ξik,tk), ηik(tk1,tk), ξik(xi1,xi+1)

Richardson
  • Richardson 格式是一个 3 层格式,需要知道 (k-1) 层和 k 层的值才能求出第 (k+1) 层的值
  • Richardson 格式是完全不稳定的格式,无实用价值
Crank-Nicolson

为了提高时间方向的精度,记 t k + τ 2 = t k + τ 2 t_{k+\frac{\tau}{2}}=t_k + \frac{\tau}{2} tk+2τ=tk+2τ,考虑点 ( x i , t k + τ 2 ) (x_i, t_{k+\frac{\tau}{2}}) (xi,tk+2τ) 处的微分方程
∂ u ∂ t ( x i , t k + τ 2 ) − a ∂ 2 u ∂ x 2 ( x i , t k + τ 2 ) = f ( x i , t k + τ 2 ) \frac{\partial u}{\partial t}(x_i, t_{k+\frac{\tau}{2}}) - a\frac{\partial^2u}{\partial x^2}(x_i, t_{k+\frac{\tau}{2}}) = f(x_i, t_{k+\frac{\tau}{2}}) tu(xi,tk+2τ)ax22u(xi,tk+2τ)=f(xi,tk+2τ)
利用中心差商 ( 0.3 ) (0.3) (0.3)、平均公式 ( 0.5 ) (0.5) (0.5) 和二阶差商公式 ( 0.4 ) (0.4) (0.4) 可得 Crank-Nicolson 格式
{ u i k + 1 − u i k τ − a ⋅ 1 2 [ u i + 1 k − 2 u i k + u i − 1 k h 2 + u i + 1 k + 1 − 2 u i k + 1 + u i − 1 k + 1 h 2 ] = f ( x i , t k + τ 2 ) ,   1 ≤ i ≤ M − 1 , 0 ≤ k ≤ N − 1 ( 1.19 ) u i 0 = φ ( x i ) , 1 ≤ i ≤ M − 1 ( 1.20 ) u 0 k = α ( t k ) , u M k = β ( t k ) , 0 ≤ k ≤ N ( 1.21 ) \left\{ \begin{aligned} &\frac{u_i^{k+1}-u_i^k}{\tau} - a \sdot\frac{1}{2} \left[ \frac{u_{i+1}^k - 2u_i^k + u_{i-1}^k}{h^2} + \frac{u_{i+1}^{k+1} - 2u_i^{k+1} + u_{i-1}^{k+1}}{h^2} \right] = f(x_i, t_{k+\frac{\tau}{2}}),\ 1 \le i \le M-1,0 \le k \le N-1 &&(1.19) \\ &u_i^0 = \varphi(x_i), 1 \le i \le M-1 &&(1.20) \\ &u_0^k = \alpha(t_k), u_M^k = \beta(t_k), 0 \le k \le N &&(1.21) \end{aligned} \right. τuik+1uika21[h2ui+1k2uik+ui1k+h2ui+1k+12uik+1+ui1k+1]=f(xi,tk+2τ), 1iM1,0kN1ui0=φ(xi),1iM1u0k=α(tk),uMk=β(tk),0kN(1.19)(1.20)(1.21)

其截断误差如下
R i k ( 3 ) = τ 2 24 ∂ 3 u ∂ t 3 ( x i , η i k ) − a h 2 24 [ ∂ 4 u ∂ x 4 ( ξ i k , t k ) + ∂ 4 u ∂ x 4 ( ξ ~ i k , t k + 1 ) ] − a τ 2 8 ∂ 4 u ∂ x 2 ∂ t 2 ( x i , η ‾ i k ) , η i k ∈ ( t k , t k + 1 ) ,   η ‾ i k ∈ ( t k , t k + 1 ) ,   ξ i k ∈ ( x i − 1 , x i + 1 ) ,   ξ ~ i k ∈ ( x i − 1 , x i + 1 ) R_{ik}^{(3)} = \frac{\tau^2}{24}\frac{\partial^3 u}{\partial t^3}(x_i, \eta_i^k) - \frac{ah^2}{24}\left[ \frac{\partial^4 u}{\partial x^4}(\xi_i^k, t_k) + \frac{\partial^4 u}{\partial x^4}(\tilde{\xi}_i^k, t_{k+1}) \right] - \frac{a\tau^2}{8}\frac{\partial^4 u}{\partial x^2 \partial t^2}(x_i, \overline{\eta}_i^k),\\ \eta_i^k \in (t_k, t_{k+1}),\ \overline{\eta}_i^k \in (t_k, t_{k+1}),\ \xi_i^k \in (x_{i-1}, x_{i+1}),\ \tilde{\xi}_i^k \in (x_{i-1}, x_{i+1}) Rik(3)=24τ2t33u(xi,ηik)24ah2[x44u(ξik,tk)+x44u(ξ~ik,tk+1)]8aτ2x2t24u(xi,ηik),ηik(tk,tk+1), ηik(tk,tk+1), ξik(xi1,xi+1), ξ~ik(xi1,xi+1)

差分格式的稳定性和收敛性

  • 古典显(隐)格式和 Crank-Nicolson 格式为两层格式,Richardson 格式为三层格式
  • Ω h = ( x 0 , x 1 , . . . , x M ) \Omega_h=(x_0, x_1,..., x_M) Ωh=(x0,x1,...,xM),称 ω = ( ω 0 , ω 1 , . . . , ω M ) \omega = (\omega_0, \omega_1, ..., \omega_M) ω=(ω0,ω1,...,ωM) Ω h \Omega_h Ωh 上的网格函数。记 W = { ω ∣ ω W = \{\omega|\omega W={ωω Ω h \Omega_h Ωh 上的网格函数 } \} },称 W W W 为网格函数空间。
  • { u i k ∣ 0 ≤ i ≤ M , 0 ≤ k ≤ N } \{u_i^k|0 \le i \le M,0 \le k \le N \} {uik0iM,0kN} 是差分格式的解,定义 u k = ( u 0 k , u 1 k , . . . , u M k ) u^k=(u_0^k, u_1^k,...,u_M^k) uk=(u0k,u1k,...,uMk),则 u k u^k uk Ω h \Omega_h Ωh 上的网格函数

ω ∈ W \omega \in W ωW,定义下面的范数:
L 2 − 范 数 : ∥ ω ∥ 2 = h [ 1 2 ( w 0 ) 2 + ∑ i = 1 M − 1 ( w i ) 2 + 1 2 ( ω M ) 2 ] L ∞ − 范 数 : ∥ ω ∥ ∞ = max ⁡ 0 ≤ i ≤ M ∣ ω i ∣ L 1 − 范 数 : ∥ ω ∥ 1 = h [ 1 2 ∣ ω ∣ + ∑ i = 1 M − 1 ∣ ω i ∣ + 1 2 ∣ ω M ∣ ] \begin{aligned} &L_2-范数:\parallel\omega\parallel_2 = \sqrt{h\left[ \frac{1}{2}(w_0)^2 + \sum_{i=1}^{M-1}(w_i)^2 + \frac{1}{2}(\omega_M)^2 \right]} \\ &L_{\infty}-范数:\parallel\omega\parallel_{\infty} = \max_{0 \le i \le M}|\omega_i| \\ &L_1-范数:\parallel\omega\parallel_1 = h\left[ \frac{1}{2}|\omega| + \sum_{i=1}^{M-1}|\omega_i| + \frac{1}{2}|\omega_M| \right] \end{aligned} L2ω2=h[21(w0)2+i=1M1(wi)2+21(ωM)2] Lω=0iMmaxωiL1ω1=h[21ω+i=1M1ωi+21ωM]
h h h 为空间步长

稳定性

{ u i k ∣ 0 ≤ i ≤ M , 0 ≤ k ≤ N } \{u_i^k|0 \le i \le M, 0 \le k \le N \} {uik0iM,0kN} 是差分格式的解, { v i k ∣ 0 ≤ i ≤ M , 0 ≤ k ≤ N } \{v_i^k|0 \le i \le M, 0 \le k \le N \} {vik0iM,0kN} 是由于初始数据有误差而得到的差分格式的近似解,记
ϵ i k = u i k − v i k ,   0 ≤ i ≤ M , 0 ≤ k ≤ N \epsilon_i^k = u_i^k - v_i^k,\ 0 \le i \le M, 0 \le k \le N ϵik=uikvik, 0iM,0kN
如果存在与步长 h h h τ \tau τ 无关的常数 C C C,使得
∥ ϵ k ∥ ≤ C ∥ ϵ 0 ∥ ,   1 ≤ k ≤ N ( 两 层 格 式 ) ∥ ϵ k ∥ ≤ C ( ∥ ϵ 0 ∥ + ∥ ϵ 1 ∥ ) ,   1 ≤ k ≤ N ( 三 层 格 式 ) \begin{aligned} &\parallel\epsilon^k\parallel \le C\parallel\epsilon^0\parallel,\ 1 \le k \le N(两层格式) \\ &\parallel\epsilon^k\parallel \le C(\parallel\epsilon^0\parallel+\parallel\epsilon^1\parallel),\ 1 \le k \le N(三层格式) \end{aligned} ϵkCϵ0, 1kNϵkC(ϵ0+ϵ1), 1kN
则称该差分格式关于范数 ∥ ⋅ ∥ \parallel\sdot\parallel 是稳定的,否则称不稳定。

  • r = a τ h 2 > 0 r = \frac{a\tau}{h^2} \gt 0 r=h2aτ>0
  • 当步长比 r ≤ 1 2 r \le \frac{1}{2} r21 时,古典显格式关于 L ∞ L_{\infty} L 范数是稳定的;当 r > 1 2 r \gt \frac{1}{2} r>21 时,其关于 L ∞ L_{\infty} L 范数不稳定
  • 对任意步长比 r r r古典隐格式关于 L ∞ L_{\infty} L 范数是稳定的
  • 对任意步长比 r r rCrank-Nicolson 格式关于 L 2 L_2 L2 范数是稳定的
  • 对任意步长比 r r rRichardson 格式关于 L ∞ L_{\infty} L 范数和 L 2 L_2 L2 范数都是不稳定的
收敛性

U i k = u ( x i , t k ) U_i^k = u(x_i, t_k) Uik=u(xi,tk) 是微分方程定解问题的解, u i k u_i^k uik 是对应的差分格式的解,记
e i k = U i k − u i k , 0 ≤ i ≤ M , 0 ≤ k ≤ N e_i^k = U_i^k - u_i^k, 0 \le i \le M, 0 \le k \le N eik=Uikuik,0iM,0kN

lim ⁡ h → 0 , τ → 0 max ⁡ 0 ≤ k ≤ N ∥ e k ∥ = 0 \lim_{h \rightarrow 0,\tau \rightarrow0} \max_{0 \le k \le N}\parallel e^k \parallel = 0 h0,τ0lim0kNmaxek=0
则称差分格式在范数 ∥ ⋅ ∥ \parallel\sdot\parallel 下是收敛的。如果
max ⁡ 0 ≤ k ≤ N ∥ e k ∥ = O ( h p + τ q ) \max_{0 \le k \le N}\parallel e^k \parallel = O(h^p+\tau^q) 0kNmaxek=O(hp+τq)
则称差分格式关于空间步长 p p p 阶、关于时间步长 q q q 阶收敛

  • 当步长比 r ≤ 1 2 r \le \frac{1}{2} r21 时,古典显格式在 L ∞ L_{\infty} L 范数下关于空间步长 2 阶、关于时间步长 1 阶收敛
  • 对任意步长比 r r r,古典隐格式在 L ∞ L_{\infty} L 范数下关于空间步长 2 阶、关于时间步长 1 阶收敛
  • 对任意步长比 r r r,Crank-Nicolson 格式在 L 2 L_2 L2 范数下关于空间步长和时间步长都是 2 阶收敛

双曲型方程的差分方法

考虑下面的初边值问题
{ ∂ 2 u ∂ t 2 − a 2 ∂ 2 u ∂ x 2 = f ( x , t ) ,   0 < x < l , 0 < t < T u ( x , 0 ) = φ ( x ) ,   u t ( x , 0 ) = ψ ( x ) ,   0 < x < l u ( 0 , t ) = α ( t ) ,   u ( l , t ) = β ( t ) ,   0 ≤ t ≤ T \left\{ \begin{aligned} &\frac{\partial^2u}{\partial t^2} - a^2\frac{\partial^2u}{\partial x^2} = f(x, t),&&\ 0 \lt x \lt l, 0 \lt t \lt T \\ &u(x, 0) = \varphi(x), \ u_t(x, 0) = \psi(x), &&\ 0 \lt x \lt l \\ &u(0, t) = \alpha(t),\ u(l, t) = \beta(t),&&\ 0 \le t \le T \end{aligned} \right. t22ua2x22u=f(x,t),u(x,0)=φ(x), ut(x,0)=ψ(x),u(0,t)=α(t), u(l,t)=β(t), 0<x<l,0<t<T 0<x<l 0tT
h = l M h = \frac{l}{M} h=Ml τ = T N \tau = \frac{T}{N} τ=NT x i = i h x_i = ih xi=ih t k = k τ t_k=k\tau tk=kτ

考虑点 ( x i , t k ) (x_i, t_k) (xi,tk) 处的方程(显格式和隐格式)
∂ 2 u ∂ t 2 ( x i , t k ) − a 2 ∂ 2 u ∂ x 2 ( x i , t k ) = f ( x i , t k ) \frac{\partial^2 u}{\partial t^2}(x_i, t_k) - a^2\frac{\partial^2 u}{\partial x^2}(x_i, t_k) = f(x_i, t_k) t22u(xi,tk)a2x22u(xi,tk)=f(xi,tk)

  • 利用二阶差商 ( 0.4 ) (0.4) (0.4)、初边值条件和泰勒展开可得显格式
  • 利用二阶差商 ( 0.4 ) (0.4) (0.4)、平均公式 ( 0.5 ) (0.5) (0.5) 和初边值条件可得隐格式
显格式

{ 1 τ 2 ( u i k + 1 − 2 u i k + u i k − 1 ) − a 2 h 2 ( u i + 1 k − 2 u i k + u i − 1 k ) = f ( x i , t k ) ,   1 ≤ i ≤ M − 1 , 1 ≤ k ≤ N − 1 ( 3.2 ) u i 0 = φ ( x i ) ,   u i 1 = Ψ ( x i ) ,   1 ≤ i ≤ M − 1 ( 3.3 ) u 0 k = α ( t k ) ,   u M k = β ( t k ) ,   0 < k < N ( 3.4 ) \left\{ \begin{aligned} &\frac{1}{\tau^2}(u_i^{k+1} - 2u_i^k + u_i^{k-1}) - \frac{a^2}{h^2}(u_{i+1}^k - 2u_i^k + u_{i-1}^k) = f(x_i, t_k), \ 1 \le i \le M-1,1 \le k \le N-1 &&(3.2)\\ &u_i^0 = \varphi(x_i), \ u_i^1 = \Psi(x_i), \ 1 \le i \le M-1 &&(3.3)\\ &u_0^k = \alpha(t_k), \ u_M^k = \beta(t_k), \ 0 \lt k \lt N &&(3.4) \end{aligned} \right. τ21(uik+12uik+uik1)h2a2(ui+1k2uik+ui1k)=f(xi,tk), 1iM1,1kN1ui0=φ(xi), ui1=Ψ(xi), 1iM1u0k=α(tk), uMk=β(tk), 0<k<N(3.2)(3.3)(3.4)

Ψ ( x i ) = φ ( x i ) + τ ψ ( x i ) + τ 2 2 [ a 2 φ ′ ′ ( x i ) + f ( x i , 0 ) ] \Psi(x_i) = \varphi(x_i)+\tau\psi(x_i)+\frac{\tau^2}{2}[a^2\varphi^{''}(x_i)+f(x_i,0)] Ψ(xi)=φ(xi)+τψ(xi)+2τ2[a2φ(xi)+f(xi,0)]

其截断误差如下
R i k = τ 2 12 ∂ 4 u ∂ t 4 ( x i , η i k ) − a 2 h 2 12 ∂ 4 u ∂ x 4 ( ξ i k , t k ) ,   η i k ∈ ( t k − 1 , t k + 1 ) ,   ξ i k ∈ ( x i − 1 , x i + 1 ) R_{ik} = \frac{\tau^2}{12}\frac{\partial^4 u}{\partial t^4}(x_i, \eta_i^k) - \frac{a^2h^2}{12}\frac{\partial^4 u}{\partial x^4}(\xi_i^k, t_k),\ \eta_i^k \in (t_{k-1}, t_{k+1}),\ \xi_i^k \in (x_{i-1}, x_{i+1}) Rik=12τ2t44u(xi,ηik)12a2h2x44u(ξik,tk), ηik(tk1,tk+1), ξik(xi1,xi+1)
s = a τ h s = \frac{a\tau}{h} s=haτ s s s 称为步长比,则可将上面差分格式改写为
u i k + 1 = s 2 ( u i + 1 k + u i − 1 k ) + 2 ( 1 − s 2 ) u i k − u i k − 1 + τ 2 f ( x i , t k ) ,   1 ≤ i ≤ M − 1 , 1 ≤ k ≤ N − 1 u_i^{k+1} = s^2(u_{i+1}^k + u_{i-1}^k) + 2(1-s^2)u_i^k - u_i^{k-1} + \tau^2f(x_i, t_k),\ 1 \le i \le M-1,1 \le k \le N-1 \\ uik+1=s2(ui+1k+ui1k)+2(1s2)uikuik1+τ2f(xi,tk), 1iM1,1kN1

  • 当步长比 s ≤ 1 s \le 1 s1 时,显式差分格式 ( 3.2 ) − ( 3.4 ) (3.2)-(3.4) (3.2)(3.4) L 2 L_2 L2 范数下是稳定的;当步长比 s > 1 s \gt 1 s>1 时,在 L 2 L_2 L2 范数下是不稳定
  • 当步长比 s ≤ 1 s \le 1 s1 时,显式差分格式 ( 3.2 ) − ( 3.4 ) (3.2)-(3.4) (3.2)(3.4) L 2 L_2 L2 范数下关于空间步长和时间步长都是二阶收敛
隐格式

{ 1 τ 2 ( u i k + 1 − 2 u i k + u i k − 1 ) − a 2 2 h 2 ( u i + 1 k + 1 − 2 u i k + 1 + u i − 1 k + 1 + u i + 1 k − 1 − 2 u i k − 1 + u i − 1 k − 1 ) = f ( x i , t k ) ,   1 ≤ i ≤ M − 1 , 1 ≤ k ≤ N − 1 ( 3.6 ) u i 0 = φ ( x i ) ,   u i 1 = Ψ ( x 1 ) ,   1 ≤ i ≤ M − 1 ( 3.7 ) u 0 k = α ( t k ) , u M k = β ( t k ) ,   0 ≤ k ≤ N ( 3.8 ) \left\{ \begin{aligned} \frac{1}{\tau^2}&(u_i^{k+1} - 2u_i^k + u_i^{k-1}) - \frac{a^2}{2h^2}(u_{i+1}^{k+1} - 2u_i^{k+1} +u_{i-1}^{k+1} + u_{i+1}^{k-1} - 2u_i^{k-1} + u_{i-1}^{k-1}) \\ &= f(x_i, t_k), \ 1 \le i \le M-1,1 \le k \le N-1 && (3.6)\\ u_i^0 &= \varphi(x_i), \ u_i^1 = \Psi(x_1), \ 1 \le i \le M-1 && (3.7) \\ u_0^k &= \alpha(t_k), u_M^k = \beta(t_k), \ 0 \le k \le N && (3.8) \end{aligned} \right. τ21ui0u0k(uik+12uik+uik1)2h2a2(ui+1k+12uik+1+ui1k+1+ui+1k12uik1+ui1k1)=f(xi,tk), 1iM1,1kN1=φ(xi), ui1=Ψ(x1), 1iM1=α(tk),uMk=β(tk), 0kN(3.6)(3.7)(3.8)

  • 对任意步长比 s s s,隐式差分格式 ( 3.6 ) − ( 3.8 ) (3.6)-(3.8) (3.6)(3.8) L 2 L_2 L2 范数下是稳定
  • 对任意步长比 s s s,上述隐式差分格式在 L 2 L_2 L2 范数下关于空间步长和时间步长都是二阶收敛

其截断误差如下
R i k = − a 2 τ 2 2 ∂ 4 u ∂ x 2 ∂ t 2 ( x i , η ‾ i k ) + τ 2 12 ∂ 4 u ∂ t 4 ( x i , η i k ) − a 2 h 2 24 [ ∂ 4 u ∂ x 4 ( ξ ‾ i k + 1 , t k + 1 ) + ∂ 4 u ∂ x 4 ( ξ ‾ i k − 1 , t k − 1 ) ] η i k ∈ ( t k − 1 , t k + 1 ) ,   η ‾ i k ∈ ( t k − 1 , t k + 1 ) ,   ξ ‾ i ∈ ( x i − 1 , x i + 1 ) R_{ik} = -\frac{a^2\tau^2}{2}\frac{\partial^4 u}{\partial x^2 \partial t^2}(x_i, \overline{\eta}_i^k) + \frac{\tau^2}{12}\frac{\partial^4 u}{\partial t^4}(x_i, \eta_i^k) - \frac{a^2 h^2}{24}\left[ \frac{\partial^4 u}{\partial x^4}(\overline{\xi}_i^{k+1}, t_{k+1}) + \frac{\partial^4 u}{\partial x^4}(\overline{\xi}_i^{k-1}, t_{k-1}) \right] \\ \eta_i^k \in (t_{k-1}, t_{k+1}),\ \overline{\eta}_i^k \in (t_{k-1}, t_{k+1}), \ \overline{\xi}_i \in (x_{i-1}, x_{i+1}) Rik=2a2τ2x2t24u(xi,ηik)+12τ2t44u(xi,ηik)24a2h2[x44u(ξik+1,tk+1)+x44u(ξik1,tk1)]ηik(tk1,tk+1), ηik(tk1,tk+1), ξi(xi1,xi+1)

椭圆型方程的差分方法

考虑二维 Poisson 方程 Dirichlet 边值问题
{ − ( ∂ 2 u ∂ x 2 + ∂ 2 u ∂ y 2 ) = f ( x , y ) ( x , y ) ∈ Ω ( 4.1 ) u = φ ( x , y ) ( x , y ) ∈ Γ ( 4.2 ) \left\{ \begin{aligned} &-(\frac{\partial^2 u}{\partial x^2} + \frac{\partial^2 u}{\partial y^2}) = f(x, y) && (x, y) \in \Omega && (4.1) \\ &u = \varphi(x, y) && (x, y) \in \Gamma && (4.2) \end{aligned} \right. (x22u+y22u)=f(x,y)u=φ(x,y)(x,y)Ω(x,y)Γ(4.1)(4.2)
其中 Ω \Omega Ω 为矩形区域 Ω = { ( x , y ) ∣ a < x < b , c < y < d } \Omega = \{(x, y)|a \lt x \lt b, c \lt y \lt d \} Ω={(x,y)a<x<b,c<y<d} Γ \Gamma Γ Ω \Omega Ω 的边界

差分格式的建立

将区间 [ a , b ] [a, b] [a,b] m m m 等分,将 [ c , d ] [c, d] [c,d] n n n 等分,记 h 1 = b − a m h_1 = \frac{b-a}{m} h1=mba h 2 = d − c n h_2 = \frac{d-c}{n} h2=ndc x i = a + i h 1 ( 0 ≤ i ≤ m ) x_i = a + ih_1(0 \le i \le m) xi=a+ih1(0im) y j = c + j h 2 ( 0 ≤ j ≤ n ) y_j = c + jh_2(0 \le j \le n) yj=c+jh2(0jn)。称 h 1 h_1 h1 h 2 h_2 h2 x x x 方向和 y y y 方向的步长,用平行线
x = x i 0 ≤ i ≤ m y = y j 0 ≤ j ≤ n \begin{aligned} &x = x_i && 0 \le i \le m \\ &y = y_j && 0 \le j \le n \end{aligned} x=xiy=yj0im0jn
Ω \Omega Ω 剖分为 m n mn mn 个小矩形,交点 ( x i , y j ) (x_i, y_j) (xi,yj) 称为网格节点,记
Ω h = { ( x i , y j ) ∣ 0 ≤ i ≤ m , 0 ≤ j ≤ n } Ω h ∘ = { ( x i , y j ) ∣ 1 ≤ i ≤ m − 1 , 1 ≤ j ≤ n − 1 } \begin{aligned} &\Omega_h = \{ (x_i, y_j)| 0 \le i \le m, 0 \le j \le n \} \\ &\Omega_h^{\circ} = \{ (x_i, y_j)| 1 \le i \le m-1, 1 \le j \le n-1 \} \\ \end{aligned} Ωh={(xi,yj)0im,0jn}Ωh={(xi,yj)1im1,1jn1}
Ω h ∘ \Omega_h^{\circ} Ωh 为内节点,称 Γ h = Ω h \Gamma_h = \Omega_h Γh=Ωh\ Ω h ∘ \Omega_h^{\circ} Ωh 为边界节点。记
ω ≡ { ( i , j ) ∣ ( x i , y j ) ∈ Ω h ∘ } , γ ≡ { ( i , j ) ∣ ( x i , y j ) ∈ Γ h } \omega \equiv \{ (i, j)|(x_i, y_j) \in \Omega_h^{\circ} \},\quad \gamma \equiv \{ (i, j)|(x_i, y_j) \in \Gamma_h \} ω{(i,j)(xi,yj)Ωh},γ{(i,j)(xi,yj)Γh}
在节点 ( x i , y j ) (x_i, y_j) (xi,yj) 处考虑边值问题
{ − [ ∂ 2 u ∂ x 2 ( x i , y j ) + ∂ 2 u ∂ y 2 ( x i , y j ) ] = f ( x i , y j ) ( i , j ) ∈ ω ( 4.3 ) u ( x i , y j ) = φ ( x i , y j ) ( i , j ) ∈ γ ( 4.4 ) \left\{ \begin{aligned} &-\left[\frac{\partial^2 u}{\partial x^2}(x_i, y_j) + \frac{\partial^2 u}{\partial y^2}(x_i, y_j)\right] = f(x_i, y_j) && (i, j) \in \omega && (4.3) \\ &u(x_i, y_j) = \varphi(x_i, y_j) && (i, j) \in \gamma && (4.4) \end{aligned} \right. [x22u(xi,yj)+y22u(xi,yj)]=f(xi,yj)u(xi,yj)=φ(xi,yj)(i,j)ω(i,j)γ(4.3)(4.4)

五点差分格式

{ − ( δ x 2 u + δ y 2 u ) = f ( x i , y j ) ( i , j ) ∈ ω ( 4.8 ) u i j = φ ( x i , y j ) ( i , j ) ∈ γ ( 4.9 ) δ x 2 u = 1 h 1 2 [ u i − 1 , j − 2 u i j + u i + 1 , j ] δ y 2 u = 1 h 2 2 [ u i , j − 1 − 2 u i j + u i , j + 1 ] \left\{ \begin{aligned} &-(\delta_x^2 u + \delta_y^2 u) = f(x_i, y_j) && (i, j) \in \omega && (4.8) \\ &u_{ij} = \varphi(x_i, y_j) && (i, j) \in \gamma && (4.9) \end{aligned} \right. \\ \\ \delta_x^2u = \frac{1}{h_1^2} \left[ u_{i-1,j} - 2u_{ij} + u_{i+1, j} \right] \\ \delta_y^2u = \frac{1}{h_2^2} \left[ u_{i,j-1} - 2u_{ij} + u_{i, j+1} \right] \\ {(δx2u+δy2u)=f(xi,yj)uij=φ(xi,yj)(i,j)ω(i,j)γ(4.8)(4.9)δx2u=h121[ui1,j2uij+ui+1,j]δy2u=h221[ui,j12uij+ui,j+1]

U i j = u ( x i , y j ) U_{ij} = u(x_i, y_j) Uij=u(xi,yj),而 u i j u_{ij} uij U i j U_{ij} Uij 的近似

其截断误差如下
R i j = − 1 h 1 2 [ u ( x i − 1 , y j ) − 2 u ( x i , y j ) + u ( x i + 1 , y j ) ] − 1 h 2 2 [ u ( x i , y j − 1 ) − 2 u ( x i , y j ) + u ( x i , y j + 1 ) ] − f ( x i , y j ) R_{ij} = -\frac{1}{h_1^2}\left[ u(x_{i-1}, y_j) - 2u(x_i, y_j) + u(x_{i+1}, y_j) \right] - \frac{1}{h_2^2}\left[ u(x_i, y_{j-1}) - 2u(x_i, y_j) + u(x_i, y_{j+1}) \right] - f(x_i, y_j) Rij=h121[u(xi1,yj)2u(xi,yj)+u(xi+1,yj)]h221[u(xi,yj1)2u(xi,yj)+u(xi,yj+1)]f(xi,yj)

  • 差分格式 ( 4.8 ) − ( 4.9 ) (4.8)-(4.9) (4.8)(4.9) 存在唯一解
  • { u ( x , y ) ∣ a ≤ x ≤ b , c ≤ y ≤ d } \{ u(x, y)|a \le x \le b, c \le y \le d \} {u(x,y)axb,cyd} 是定解问题 ( 4.1 ) − ( 4.2 ) (4.1)-(4.2) (4.1)(4.2) 的解, { u i j ∣ 0 ≤ i ≤ m , 0 ≤ j ≤ n } \{ u_{ij}| 0 \le i \le m, 0 \le j \le n \} {uij0im,0jn} 为差分格式 ( 4.8 ) − ( 4.9 ) (4.8)-(4.9) (4.8)(4.9) 的解,则有

max ⁡ ( i , j ) ∈ ω ∣ u ( x i , y j ) − u i j ∣ ≤ M 4 48 [ ( b − a 2 ) 2 + ( d − c 2 ) 2 ] ( h 1 2 + h 2 2 ) M 4 = max ⁡ { max ⁡ ( x , y ) ∈ Ω ‾ ∣ ∂ 4 u ( x , y ) ∂ x 4 ∣ , max ⁡ ( x , y ) ∈ Ω ‾ ∣ ∂ 4 u ( x , y ) ∂ y 4 ∣ } \begin{aligned} &\max_{(i, j) \in \omega} \big| u(x_i, y_j) - u_{ij} \big| \le \frac{M_4}{48} \left[ (\frac{b-a}{2})^2 + (\frac{d-c}{2})^2 \right](h_1^2 + h_2^2) \\\\ &M_4 = \max\left\{ \max_{(x, y) \in \overline{\Omega}}\bigg|\frac{\partial^4u(x, y)}{\partial x^4}\bigg|, \max_{(x, y) \in \overline{\Omega}}\bigg|\frac{\partial^4u(x, y)}{\partial y^4}\bigg| \right\} \end{aligned} (i,j)ωmaxu(xi,yj)uij48M4[(2ba)2+(2dc)2](h12+h22)M4=max{(x,y)Ωmaxx44u(x,y),(x,y)Ωmaxy44u(x,y)}

  • 当步长 h 1 h_1 h1 h 2 h_2 h2 同时缩小到原来的 1 2 \frac{1}{2} 21 时,最大误差约缩小到原来的 1 4 \frac{1}{4} 41
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值