函數 > 求解與最佳化 > 微分方程式求解器 > 偏微分方程式求解器
偏微分方程式求解器
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) 之 xtuuxuxx 的向量函數。該引數包含 PDE/PAE 的右側,並假設左側皆為 ut。解 u 假設為函數的向量。
若使用 PDE 的系統,pde_func 每一列中的每個 u 會由使用索引運算子的下標,以及文字下標運算子所定義。例如,u[0 代表系統中的第一個函數,而 ux[1 代表系統中第二個函數的一階導數。
pinit 是長度 (num_pde + num_pae) 之 x 的函數向量,內含系統中每個函數的初始條件。
bc_funcnum_pde * 3 矩陣,內含以下列形式表示的列:
若是狄里克雷邊界條件
[bc_left(t)
bc_right(t)
"D"]
若是紐曼邊界條件
[bc_left(t)
bc_right(t)
"N"]
倘若對應列的 PDE 包含第二個偏導數,則需要左右條件。
若特定 PDE 中僅出現一階偏導數,則應以 "NA" 取代其中一個邊界條件函數,且列中最後一個項目一律為 "D."
若系統中特定方程式內沒有任何偏導數,則會略過矩陣內的該列,並可填入 ("NA" "NA" "D")
其他資訊
可使用代數限制,例如,所有 x 可使用 0 = u2(x) + v2(x) − w(x)
所需邊界函數的數量符合每個 PDE 的空間導數階,可保證求得唯一解。
僅雙曲線與拋物線 PDE 可使用 numol 求解。若是橢圓方程式 (例如普松方程式),則使用 relaxmultigrid
這是否有幫助?