20. 偏微分方程的数值解
定解问题
各种物理性质的定常过程都可用椭圆型方程描述
Δ
u
=
∂
2
u
∂
x
2
+
∂
2
u
∂
y
2
=
f
(
x
,
y
)
,
\Delta u=\frac{\partial^2u}{\partial x^2}+\frac{\partial^2u}{\partial y^2}=f(x,y),
Δu=∂x2∂2u+∂y2∂2u=f(x,y),
当
f
(
x
,
y
)
=
0
f(x,y)=0
f(x,y)=0 时,即拉普拉斯方程
Δ
u
=
∂
2
u
∂
x
2
+
∂
2
u
∂
y
2
=
0.
\Delta u=\frac{\partial^2u}{\partial x^2}+\frac{\partial^2u}{\partial y^2}=0.
Δu=∂x2∂2u+∂y2∂2u=0.
第一边值问题
{
∂
2
u
∂
x
2
+
∂
2
u
∂
y
2
=
f
(
x
,
y
)
,
(
x
,
y
)
∈
Ω
,
u
(
x
,
y
)
∣
(
x
,
y
)
∈
Γ
=
φ
(
x
,
y
)
,
Γ
=
∂
Ω
.
\left\{\begin{aligned} &\frac{\partial^2u}{\partial x^2}+\frac{\partial^2u}{\partial y^2}=f(x,y),(x,y)\in\Omega,\\ &u(x,y)|_{(x,y)\in\Gamma}=\varphi(x,y),\Gamma=\partial\Omega. \end{aligned}\right.
⎩⎪⎨⎪⎧∂x2∂2u+∂y2∂2u=f(x,y),(x,y)∈Ω,u(x,y)∣(x,y)∈Γ=φ(x,y),Γ=∂Ω.
其中
Ω
\Omega
Ω 为以
Γ
\Gamma
Γ 为边界的有界区域,
Γ
\Gamma
Γ 为分段光滑曲线,
Ω
∪
Γ
\Omega\cup\Gamma
Ω∪Γ 称定解区域,
f
(
x
,
y
)
,
φ
(
x
,
y
)
f(x,y),\varphi(x,y)
f(x,y),φ(x,y) 分别为
Ω
,
Γ
\Omega,\Gamma
Ω,Γ 上的已知连续函数。
差分解法
椭圆型
考虑第一边值问题
{
∂
2
u
∂
x
2
+
∂
2
u
∂
y
2
=
f
(
x
,
y
)
,
(
x
,
y
)
∈
Ω
,
u
(
x
,
y
)
∣
(
x
,
y
)
∈
Γ
=
φ
(
x
,
y
)
,
Γ
=
∂
Ω
.
\left\{\begin{aligned} &\frac{\partial^2u}{\partial x^2}+\frac{\partial^2u}{\partial y^2}=f(x,y),(x,y)\in\Omega,\\ &u(x,y)|_{(x,y)\in\Gamma}=\varphi(x,y),\Gamma=\partial\Omega. \end{aligned}\right.
⎩⎪⎨⎪⎧∂x2∂2u+∂y2∂2u=f(x,y),(x,y)∈Ω,u(x,y)∣(x,y)∈Γ=φ(x,y),Γ=∂Ω.
取
h
,
τ
h,\tau
h,τ 分别为
x
,
y
x,y
x,y 方向的步长,记
(
k
,
j
)
=
(
x
k
,
y
j
)
,
u
(
k
,
j
)
=
u
(
x
k
,
y
j
)
,
f
k
,
j
=
f
(
x
k
,
y
j
)
,
(k,j)=(x_k,y_j),u(k,j)=u(x_k,y_j),f_{k,j}=f(x_k,y_j),
(k,j)=(xk,yj),u(k,j)=u(xk,yj),fk,j=f(xk,yj),
则由二阶差商公式
∂
2
u
∂
x
2
∣
k
,
j
=
u
(
k
+
1
,
j
)
−
2
u
(
k
,
j
)
+
u
(
k
−
1
,
j
)
h
2
+
O
(
h
2
)
,
\frac{\partial^2u}{\partial x^2}|_{k,j}=\frac{u(k+1,j)-2u(k,j)+u(k-1,j)}{h^2}+O(h^2),
∂x2∂2u∣k,j=h2u(k+1,j)−2u(k,j)+u(k−1,j)+O(h2),
∂ 2 u ∂ y 2 ∣ k , j = u ( k , j + 1 ) − 2 u ( k , j ) + u ( k , j − 1 ) τ 2 + O ( τ 2 ) \frac{\partial^2u}{\partial y^2}|_{k,j}=\frac{u(k,j+1)-2u(k,j)+u(k,j-1)}{\tau^2}+O(\tau^2) ∂y2∂2u∣k,j=τ2u(k,j+1)−2u(k,j)+u(k,j−1)+O(τ2)
于是有
u
(
k
+
1
,
j
)
−
2
u
(
k
,
j
)
+
u
(
k
−
1
,
j
)
h
2
\frac{u(k+1,j)-2u(k,j)+u(k-1,j)}{h^2}
h2u(k+1,j)−2u(k,j)+u(k−1,j)
+ u ( k , j + 1 ) − 2 u ( k , j ) + u ( k , j − 1 ) τ 2 +\frac{u(k,j+1)-2u(k,j)+u(k,j-1)}{\tau^2} +τ2u(k,j+1)−2u(k,j)+u(k,j−1)
= f k , j + O ( h 2 + τ 2 ) . =f_{k,j}+O(h^2+\tau^2). =fk,j+O(h2+τ2).
略去
O
(
h
2
+
τ
2
)
O(h^2+\tau^2)
O(h2+τ2) 得近似的差分方程
u
k
+
1
,
j
−
2
u
k
,
j
+
u
k
−
1
,
j
h
2
+
u
k
,
j
+
1
−
2
u
k
,
j
+
u
k
,
j
−
1
τ
2
=
f
k
,
j
.
\frac{u_{k+1,j}-2u_{k,j}+u_{k-1,j}}{h^2}+\frac{u_{k,j+1}-2u_{k,j}+u_{k,j-1}}{\tau^2}=f_{k,j}.
h2uk+1,j−2uk,j+uk−1,j+τ2uk,j+1−2uk,j+uk,j−1=fk,j.
称五点菱形格式。
实际计算时常取
h
=
τ
h=\tau
h=τ,得
1
h
2
(
u
k
+
1
,
j
+
u
k
−
1
,
j
+
u
k
,
j
+
1
+
u
k
,
j
−
1
−
4
u
k
,
j
)
=
f
k
,
j
,
\frac{1}{h^2}(u_{k+1,j}+u_{k-1,j}+u_{k,j+1}+u_{k,j-1}-4u_{k,j})=f_{k,j},
h21(uk+1,j+uk−1,j+uk,j+1+uk,j−1−4uk,j)=fk,j,
记
1
h
2
♢
u
k
,
j
=
f
k
,
j
,
\frac{1}{h^2}\diamondsuit u_{k,j}=f_{k,j},
h21♢uk,j=fk,j,
其中
♢
u
k
,
j
=
u
k
+
1
,
j
+
u
k
−
1
,
j
+
u
k
,
j
+
1
+
u
k
,
j
−
1
−
4
u
k
,
j
.
\diamondsuit u_{k,j}=u_{k+1,j}+u_{k-1,j}+u_{k,j+1}+u_{k,j-1}-4u_{k,j}.
♢uk,j=uk+1,j+uk−1,j+uk,j+1+uk,j−1−4uk,j.
双曲型
考虑
∂
2
u
∂
t
2
=
a
2
∂
2
u
∂
x
2
.
\frac{\partial^2u}{\partial t^2}=a^2\frac{\partial^2u}{\partial x^2}.
∂t2∂2u=a2∂x2∂2u.
令
v
1
=
∂
u
∂
t
,
v
2
=
∂
u
∂
x
v_1=\frac{\partial u}{\partial t},v_2=\frac{\partial u}{\partial x}
v1=∂t∂u,v2=∂x∂u,则有
{
∂
v
1
∂
t
=
a
2
∂
v
2
∂
x
,
∂
v
2
∂
t
=
a
2
∂
v
1
∂
x
.
\left\{\begin{aligned} &\frac{\partial v_1}{\partial t}=a^2\frac{\partial v_2}{\partial x},\\ &\frac{\partial v_2}{\partial t}=a^2\frac{\partial v_1}{\partial x}. \end{aligned}\right.
⎩⎪⎪⎨⎪⎪⎧∂t∂v1=a2∂x∂v2,∂t∂v2=a2∂x∂v1.
记
v
=
(
v
1
,
v
2
)
T
v=(v_1,v_2)^T
v=(v1,v2)T,则有
∂
v
∂
t
=
(
0
a
2
1
0
)
∂
v
∂
x
=
A
∂
v
∂
x
.
\frac{\partial v}{\partial t}=\begin{pmatrix} 0&a^2\\ 1&0 \end{pmatrix}\frac{\partial v}{\partial x}=A\frac{\partial v}{\partial x}.
∂t∂v=(01a20)∂x∂v=A∂x∂v.
存在矩阵
P
P
P,使得
P
A
P
−
1
=
(
a
0
0
−
a
)
=
Λ
.
PAP^{-1}=\begin{pmatrix} a&0\\ 0&-a \end{pmatrix}=\Lambda.
PAP−1=(a00−a)=Λ.
作变换
w
=
P
v
=
(
w
1
,
w
2
)
T
w=Pv=(w_1,w_2)^T
w=Pv=(w1,w2)T,则有
∂
w
∂
t
=
Λ
∂
w
∂
x
.
\frac{\partial w}{\partial t}=\Lambda\frac{\partial w}{\partial x}.
∂t∂w=Λ∂x∂w.
而对于一阶双曲型方程,取
x
,
t
x,t
x,t 方向步长分别为
h
,
τ
h,\tau
h,τ,则有
u
k
,
j
+
1
−
u
k
,
j
τ
+
a
u
k
+
1
,
j
−
u
k
,
j
h
=
0
,
\frac{u_{k,j+1}-u_{k,j}}{\tau}+a\frac{u_{k+1,j}-u_{k,j}}{h}=0,
τuk,j+1−uk,j+ahuk+1,j−uk,j=0,
u k , j + 1 − u k , j τ + a u k , j − u k − 1 , j h = 0 , \frac{u_{k,j+1}-u_{k,j}}{\tau}+a\frac{u_{k,j}-u_{k-1,j}}{h}=0, τuk,j+1−uk,j+ahuk,j−uk−1,j=0,
u k , j + 1 − u k , j τ + a u k + 1 , j − u k − 1 , j 2 h = 0. \frac{u_{k,j+1}-u_{k,j}}{\tau}+a\frac{u_{k+1,j}-u_{k-1,j}}{2h}=0. τuk,j+1−uk,j+a2huk+1,j−uk−1,j=0.