我想通过使用odeint这样的方法来求解具有可变系数的二阶微分方程。这个问题是,如果初始条件很复杂(现在就是这种情况),它将不起作用。
您知道一种使用odeint来解决上述方程的方法吗?
答案 0 :(得分:1)
odeint
不接受复杂变量。您可以使用:较新的求解器solve_ivp
;具有“ zvode”积分器的较旧的ode
类;或odeintw
,即我编写的odeint
的包装器,用于处理复数值和矩阵数值的微分方程。
答案 1 :(得分:0)
您始终可以使用实际组件(odeint
约定)
def odesys(u,t):
z = u[0]+1j*u[1]
dz = u[2]+1j*u[3]
d2z = f(t,z,dz)
return [ dz.real, dz.imag, d2z.real, d2z.imag ]
其中f
代表二阶ODE的显式形式。
如果我没记错的话,可以在scipy.integrate.ode
中使用的一种方法(“ vzode”?)直接用于复杂的状态变量。