偏微分方程式求解器
• numol(x_endpts, xpts, t_endpts, tpts, num_pde, num_pae, pde_func, pinit, bc_func)
傳回 [xpts x tpts] 矩陣,內含一維偏微分方程式 (PDE) 在 pde_func 中的解。每欄代表一段求解時間內針對一維空間所產生的解。就方程式系統而言,每個函數的解均會水平附加,使矩陣一律含有 xpts 列與 tpts * (num_pde + num_pae) 欄。使用線性數值方法即可求得解。
引數
• x_endpts, t_endpts 為雙元素欄向量,指定積分範圍的實數端點。
• xpts, tpts 為近似解之積分範圍內的整數點。
• num_pde, num_pae 分別是偏微分方程式與偏代數方程式 (PAE) 的整數。num_pde 必須至少是 1,num_pae 可以大於或等於 0。
• pde_func 是長度 (num_pde + num_pae) 之 x、t、u、ux 及 uxx 的向量函數。該引數包含 PDE/PAE 的右側,並假設左側皆為 ut。解 u 假設為函數的向量。
若使用 PDE 的系統,pde_func 每一列中的每個 u 會由使用索引運算子的下標,以及文字下標運算子所定義。例如,u[0 代表系統中的第一個函數,而 ux[1 代表系統中第二個函數的一階導數。
• pinit 是長度 (num_pde + num_pae) 之 x 的函數向量,內含系統中每個函數的初始條件。
• bc_func 是 num_pde * 3 矩陣,內含以下列形式表示的列:
若是狄里克雷邊界條件
|
[bc_left(t)
|
bc_right(t)
|
"D"]
|
或
若是紐曼邊界條件
|
[bc_left(t)
|
bc_right(t)
|
"N"]
|
◦ 倘若對應列的 PDE 包含第二個偏導數,則需要左右條件。
◦ 若特定 PDE 中僅出現一階偏導數,則應以 "NA" 取代其中一個邊界條件函數,且列中最後一個項目一律為 "D."。
◦ 若系統中特定方程式內沒有任何偏導數,則會略過矩陣內的該列,並可填入 ("NA" "NA" "D")。
若要深入瞭解如何透過 numol 求解篇微分方程式,請觀賞此影片:
其他資訊
• 可使用代數限制,例如,所有 x 可使用 0 = u2(x) + v2(x) − w(x)。
• 所需邊界函數的數量符合每個 PDE 的空間導數階,可保證求得唯一解。