Python:求解具有复杂初始条件的二阶微分方程

时间:2018-10-03 18:12:35

标签: python numpy math complex-numbers differential-equations

我想通过使用odeint这样的方法来求解具有可变系数的二阶微分方程。这个问题是,如果初始条件很复杂(现在就是这种情况),它将不起作用。

您知道一种使用odeint来解决上述方程的方法吗?

2 个答案:

答案 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”?)直接用于复杂的状态变量。