あさのひとりごと

3日坊主にならないように、全力を尽くします。 記事は個人のひとりごとです。所属する組織の意見を代表するほど、仕事熱心じゃないです。

クランクニコルソン法とフォンノイマンの安定性

計算の待ち時間の備忘録として。


空間における2階の微分を陽解法による差分と陰解法による差分の算術平均で表したものが、クランクニコルソン法です。



\dfrac {\partial u} {\partial t}=\alpha \dfrac {\partial ^{2}u} {\partial x^{2}}


これを陽解法と陰解法の差分の算術平均を表します。


\dfrac {u_{i}^{n+1} - u_{i}^{n}}{\Delta t} =\dfrac{\alpha}{2} \left( \dfrac {u_{i-1}^{n+1} -2u_{i}^{n+1}+u_{i+1}^{n+1}} {\left( \Delta x\right)  ^{2}} + \dfrac {u_{i-1}^{n} -2u_{i}^{n}+u_{i+1}^{n}} {\left( \Delta x\right)  ^{2}} \right)


クランクニコルソン法の陽解法と陰解法の算術平均を重み \thetaによる平均の例だとすると次の一般化が可能。


\dfrac {u_{i}^{n+1} - u_{i}^{n}}{\Delta t} =\alpha  \left( \dfrac {u_{i-1}^{n+1} -2u_{i}^{n+1}+u_{i+1}^{n+1}} {\left( \Delta x\right)  ^{2}} +( 1-\theta ) \dfrac {u_{i-1}^{n} -2u_{i}^{n}+u_{i+1}^{n}} {\left( \Delta x\right)  ^{2}} \right)

ここで \theta=0のとき陽解法、 \theta=1のとき陰解法、 \theta=\dfrac{1}{2}のときクランクニコルソン法になります。



で、フォンノイマンの安定性解析は、差分スキームの安定性を判断するために使われますが、、、、
近似解 u_{N}、厳密解 u_{E}、誤差 \epsilonとすると



u_{N} = u_{E} +  \epsilon

が成り立ちます。
で、次の1次元熱伝導方程式の陽解法の近似式の安定性をみてみます。

 
\dfrac{u_{j}^{n+1} - u_{j}^{n}}{\Delta t}= \alpha \dfrac{u_{j-1}^{n}-2u_{j}^{n} + u_{j+1}^{n}}{(\Delta x)^2}


ここで誤差 \epsilonについては、次の式が成り立ちます。

\dfrac{\epsilon_{j}^{n+1}-\epsilon_{j}^{n}}{\Delta t} = \alpha \dfrac{\epsilon _{j-1}^{n}-2\epsilon _{j}{n} + \epsilon _{j+1}^{n} }{(\Delta x)^2}

誤差 \epsilonは離散化された複素フーリエ級数をつかって次のように表すことができます。


\begin{eqnarray}
\epsilon _{j}^{n} = \sum _{m=-\infty }^{\infty } C_{m}^{n}e^{i\beta _{m} j \Delta x}, x=j\Delta x , t= n \Delta t , \beta_{m}=\dfrac{m \pi}{l}
\end{eqnarray}

誤差 \epsilonが時間ともに増幅しないためには、ある時刻における誤差が次の時間ステップで大きくならなければよいので、、、



G = \dfrac{\epsilon _{j}^{n+1}}{\epsilon _{j}^{n}} = \dfrac{C_{m}^{n+1}}{C_{m}^{n}}
としたとき、 \left| G\right| \leq 1なら安定、そうでなければ不安定です。


誤差の近似式を整理すると次の式になります。

C_{m}^{n+1} = \left\{  2\dfrac{\alpha \Delta t}{(\Delta x)^2} \left( \dfrac{e^{i \beta _{m}\Delta x} + e^{-i\beta _{m}\delta x}}{2} -1  \right)  \right\} C_{m}^{n}


ここで、

s = \dfrac{\alpha \Delta t}{(\Delta x)^2}

として、次のオイラーの公式と、、、、、

\dfrac{e^{i\beta _{m}\Delta x} + e ^{-i\beta _{m}\Delta x}}{2} = \cos (\beta _{m}\Delta x)

半角公式を利用すると、、、、、、

\dfrac{1-\cos(\beta _{m}\Delta x)}{2} =  \sin^2 \left( \dfrac{\beta_{m}\Delta x}{2} \right)


次の式が得られます。


G = -4 s \sin ^2 \left(  \dfrac{\beta _{m}\Delta x}{2}  \right) +1


安定のためには、次が成り立てばよさげ。


`-1 \leq -4 s \sin ^2 \left(  \dfrac{\beta _{m}\Delta x}{2}  \right) +1 \leq 1

© 2017 ASA.