C++

【オブジェクト指向C++】1次元移流方程式の数値計算

ベタ書きのコード

先ほどの説明の関数の文字を置き換えます。

  • $T$→$u$
  • $u$→$c$
1次元の移流方程式
\begin{align*}\frac{\partial u(x,t)}{\partial t}+c\frac{\partial u(x,t)}{\partial x}=0\tag{7}\end{align*}
※関数$u(x)$が速度$c$で伝播する方程式

C++で移流方程式をそのまま後退差分で実装すると以下のようになります。

解きたい方程式が簡単なのでコード量も少ないですね。
しかし、このようなべた書きコードを書いたら1次元から3次元に変更しようと思うと大がかりな改造する必要で1回限りの使い捨てコードになってしまいます。

メインの差分法は、

ですが、直感的には、

のように書けると嬉しいですよね。

本記事を通してそのように書くことが可能になります。

オブジェクト指向型プログラミング

では、ここからオブジェクト指向でコードを修正していきます。

段階を踏んでコードを書いていくことにします。

1 2 3 4 5 6

COMMENT

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