工学系大学院生のブログ

2人の大学院生による雑記ブログ

第1-1回 テイラー展開による離散化

第1回は下記の非定常拡散方程式を解くことに目標を置き、書きすすめていきます。

$$\frac{\partial u(t,x)}{\partial t}=D\frac{\partial^2 u}{\partial x^2}$$

準備として、テイラー展開による離散化についてご説明します。


連続な関数をパソコンで計算を行えるデジタルの形に変形することを離散化と言います。離散化は格点における値を四則演算のみで定義することに相当します。


まず空間的な位置\(x_{i+1}\)における \(u_{i+1}\) をテイラー展開を用いて表します。ただし、\(u_{i+1}=u(t,x_{i+1})\)を意味します。

$$u_{i+1}=u_i+\Delta x\left(\frac{ \partial u}{ \partial x}\right)_i+\frac{1}{2}\left(\Delta x\right)^2\left(
\frac{\partial^2 u}{\partial x^2} \right)_i+\cdots \,\,\,(1.1)$$

同様に空間的な位置\(x_{i-1}\)における\(u_{i-1}\)は下記のようになります。

$$u_{i-1}=u_i-\Delta x\left(\frac{ \partial u}{ \partial x}\right)_i+\frac{1}{2}\left(\Delta x\right)^2\left(
\frac{\partial^2 u}{\partial x^2} \right)_i+\cdots \,\,\,(1.2)$$

(1.1)を用いて次のように一階微分を近似します。

$$u_{i+1}=u_i+\Delta x\left(\frac{ \partial u}{ \partial x}\right)_i +O\left(\Delta x^2\right)$$

$$\left(\frac{ \partial u}{ \partial x}\right)_i =\frac{u_{i+1}-u_i}{\Delta x}+O\left(\Delta x\right)\approx\frac{u_{i+1}-u_i}{\Delta x} $$

これで空間的な位置\(x_i\)における傾き\(\left(\frac{ \partial u}{ \partial x}\right)_i\)を近似できました。これは次の図のように、空間的に先の点を用いて差分近似するため前進差分と呼ばれます。また無視する項が\(\Delta x\)のオーダーであるため一次精度前進差分と呼ばれます。

同様に(1.2)から空間的に後ろの点を用いて差分近似を行う一次精度後退差分を得られます。

$$u_{i-1}=u_i-\Delta x\left(\frac{ \partial u}{ \partial x}\right)_i +O\left(\Delta x^2\right)$$

$$\left(\frac{ \partial u}{ \partial x}\right)_i =\frac{u_i-u_{i-1}}{\Delta x}+O\left(\Delta x\right)\approx\frac{u_i-u_{i-1}}{\Delta x} $$

また、次のような近似も行うことができます。

式(1.1)-式(1.2)より

$$u_{i+1}-u_{i-1}=2\Delta x\ \left(\frac{ \partial u}{ \partial x}\right)_i +O\left(\Delta x^3 \right)$$

$$\left(\frac{ \partial u}{ \partial x}\right)_i =\frac{u_{i+1}-u_{i-1}}{2\Delta x}+O\left(\Delta x^2\right)\approx\frac{u_{i+1}-u_{i-1}}{2\Delta x} $$

これは両隣のi+1とi-1の値を用いてiの近似を行うため、中心差分と呼ばれます。この方法では\(O\left(\Delta x^2\right)\)を無視するため、先ほどの二つの差分と比べ精度の高く二次精度中心差分と呼ばれます。

さらに以下の二階微分もテイラー展開を用いて近似します。

$$ \frac{\partial^2 u}{\partial x^2} $$

式(1.1)+式(1.2)より

$$u_{i+1}+u_{i-1}=2u_i+\left(\Delta x\right)^2\left( \frac{\partial^2 u}{\partial x^2}\right)_i+O\left(\Delta x^4\right) $$

$$ \left( \frac{\partial^2 u}{\partial x^2}\right)_i =\frac{u_{i+1}-2u_i+u_{i-1}}{\Delta x^2}+O\left(\Delta x^2\right)\approx \frac{u_{i+1}-2u_i+u_{i-1}}{\Delta x^2} $$

他にも近似の種類はありますが、今回必要な分はそろいました。

改めて注意してほしいのですが、今回示した離散化した式は\(x_i\)における近似式になっています。

次回はこの近似を適用し、プログラムとして計算できる形に変形していきたいと思います。

by hide

このエントリーをはてなブックマークに追加

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です