注意: このページは実習資料ではありません!
このページははレクチャー資料用の数式の画像を生成するためのページです. ほとんどは式を羅列しているだけです.
\[ x_j = j \Delta x \]
\[ \Delta x = L / m \]
\[ f_j \equiv f(x_j) \]
\[ \left. \frac{d f}{dx} \right|_{j} \equiv \frac{d f}{dx}(x_j) \]
\[ \frac{d f}{d x}(x) \equiv \lim_{h \to 0} \frac{f(x+h) - f(x)}{h} \]
\[ f_{j+1} = f_j + \Delta x \left. \frac{d f}{d x} \right|_j + \frac{\Delta x^2}{2!} \left. \frac{d^2 f}{d x^2} \right|_j + \frac{\Delta x^3}{3!} \left. \frac{d^3 f}{d x^3} \right|_j + \cdots \]
\[ f_{j-1} = f_j - \Delta x \left. \frac{d f}{d x} \right|_j + \frac{\Delta x^2}{2!} \left. \frac{d^2 f}{d x^2} \right|_j - \frac{\Delta x^3}{3!} \left. \frac{d^3 f}{d x^3} \right|_j + \cdots \]
$f_{j+1}$ の式を $\left. \frac{d f}{d x} \right|_j$ の式に書き変えると
\[ \left. \frac{d f}{d x} \right|_{j} = \frac{f_{j+1} - f_j}{\Delta x} + \frac{\Delta x}{2!} \left. \frac{d^2 f}{d x^2} \right|_{j} + \cdots \]
\[ \left. \frac{d f}{d x} \right|_{j} = \frac{f_{j+1} - f_j}{\Delta x} + \mathrm{error} \]
\[ \mathrm{error} = \frac{\Delta x}{2!} \left. \frac{d^2 f}{d x^2} \right|_{j} + \cdots \]
\[ \left. \frac{d f}{d x} \right|_{j} = \frac{f_{j+1} - f_j}{\Delta x} + \mathrm{O}(\Delta x) \]
$f_{j+1}$ の式から $f_{j-1}$ の式を引くと
\[ f_{j+1} - f_{j-1} = 2 \Delta x \left. \frac{d f}{d x} \right|_j + \frac{2 \Delta x^3}{3!} \left. \frac{d^3 f}{d x^3} \right|_j + \cdots \]
これを $\left. \frac{d f}{d x} \right|_j$ の式にすると
\[ \left. \frac{d f}{d x} \right|_j = \frac{f_{j+1} - f_{j-1}}{2 \Delta x} + \mathrm{O}(\Delta x^2) \]
\[ \left. \frac{d f}{d x} \right|_j = \frac{2 f_{j+1} +3 f_j -6 f_{j-1} + f_{j-2}}{6 \Delta x} + \mathrm{O}(\Delta x^3) \]
時間 $n$ において関数 $u$ が波数 $k$ の波すなわち
\[ u_k^n = A_k^n e^{ikx} \]
の重ね合わせで表現できる(フーリエ級数展開できる)とします. ここで $A_k^n$ は波の振幅であり, $n$ は時間ステップ, $k$ は波数です. ここで全ての波数において
\[ \left| \frac{ A_k^{n+1} }{ A_k^n } \right| \leq 1 \]
を満たすかどうかを調べるものです. これを満たさない $k$ が存在する場合は 計算が発散します.
今回の
\[ u_j^{n+1} = u_j^n - \frac{c \Delta t}{2 \Delta x} (u_{j+1}^n - u_{j-1}^n) \]
の場合について $u_j^n$ を フーリエ級数展開した結果 $u_k^n = A_k^n e^{ikx}$ に置き換えて式変形を行うと
\[ \left| \frac{ A_k^{n+1} }{ A_k^n } \right| = \sqrt{ 1 + \left( \frac{c \Delta t}{\Delta x} \right)^2 \sin^2 (k \Delta x) } \]
が得られます. ここでは $\Delta t, c \neq 0$ ですから, $k$ が非ゼロであれば右辺は常に 1 より大きくなります. すなわち, ここで用いた数値解法では 移流方程式が常に不安定であることが分かります.
\[ u_j^n = \sum_k A_k g_k^n \exp (i j k \Delta x) \]
ここで $k$ は波数, $A_k$ は波数 $k$ における時間ゼロのフーリエ係数 (定数), $g_k$ は波数 $k$ における複素振幅率と呼ばれる複素数, $i$ は虚数である. 以降は特定の波数 $k$ についてのみ考えることにし, 変数の添字 $k$ は省略して記述する. $g$ の上付き添字はべき乗であることに注意されたい.
\[ g_k = 1 - i C_{CFL} \sin (k \Delta x) \]
\[ g_k = \left| g_k \right| e^{i \psi} \]
\[ |g(k, C_{CFL})| = \sqrt{1 + C_{CFL}^2 \sin^2 (k \Delta x)}, \\ \psi(k, C_{CFL}) = - \tan^{-1} \{ C_{CFL} \sin (k \Delta x) \} \]
解析解は
\[ |g_{\mathrm{exact}}(k, C_{CFL})| = 1, \\ \psi_{\mathrm{exact}}(k, C_{CFL}) = C_{CFL} k \Delta x = k c \Delta t \]