(1)偏微分方程的類型(二階)
a ∂ 2 u ∂ x 2 + b ∂ 2 u ∂ y ∂ x + c ∂ 2 u ∂ x 2 + d ∂ u ∂ x + e ∂ u ∂ y + f u + g = 0 a\frac{\partial^2u}{\partial x^2}+b\frac{\partial^2u}{\partial y\partial x}+c\frac{\partial^2u}{\partial x^2}+d\frac{\partial u}{\partial x}+e\frac{\partial u}{\partial y}+fu+g=0 a∂x2∂2u+b∂y∂x∂2u+c∂x2∂2u+d∂x∂u+e∂y∂u+fu+g=0
- b 2 − 4 a c < 0 b^2-4ac<0 b2−4ac<0 橢圓
- b 2 − 4 a c = 0 b^2-4ac=0 b2−4ac=0 拋物線
- b 2 − 4 a c < 0 b^2-4ac<0 b2−4ac<0 雙曲線
(2)拋物線型
1.顯式法
- 求解思想:通過差分的方法一排一排向上推。
- 做劃分並代入方程 u i , j + 1 − u i , j k = u i + 1 , j − 2 u i , j + u i − 1 , j h 2 ( Δ x = h , Δ t = k ) \frac{u_{i,j+1}-u_{i,j}}{k}=\frac{u_{i+1,j}-2u_{i,j}+u_{i-1,j}}{h^2}~~(\Delta x=h,\Delta t=k) kui,j+1−ui,j=h2ui+1,j−2ui,j+ui−1,j (Δx=h,Δt=k)
- 通過化簡得到 u i , j + 1 = r u i − 1 , j + ( 1 − 2 r ) u i , j + r u i + 1 , j ( r = k h 2 ) u_{i,j+1}=ru_{i-1,j}+(1-2r)u_{i,j}+ru_{i+1,j}~~(r=\frac{k}{h^2}) ui,j+1=rui−1,j+(1−2r)ui,j+rui+1,j (r=h2k)
- 具體推的步驟大概如下:
- 由於已知 u ( x , 0 ) = f ( x ) u(x,0)=f(x) u(x,0)=f(x),因此相當於知道 u 0 , 0 , u 1 , 0 , u 2 , 0 … u_{0,0},u_{1,0},u_{2,0}\dots u0,0,u1,0,u2,0…。
- 通過上面的公式就可以推出來 u 1 , 1 , u 2 , 1 , u 3 , 1 … u_{1,1},u_{2,1},u_{3,1}\dots u1,1,u2,1,u3,1…,注意由於已知左邊界和右邊界,因此 u 0 , 1 u_{0,1} u0,1也知道,所以第二排就可以全部推出來。
- 通過上面的方式可以求出區域內全部的數值解。
2.Crank-Nicholson隱式算法
- 求解思想:也是一排一排向上推,但是這次是使用線性方程組一次性求出一排。
- 這裏採用相同的劃分方式,但是代入不同的差分方程
- 具體推的步驟大概如下:
- 由於已知 u ( x , 0 ) = f ( x ) u(x,0)=f(x) u(x,0)=f(x),因此相當於知道 u 0 , 0 , u 1 , 0 , u 2 , 0 … u_{0,0},u_{1,0},u_{2,0}\dots u0,0,u1,0,u2,0…。
- 通過上面的公式就可以推出來方程 − r u i − 1 , 1 + ( 2 + 2 r ) u i , 1 − r u i + 1 , 1 = c ( c 是 一 個 常 數 ) -ru_{i-1,1}+(2+2r)u_{i,1}-ru_{i+1,1}=c~~~(c是一個常數) −rui−1,1+(2+2r)ui,1−rui+1,1=c (c是一個常數),注意由於已知左邊界和右邊界,所以這個其實就轉化成在一維上的差分問題,最後列出全部的方程構成方程組求解即可。
- 通過上面的方式可以求出區域內全部的數值解。
- 一個例子:
- 做劃分並且代入差分方程
取 k = 0.01 , h = 0.1 k=0.01,h=0.1 k=0.01,h=0.1
− u i − 1 , j + 1 + 4 u i , j + 1 − u i + 1 , j + 1 = u i − 1 , j + u i + 1 , j -u_{i-1,j+1}+4u_{i,j+1}-u_{i+1,j+1}=u_{i-1,j}+u_{i+1,j} −ui−1,j+1+4ui,j+1−ui+1,j+1=ui−1,j+ui+1,j
- 進行求解(這裏利用了對稱性,在 x = 0.5 x=0.5 x=0.5 兩邊是對稱的,將 j = 0 j=0 j=0隱去,並根據對稱性將 u 6 u_6 u6替換成 u 4 u_4 u4)
(3)雙曲線型
- 得到的差分方程爲 ( r = k h r=\frac{k}{h} r=hk注意和之前的定義不同):
- 劃分需要滿足一定的條件 k h ≤ 1 c \frac{k}{h}\le\frac{1}c{} hk≤c1
- 具體求解按照之前類似的方法即可。
(4)橢圓型
- 得到的差分方程爲 (這裏取 k k k和 h h h相等):
- 求解
- 可以採用類似之前的隱式或者顯式方法求解。
- 可以採用迭代法求解,比如雅克比迭代,轉換成下面的迭代式