ここではPythonにsympyをインストールして連立常微分方程式を解いてみたいと思います。
sympyのサイト
ウォーミングアップ
まずはsympyを用いた基本的な関数の微分の例を書いておきます。
import sympy as sym
x = sym.Symbol('x')
h = x**3 + 3*x + 1
h.diff(x,1)
連立一次常微分方程式
ではおもむろに連立一次常微分方程式を解いてみましょう。
x = sym.Symbol('x')
f = sym.Function('f')
g = sym.Function('g')
h = sym.Function('h')
eq1 = sym.Eq(f(x).diff(x,1),g(x)+h(x))
eq2 = sym.Eq(g(x).diff(x,1),h(x)+f(x))
eq3 = sym.Eq(h(x).diff(x,1),f(x)+g(x))
sym.dsolve([eq1, eq2, eq3])
偏微分方程式には対応してない?
調子に乗って偏微分方程式を解いてみましょう。
偏微分の計算自体は可能です。
x = sym.Symbol('x')
y = sym.Symbol('y')
u = x**2 - y**2
u.diff(x,1)
しかし、以下の様な計算をさせようとしても上手く答えが出てきません。
x = sym.Symbol('x')
y = sym.Symbol('y')
u = x**2 - y**2
v = sym.Function('v')
eq1 = sym.Eq(u.diff(x,1), v(x,y).diff(y,1))
eq2 = sym.Eq(u.diff(y,1), -v(x,y).diff(x,1) )
sym.dsolve([eq1, eq2])
う~む…。大学2年生相当くらいまでは対応していて、3年生相当以上になるとまだちょっと対応できてないのですかね。(;^_^A