テイラー多項式から差分商を導出するn 回微分可能な関数に対して、テイラーの定理 により、テイラー級数 展開は次のように与えられる。 f ( x 0 + h ) = f ( x 0 ) + f ′ ( x 0 ) 1 ! h + f ( 2 ) ( x 0 ) 2 ! h 2 + ⋯ + f ( n ) ( x 0 ) n ! h n + R n ( x ) 、 {\displaystyle f(x_{0}+h)=f(x_{0})+{\frac {f'(x_{0})}{1!}}h+{\frac {f^{(2)}(x_{0})}{2!}}h^{2}+\cdots +{\frac {f^{(n)}(x_{0})}{n!}}h^{n}+R_{n}(x),}
ここで、n ! はn の階乗 を表し、R n ( x ) は剰余項であり、 n 次テイラー多項式と元の関数との差を表します。
関数f の一次導関数の近似値を導出する手順は次のとおりです。まず、テイラー多項式と剰余項を切り捨てます。 f ( x 0 + h ) = f ( x 0 ) + f ′ ( x 0 ) h + R 1 ( x ) 。 {\displaystyle f(x_{0}+h)=f(x_{0})+f'(x_{0})h+R_{1}(x).} h で割ると次のようになります。 f ( x 0 + h ) h = f ( x 0 ) h + f ′ ( x 0 ) + R 1 ( x ) h {\displaystyle {f(x_{0}+h) \over h}={f(x_{0}) \over h}+f'(x_{0})+{R_{1}(x) \over h}} 解決するf ′ ( x 0 ) {\displaystyle f'(x_{0})} : f ′ ( x 0 ) = f ( x 0 + h ) − f ( x 0 ) h − R 1 ( x ) h 。 {\displaystyle f'(x_{0})={f(x_{0}+h)-f(x_{0}) \over h}-{R_{1}(x) \over h}.}
と仮定するとR 1 ( x ) {\displaystyle R_{1}(x)} が十分に小さい場合、 f の 1 階微分の近似値は次のようになります。 f ′ ( x 0 ) ≈ f ( x 0 + h ) − f ( x 0 ) h 。 {\displaystyle f'(x_{0})\approx {f(x_{0}+h)-f(x_{0}) \over h}.}
これは導関数の定義と似ており、導関数の定義は次のとおりです。 f ′ ( x 0 ) = リム h → 0 f ( x 0 + h ) − f ( x 0 ) h 。 {\displaystyle f'(x_{0})=\lim _{h\to 0}{\frac {f(x_{0}+h)-f(x_{0})}{h}}.} ただし、ゼロへの制限を除く(このメソッドはこれにちなんで名付けられている)。
例:熱方程式 一次元における正規化された熱方程式を、同次 ディリクレ境界条件 の下で考察する。
{ U t = U x x U ( 0 、 t ) = U ( 1 、 t ) = 0 (境界条件) U ( x 、 0 ) = U 0 ( x ) (初期状態) {\displaystyle {\begin{cases}U_{t}=U_{xx}\\U(0,t)=U(1,t)=0&{\text{(boundary condition)}}\\U(x,0)=U_{0}(x)&{\text{(initial condition)}}\end{cases}}}
この方程式を数値的に解く方法の一つは、すべての導関数を有限差分で近似することです。まず、メッシュを使用して空間領域を分割します。x 0 、 … 、 x J {\displaystyle x_{0},\dots ,x_{J}} そして時間とともにメッシュを使用するt 0 、 … 、 t N {\displaystyle t_{0},\dots ,t_{N}} 空間的にも時間的にも均一な分割を仮定すると、連続する2つの空間点間の差はh 、連続する2つの時間点間の差は k となる。
u ( x j 、 t n ) = u j n {\displaystyle u(x_{j},t_{n})=u_{j}^{n}}
は、数値近似を表します。u ( x j 、 t n ) 。 {\displaystyle u(x_{j},t_{n}).}
明示的方法 熱方程式の最も一般的な陽解法のためのテンプレート 。 時点の フォワード差分 を使用するt n {\displaystyle t_{n}} そして、位置における空間微分に対する2次中心差分 x j {\displaystyle x_{j}} (FTCS )は漸化式を与える。
u j n + 1 − u j n k = u j + 1 n − 2 u j n + u j − 1 n h 2 。 {\displaystyle {\frac {u_{j}^{n+1}-u_{j}^{n}}{k}}={\frac {u_{j+1}^{n}-2u_{j}^{n}+u_{j-1}^{n}}{h^{2}}}.}
これは、一次元熱方程式を解くための 明示的な方法 です。
入手できるu j n + 1 {\displaystyle u_{j}^{n+1}} 他の値から次のようにして取得します。
u j n + 1 = ( 1 − 2 r ) u j n + r u j − 1 n + r u j + 1 n {\displaystyle u_{j}^{n+1}=(1-2r)u_{j}^{n}+ru_{j-1}^{n}+ru_{j+1}^{n}}
どこr = k / h 2 。 {\displaystyle r=k/h^{2}.}
したがって、この漸化式を用い、時刻n における値が分かれば、時刻n + 1における対応する値を求めることができる。u 0 n {\displaystyle u_{0}^{n}} そしてu J n {\displaystyle u_{J}^{n}} は境界条件に置き換える必要があります。この例では、両方とも0です。
この明示的な方法は、次の場合に数値的に安定 かつ収束することが知られています。 r ≤ 1 / 2 {\displaystyle r\leq 1/2} [ 7 ] 数値誤差は時間ステップと空間ステップの二乗に比例する 。Δ u = O ( k ) + O ( h 2 ) {\displaystyle \Delta u=O(k)+O(h^{2})}
暗黙法 暗黙的メソッドステンシル。 時刻における 後方差分 を使用するt n + 1 {\displaystyle t_{n+1}} そして、位置における空間微分に対する2次中心差分x j {\displaystyle x_{j}} (逆時間中心空間法「BTCS」)は、以下の漸化式を与える。
u j n + 1 − u j n k = u j + 1 n + 1 − 2 u j n + 1 + u j − 1 n + 1 h 2 。 {\displaystyle {\frac {u_{j}^{n+1}-u_{j}^{n}}{k}}={\frac {u_{j+1}^{n+1}-2u_{j}^{n+1}+u_{j-1}^{n+1}}{h^{2}}}.}
これは、一次元熱方程式を解くための 陰解法 です。
入手できるu j n + 1 {\displaystyle u_{j}^{n+1}} 連立一次方程式を解くことから:
( 1 + 2 r ) u j n + 1 − r u j − 1 n + 1 − r u j + 1 n + 1 = u j n {\displaystyle (1+2r)u_{j}^{n+1}-ru_{j-1}^{n+1}-ru_{j+1}^{n+1}=u_{j}^{n}}
この手法は常に数値的に安定 かつ収束するが、各時間ステップで数値方程式系を解く必要があるため、通常は陽解法よりも計算負荷が高い。誤差は時間ステップに対して線形、空間ステップに対して二次関数的である。 Δ u = O ( k ) + O ( h 2 ) 。 {\displaystyle \Delta u=O(k)+O(h^{2}).}
クランク・ ニコルソン法最後に、時間における中心差分を使用してt n + 1 / 2 {\displaystyle t_{n+1/2}} そして、位置における空間微分に対する2次中心差分x j {\displaystyle x_{j}} (「CTCS」)は、次の漸化式を与える。
u j n + 1 − u j n k = 1 2 ( u j + 1 n + 1 − 2 u j n + 1 + u j − 1 n + 1 h 2 + u j + 1 n − 2 u j n + u j − 1 n h 2 ) 。 {\displaystyle {\frac {u_{j}^{n+1}-u_{j}^{n}}{k}}={\frac {1}{2}}\left({\frac {u_{j+1}^{n+1}-2u_{j}^{n+1}+u_{j-1}^{n+1}}{h^{2}}}+{\frac {u_{j+1}^{n}-2u_{j}^{n}+u_{j-1}^{n}}{h^{2}}}\right).}
この式はクランク・ニコルソン法 として知られています。
クランク– ニコルソンのステンシル。 入手できるu j n + 1 {\displaystyle u_{j}^{n+1}} 連立一次方程式を解くことから:
( 2 + 2 r ) u j n + 1 − r u j − 1 n + 1 − r u j + 1 n + 1 = ( 2 − 2 r ) u j n + r u j − 1 n + r u j + 1 n {\displaystyle (2+2r)u_{j}^{n+1}-ru_{j-1}^{n+1}-ru_{j+1}^{n+1}=(2-2r)u_{j}^{n}+ru_{j-1}^{n}+ru_{j+1}^{n}}
この手法は常に数値的に安定 かつ収束するが、各時間ステップで数値方程式系を解く必要があるため、通常は計算負荷が高くなる。誤差は時間ステップと空間ステップの両方に対して2乗に比例する。 Δ u = O ( k 2 ) + O ( h 2 ) 。 {\displaystyle \Delta u=O(k^{2})+O(h^{2}).}
比較 要約すると、通常、クランク・ ニコルソン法は 小さな時間ステップにおいて最も精度の高い手法です。大きな時間ステップでは、計算負荷が少ないため、陰解法の方が適しています。陽解法は精度が最も低く不安定になる場合もありますが、実装が最も容易で、数値計算負荷も最も低くなっています。
以下に例を示します。下の図は、上記の方法で熱方程式を近似して得られた解を示しています。
U t = α U x x 、 α = 1 π 2 、 {\displaystyle U_{t}=\alpha U_{xx},\quad \alpha ={\frac {1}{\pi ^{2}}},}
境界条件付き
U ( 0 、 t ) = U ( 1 、 t ) = 0. {\displaystyle U(0,t)=U(1,t)=0.}
正確な解は
U ( x 、 t ) = 1 π 2 e − t 罪 ( π x ) 。 {\displaystyle U(x,t)={\frac {1}{\pi ^{2}}}e^{-t}\sin(\pi x).}
例:ラプラス演算子 (連続)ラプラス 演算子n {\displaystyle n} -次元は次のように与えられますΔ u ( x ) = ∑ 私 = 1 n ∂ 私 2 u ( x ) {\displaystyle \Delta u(x)=\sum _{i=1}^{n}\partial _{i}^{2}u(x)} 離散ラプラス演算子Δ h u {\displaystyle \Delta _{h}u} 次元によって異なるn {\displaystyle n} 。
1次元では、ラプラス演算子は次のように近似される。 Δ u ( x ) = u 」 ( x ) ≈ u ( x − h ) − 2 u ( x ) + u ( x + h ) h 2 =: Δ h u ( x ) 。 {\displaystyle \Delta u(x)=u''(x)\approx {\frac {u(x-h)-2u(x)+u(x+h)}{h^{2}}}=:\Delta _{h}u(x)\,.} この近似は通常、次のステンシルで表現されます。 Δ h = 1 h 2 [ 1 − 2 1 ] {\displaystyle \Delta _{h}={\frac {1}{h^{2}}}{\begin{bmatrix}1&-2&1\end{bmatrix}}} これは対称な三重対角行列を表します。等間隔のグリッドの場合、トープレッツ行列 が得られます。
2次元の場合、より一般的なn次元の場合のすべての特徴が明らかになります。各2階偏微分は、1次元の場合と同様に近似する必要があります。 Δ u ( x 、 y ) = u x x ( x 、 y ) + u y y ( x 、 y ) ≈ u ( x − h 、 y ) − 2 u ( x 、 y ) + u ( x + h 、 y ) h 2 + u ( x 、 y − h ) − 2 u ( x 、 y ) + u ( x 、 y + h ) h 2 = u ( x − h 、 y ) + u ( x + h 、 y ) − 4 u ( x 、 y ) + u ( x 、 y − h ) + u ( x 、 y + h ) h 2 =: Δ h u ( x 、 y ) 、 {\displaystyle {\begin{aligned}\Delta u(x,y)&=u_{xx}(x,y)+u_{yy}(x,y)\\&\approx {\frac {u(x-h,y)-2u(x,y)+u(x+h,y)}{h^{2}}}+{\frac {u(x,y-h)-2u(x,y)+u(x,y+h)}{h^{2}}}\\&={\frac {u(x-h,y)+u(x+h,y)-4u(x,y)+u(x,y-h)+u(x,y+h)}{h^{2}}}\\&=:\Delta _{h}u(x,y)\,,\end{aligned}}} これは通常、次のステンシルで示されます Δ h = 1 h 2 [ 1 1 − 4 1 1 ] 。 {\displaystyle \Delta _{h}={\frac {1}{h^{2}}}{\begin{bmatrix}&1\\1&-4&1\\&1\end{bmatrix}}\,.}
一貫性 上記の近似の一貫性は、次のような非常に規則的な関数に対して示すことができる。u ∈ C 4 ( Ω ) {\displaystyle u\in C^{4}(\Omega )} その声明は Δ u − Δ h u = O ( h 2 ) 。 {\displaystyle \Delta u-\Delta _{h}u={\mathcal {O}}(h^{2})\,.}
これを証明するには、 3次までのテイラー級数 展開を離散ラプラス演算子に代入する必要がある。
不動産
サブハーモニック 連続サブハーモニック関数 と同様に、有限差分近似のためのサブハーモニック関数 を定義することができる。u h {\displaystyle u_{h}} − Δ h u h ≤ 0 。 {\displaystyle -\Delta _{h}u_{h}\leq 0\,.}
平均値 正型 の一般的なステンシルは 次のように 定義できます。[ α N α W − α C α E α S ] 、 α 私 > 0 、 α C = ∑ 私 ∈ { N 、 E 、 S 、 W } α 私 。 {\displaystyle {\begin{bmatrix}&\alpha _{N}\\\alpha _{W}&-\alpha _{C}&\alpha _{E}\\&\alpha _{S}\end{bmatrix}}\,,\quad \alpha _{i}>0\,,\quad \alpha _{C}=\sum _{i\in \{N,E,S,W\}}\alpha _{i}\,.}
もしu h {\displaystyle u_{h}} が(離散的)劣調和である場合、次の平均値の性質 が成り立つ。 u h ( x C ) ≤ ∑ 私 ∈ { N 、 E 、 S 、 W } α 私 u h ( x 私 ) ∑ 私 ∈ { N 、 E 、 S 、 W } α 私 、 {\displaystyle u_{h}(x_{C})\leq {\frac {\sum _{i\in \{N,E,S,W\}}\alpha _{i}u_{h}(x_{i})}{\sum _{i\in \{N,E,S,W\}}\alpha _{i}}}\,,} ここで、近似値はグリッド上の点において評価され、ステンシルは正型であると仮定される。
同様の平均値の性質は 、連続的な場合にも成り立つ。
SBP-SAT法 SBP-SAT(部分和 - 同時近似項 )法は、高次の有限差分を用いて適切に定義された線形偏微分方程式を離散化し、境界条件を課すための安定かつ正確な手法である。 [ 8 ] [ 9 ]
この手法は、微分演算子が部分和 特性を示す有限差分法に基づいています。通常、これらの演算子は、内部に中心差分ステンシルを持ち、離散設定での部分積分を模倣するように設計された、慎重に選択された片側境界ステンシルを持つ微分行列で構成されます。SAT手法を使用すると、偏微分方程式の境界条件は弱く課され、境界値は厳密に満たされるのではなく、望ましい条件に向かって「引き寄せられる」ことになります。SAT手法に固有の調整パラメータが適切に選択されていれば、結果として得られる常微分方程式系は、連続偏微分方程式と同様のエネルギー挙動を示し、つまり、非物理的なエネルギー増加は発生しません。これにより、4次ルンゲ・クッタ法のように、虚軸の一部を含む安定領域を持つ積分スキームが使用 される場合、安定性が保証されます。このため、SAT 手法は、例えば高次の微分演算子を使用すると通常は安定しない注入法とは対照的に、高次の有限差分法に境界条件を課す魅力的な方法となります。SAT 項の加法的な定式化により、境界条件を個別の補正項として扱うことで、GPU やその他の最新の高性能アーキテクチャ上でこの手法を効率的に実装できます。これは、境界データを直接注入して境界条件を課す有限差分法とは対照的です。[ 10 ]
参考文献 1 2 Christian Grossmann; Hans-G. Roos ; Martin Stynes (2007). Numerical Treatment of Partial Differential Equations . Springer Science & Business Media. p. 23. ISBN 978-3-540-71584-9 。 ↑ Arieh Iserles (2008).微分方程式 の 数値解析入門 . Cambridge University Press. p. 23. ISBN 9780521734905 。1 2 Hoffman JD; Frankel S (2001). エンジニアと科学者のための数値解析法 . CRC Press、ボカラトン。 1 2 Jaluria Y; Atluri S (1994). "計算熱伝達". Computational Mechanics . 14 (5): 385–386 . Bibcode : 1994CompM..14..385J . doi : 10.1007/BF00377593 . S2CID 119502676 . ↑ Majumdar P (2005). 熱および物質移動の計算方法 (第1 版)。Taylor and Francis、ニューヨーク。 ↑ Smith GD (1985). 偏微分方程式の数値解法:有限差分法 (第3 版). オックスフォード大学出版局. ↑ クランク、J.『拡散の数学 』第2版、オックスフォード、1975年、143ページ。 ↑ Bo Strand (1994). "d/dx の有限差分近似に対する部分和". Journal of Computational Physics . 110 (1): 47–67 . Bibcode : 1994JCoPh.110...47S . doi : 10.1006/jcph.1994.1005 . ↑ Mark H. Carpenter; David I. Gottlieb; Saul S. Abarbanel (1994). "双曲型システムを解く有限差分スキームの時間安定境界条件: 方法論と高次コンパクトスキームへの応用". Journal of Computational Physics . 111 (2): 220–236 . Bibcode : 1994JCoPh.111..220C . doi : 10.1006/jcph.1994.1057 . hdl : 2060/19930013937 . ↑ Chen, Alexandre; Erickson, Brittany A.; Kozdon, Jeremy E.; Choi, Jeewhan (2024). "GPU 上での行列フリー SBP-SAT 有限差分法とマルチグリッド前処理法" . 第 38 回 ACM 国際スーパーコンピューティング会議 (ICS '24) 論文集 . Association for Computing Machinery. doi : 10.1145/3650200.3656614 . ISBN 9798400706103 。
さらに読む KW Morton および DF Mayers、『偏微分方程式の数値解法入門』、 ケンブリッジ大学出版局、2005 年。 Autar Kaw および E. Eric Kalu、『数値解析とその応用』 (2008年)第8.07章には、FDM(常微分方程式用)に関する工学的な入門が簡潔に記述されています。 ジョン・ストライクワーダ (2004).有限差分法と偏微分方程式 (第 2 版). SIAM. ISBN 978-0-89871-639-9 。 Smith, GD (1985),偏微分方程式の数値解法:有限差分法、第3版 、オックスフォード大学出版局 ピーター・オルバー (2013)。偏微分方程式入門 。シュプリンガー。第5章:有限差分。ISBN 978-3-319-02099-0 。 。Randall J. LeVeque 、「常微分方程式および偏微分方程式のための有限差分法」 、SIAM、2007年。セルゲイ・レメシェフスキー、ピョートル・マトゥス、ドミトリー・ポリアコフ(編):「正確な有限差分スキーム」、デ・グリュイテル(2016)。 DOI: https://doi.org/10.1515/9783110491326。 ミハイル・シャシコフ:一般格子上の保存的有限差分法 、CRC Press、ISBN 0-8493-7375-1(1996年)。