3
dsolve
を使用して初期値の問題を解決したいが、初期条件ics
は効果がないようです。この例のdsolve
は両方とも同じ結果を示します。私はSympy ODEソルバーの初期条件は無効です
x
f(x) = C1 ℯ
C1
同じ解を得るいずれの場合も
from sympy import *
x = symbols('x')
f = Function('f')
eq = Eq(Derivative(f(x), x), f(x))
# No initial condition
pprint(dsolve(eq, f(x)))
# With initial condition f(0) = 1
pprint(dsolve(eq, f(x), ics={f(0):1}))
さえics
で値1
によって置き換えられません。 Sympy second order odeにsympy issue 4720が記載されていますが、問題は解決しました。 SymPy 1.1.1を使用しています。
このプル要求は、SymPy 1.1リリースの後にマージされました。 1.1.1のリリースは、1.1の上に重大な修正を含む小さなバグ修正リリースでした。 1.1の後にマージされた大きな変更は含まれていませんでした。ブランチは次のメジャーバージョン(1.2)に含まれるべきです。または、gitマスターバージョンのSymPyを使用して今すぐ入手できます(http://docs.sympy.org/latest/install.html#gitを参照)。 – asmeurer
私にとって最も混乱していたのは、[支店1.1.1に解決策があります](https://github.com/sympy/sympy/blob/1.1.1/sympy/solvers/ode.py)です。 – FTP
これを指摘してくれてありがとう。リリースブランチはずっと前に削除されているはずです。それは、リリース後にマスターをマージしたので(マスターに戻ってマージされる可能性があるので)、その中に機能がありました。見るべき正しいことは[sympy-1.1.1タグ](https://github.com/sympy/sympy/blob/sympy-1.1.1/sympy/solvers/ode.py)です。 – asmeurer