[ 実習トップページ | 2012 スケジュール・各回資料 | 07/27 | 実習資料・課題トップ ]

注意: このページは実習資料ではありません!

レクチャー資料に用いた数式集

このページははレクチャー資料用の数式の画像を生成するためのページです. ほとんどは式を羅列しているだけです.

$j$ 番目の格子点の座標 $x_j$ と格子点の間隔 $\Delta x$

\[ 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} \]

Taylor 展開より

\[ 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 \]

1 次精度の前進差分の式

$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) \]

2 次精度の中心差分

$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) \]

3 次精度の差分

\[ \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) \]

von Neumann の安定性解析

時間 $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 より大きくなります. すなわち, ここで用いた数値解法では 移流方程式が常に不安定であることが分かります.

von Neumann の安定性解析 (2)

\[ 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 \]


[ 実習トップページ | 2012 スケジュール・各回資料 | 07/27 | 実習資料・課題トップ ]
ITPASS
Last Updated: unknown, Since: unknown