偏微分方程式ソルバ
• numol(x_endpts, xpts, t_endpts, tpts, num_pde, num_pae, pde_func, pinit, bc_func)
pde_func の 1 次元の偏微分方程式 (PDE) の解を含む [xpts x tpts] 行列を返します。各列は次元空間の解を 1 つずつ表します。連立方程式では、それぞれの関数の解が横に追加されます。したがって、解の行列は、常に xpts 行 tpts * (num_pde + num_pae) 列になります。線分割法を使って解は求められます。
引数
• x_endpts, t_endpts は、積分区間の実数の両終点を示す 2 成分の列ベクトルです。
• xpts, tpts は、積分区間で解を近似する点の数を示す整数です。
• num_pde, num_pae は、それぞれ偏微分方程式と代数方程式 (PAE) の数を示す整数です。num_pde は 1 以上、num_pae は 0 以上でなければなりません。
• pde_func は x、t、u、ux、uxx のベクトル関数です。長さは (num_pde + num_pae) です。偏微分方程式/代数方程式の右辺を含み、左辺はすべて ut と見なされます。解 u は、関数のベクトルと見なされます。
連立偏微分方程式を解く場合、pde_func の各行の各 u は、インデックス演算子とリテラル添字演算子を使用した添字によって定義されます。たとえば、u[0 は連立方程式の最初の関数を示し、ux[1 は、連立方程式の 2 番目の関数の 1 次導関数を示します。
• pinit は x のベクトル関数です。長さは (num_pde + num_pae) で、連立方程式の各関数の初期条件を含みます。
• bc_func は num_pde * 3 の行列です。行の形式は次のとおりです。
ディリクレ境界条件の場合
|
[bc_left(t)
|
bc_right(t)
|
"D"]
|
または
ノイマン境界条件の場合
|
[bc_left(t)
|
bc_right(t)
|
"N"]
|
◦ 行に対応する偏微分方程式が、2 次導関数を含むときは、左と右の両方の境界条件が必要です。
◦ 特定の偏微分方程式に、1 次偏導関数だけがある場合は、片方の境界条件の関数を "NA" にし、その行の最後は常に "D." にします。
◦ どれかひとつの方程式に偏導関数がない場合は、(("NA" "NA" "D")) と指定します。対応する行が無視されます。
numol による偏微分方程式の求解の詳細については、このビデオをご覧ください。
追加情報
• 代数方程式を制約条件として使えます。例: x についての方程式、0 = u2(x) + v2(x) − w(x)。
• 一意に決まる解を求めるには、境界条件の関数の数が、各偏微分方程式の導関数の次数と同じでなければなりません。
• numol 関数は、双曲線型偏微分方程式と放物線型偏微分方程式だけを解くことができます。ポアソンの方程式などの楕円型方程式を解くには、
relaxまたは
multigridを使用してください。