数学とか語学とか楽しいよね

フランス語、ドイツ語、ロシア語、アラビア語、オランダ語、英語、スペイン語、ラテン語とか数学とか数値計算(有限要素法、有限体積法、差分法、格子ボルツマン法、数理最適化、C++コード付き)とか勉強したことをまとめます。右のカテゴリーから興味のある記事を探してください。最近はクラシックの名演も紹介しています。noteにも書いています。https://note.mu/kumag_min

【有限要素法】Cole-Hopf変換による1次元Burgers方程式(バーガース方程式)の解析解

1次元Burgers方程式

 \displaystyle \frac{\partial u}{\partial t}+u \frac{\partial u}{\partial x}-D \frac{\partial^2 u}{\partial x^2}=0

の解析解を求めます。『偏微分方程式の数値シミュレーション』のpp.219-220と以下のリンクを参照しています。

偏微分方程式の数値シミュレーション

偏微分方程式の数値シミュレーション

ステップ1

まず、

 \displaystyle u = \frac{\partial \psi}{\partial x}

とおきこれを代入すると

 \displaystyle \frac{\partial \psi}{\partial t \partial x}+\frac{\partial \psi}{\partial x} \frac{\partial^2 \psi}{\partial x^2}-D \frac{\partial^3 \psi}{\partial x^3}=0

を得ます。この第二項目を書きかえると

 \displaystyle \frac{\partial \psi}{\partial t \partial x}+\frac{\partial}{\partial x} \left[ \frac{1}{2} \left( \frac{\partial \psi}{\partial x} \right)^2 \right] -D \frac{\partial^3 \psi}{\partial x^3}=0

となるので

 \displaystyle \frac{\partial}{\partial x} \left( \frac{\partial \psi}{\partial t}+ \frac{1}{2} \left( \frac{\partial \psi}{\partial x} \right)^2 -D \frac{\partial^2 \psi}{\partial x^2} \right) =0

を得ます。とりあえず積分定数を0として  x積分して

 \displaystyle \frac{\partial \psi}{\partial t}+ \frac{1}{2} \left( \frac{\partial \psi}{\partial x} \right)^2-D\frac{\partial^2 \psi}{\partial x^2} =0

となります。

ステップ2

次に

 \displaystyle \psi = -2D \ln \phi

とおきます。この時点で

 \displaystyle u = \frac{\partial \psi}{\partial x} = -2D\frac{\partial  (\ln \phi)}{\partial x} = -2D \frac{\partial}{\partial \phi}(\ln \phi) \frac{\partial  \phi}{\partial x} = -2D \frac{1}{\phi}\frac{\partial  \phi}{\partial x}

という変数変換を行ったことになります。これをCole-Hopf変換(コール・ホップ変換)と呼びます。 \psi偏微分をそれぞれ計算します。

 \displaystyle \frac{\partial \psi}{\partial t} = -2D\frac{\partial}{\partial t} (\ln \phi) = -2D\frac{\partial}{\partial \phi} (\ln \phi)\frac{\partial \phi}{\partial t} = -2D\frac{1}{\phi}\frac{\partial \phi}{\partial t}

 \displaystyle \frac{\partial \psi}{\partial x} = -2D\frac{\partial}{\partial x} (\ln \phi) = -2D\frac{\partial}{\partial \phi} (\ln \phi)\frac{\partial \phi}{\partial x} = -2D\frac{1}{\phi}\frac{\partial \phi}{\partial x}

 \displaystyle 
\begin{eqnarray} 
\frac{\partial}{\partial x}\left( \frac{\partial \psi}{\partial x} \right) 
= -2D\frac{\partial}{\partial x}\left( \frac{1}{\phi}\frac{\partial \phi}{\partial x} \right) 
= -2D\left[  \frac{\partial}{\partial x} \right( \frac{1}{\phi} \left) \frac{\partial \phi}{\partial x} + \frac{1}{\phi}\frac{\partial^2 \phi}{\partial x^2}\right] \\
= -2D\left[  \frac{\partial}{\partial \phi} \right( \frac{1}{\phi} \left) \frac{\partial \phi}{\partial x}\frac{\partial \phi}{\partial x} + \frac{1}{\phi}\frac{\partial^2 \phi}{\partial x^2}\right] 
= -2D\left[  -\frac{1}{\phi^2} \left( \frac{\partial \phi}{\partial x} \right)^2 + \frac{1}{\phi}\frac{\partial^2 \phi}{\partial x^2}\right]
\end{eqnarray}

これらをステップ1の最後の式に代入します。

 \displaystyle
\begin{eqnarray} 
&&\frac{\partial \psi}{\partial t}+ \frac{1}{2} \left( \frac{\partial \psi}{\partial x} \right)^2-D\frac{\partial^2 \psi}{\partial x^2} \\
&=&-2D\frac{1}{\phi}\frac{\partial \phi}{\partial t} +  \frac{1}{2}\left( -2D\frac{1}{\phi}\frac{\partial \phi}{\partial x} \right)^2 +2D^2 \left[  -\frac{1}{\phi^2} \left( \frac{\partial \phi}{\partial x} \right)^2 + \frac{1}{\phi}\frac{\partial^2 \phi}{\partial x^2}\right]\\
&=&-2D\frac{1}{\phi}\frac{\partial \phi}{\partial t} +2D^2 \frac{1}{\phi}\frac{\partial^2 \phi}{\partial x^2}=0
\end{eqnarray}

すなわち

 \displaystyle \frac{\partial \phi}{\partial t} -D \frac{\partial^2 \phi}{\partial x^2} =0

と結局、拡散方程式へと変換することができます。拡散方程式はこちらの記事で解説しているフーリエ変換を使う方法によって解くことができます。


この解を用いて1次元Burgers方程式に対する有限要素法(Galerkin法)の精度を調べます。