pythonを使用して2.7.8。
私が扱っている微分方程式はx '= 2-3 * xです。それほど難しくない。正しい解は、y切片が2/3で減衰する指数関数です。エクササイズには3つの初期条件があります。また、同じプロット上に解を持つスロープ場を持たなければなりません。私は坂道を持っていますが、提供される解決策は間違っています。 x '= xのテストケースは、うまく働いたが、t> 0のときだけであった。しかし、odeintが提供するソリューションは間違っています。崩壊する指数関数の代わりに、私は三角関数のように見えます。ここにコードがあります。 Python odeintが明らかに間違った解決策を返す
#Solutions function
def m_diff_sol(input_domain,input_initial_conditions_set):
f_set=[]
for n in input_initial_conditions_set:
m_sol=odeint(m_fst_diff_eq,n,input_domain)
f=[b for [a,b] in m_sol]
f_set.append(f)
return f_set
#Vector field function
def m_fst_diff_eq(x,t):
m,mdot=x
return [mdot,2-3*m]