SymPyを使用して常微分方程式を解く方法について


はるか
SymPyで微分方程式の解き方、わかってる?

ふゅか
うん!微分方程式はsp.Eq()を使って定義して、それをdsolveで解けばいいんだよね!
目次
1. 微分方程式とSymPy
PythonのライブラリであるSymPyは、数学的な計算や解析に使える便利なツールです。常微分方程式を解く機能も持っており、手軽に微分方程式の解を求めることができます。
1.1. 基本的な考え方
微分方程式を扱う際には、次の3つのステップが重要です。
- 微分の表現・・・関数 を変数 について微分する場合、
y(x).diff(x)
と記述します。これで関数 の1階微分を表現します。 - 微分方程式の表現・・・微分方程式は、
sp.Eq()
を使って定義します。このメソッドに左辺と右辺の式を渡すことで、等式としての微分方程式を作成できます。 - 微分方程式を解く・・・作成した微分方程式は、
sp.dsolve()
を使って解きます。
これらのステップを理解すれば、SymPyを使って簡単に微分方程式を解くことができます。
2. SymPyで微分方程式を解く方法
2.1. 常微分方程式の解法
まずは、1階常微分方程式の具体例を通して、SymPyの使い方を見ていきましょう。
例: 1階常微分方程式
この1階常微分方程式をSymPyで解くには、以下のように記述します。
このコードは、微分方程式 を解き、結果を表示します。
2.2. 初期条件付き常微分方程式
次に、初期条件付きの微分方程式を解く例を見てみましょう。初期条件も指定することで、特定の解を求めることができます。
例2: 初期条件付き常微分方程式
かつ
以下は、上記の常微分方程式を解く例です。
このコードは、微分方程式 を初期条件 で解き、結果を表示します。
2.3. 2階常微分方程式
次に、2階常微分方程式をSymPyで解く例を示します。2階微分方程式では、関数の2階微分を使って方程式を定義します。
以下は、上記の常微分方程式を解く例です。
このコードは、微分方程式 を解き、結果を表示します。出力は次のようになります。

はるか
2階微分の場合は、y(x).diff(x, x)と書く。
2.4. 連立微分方程式の解法
最後に、連立微分方程式を解く方法を紹介します。複数の微分方程式を同時に解く場合も、SymPyで簡単に扱うことができます。
以下は、上記の連立微分方程式を解く例です。
このコードは、上記の連立微分方程式を解き、結果を表示します。
PR