【C言語】オイラー法のプログラム

この記事では、C言語でオイラー法(euler)により常微分方程式の解を求めるプログラムについてソースコード付きで解説します。

オイラー法

オイラー法は、常微分方程式を近似的に解くアルゴリズムの1つです。
【参考】オイラー法のアルゴリズム

今回は、このアルゴリズムをC言語で実装してみました。

ソースコード

サンプルプログラムのソースコードです。

■eulerMethod(double x0, double t0, double tn, int n)
x0:初期条件
t0、tn:区間[t0, tn]
n:分割数

■double dxdt( double x)

実行結果

サンプルプログラムの実行結果です。
時間tが0~1の区間を100分割して以下の微分方程式(RC回路の出力電圧v)を順に計算しています。

(1) \begin{eqnarray*} \frac{dv(t)}{dt}=\frac{e-v(t)}{rc} \end{eqnarray*}

e:入力電圧[V]、v:出力電圧[V]、r:抵抗[Ω]、c:コンデンサ容量[F]

1.000000
1.900000
2.710000
3.439000

9.999672
9.999705
9.999734

過渡応答により、時間経過につれて入力電圧10[V]に近づいています。

【関連記事】
C言語で数値計算処理
C言語入門
数値計算プログラミング入門

シェア&フォローお願いします!