Python: решение дифференциального уравнения второго порядка со сложными начальными условиями - PullRequest
0 голосов
/ 03 октября 2018

Я хочу решить дифференциальное уравнение второго порядка с переменными коэффициентами, используя что-то вроде odeint.Проблема с этим в том, что он не работает, если начальные условия сложны (что имеет место сейчас).

Знаете ли вы способ решения вышеупомянутого уравнения с чем-то похожим на odeint?

Ответы [ 2 ]

0 голосов
/ 04 октября 2018

odeint не принимает комплексные переменные.Вы можете использовать: более новый решатель, solve_ivp;более старый ode класс с интегратором "zvode";или odeintw, оболочка из odeint, которую я написал, которая обрабатывает комплексные и матричные дифференциальные уравнения.

0 голосов
/ 03 октября 2018

Вы всегда можете работать с реальными компонентами (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 второго порядка.

Если я помнюправильно, один из методов ("vzode"?), который вы можете использовать в scipy.integrate.ode, работает напрямую со сложными переменными состояния.

...