Я работаю над переводом модели из MATLAB в Python. Суть модели заключается в ode15 от MATLAB. В исполнении MATLAB ode15s имеет стандартные опции:
options = odeset()
[t P] = ode15s(@MODELfun, tspan, y0, options, params)
Для справки, y0 является вектором (размером 98), как и MODELfun.
Моя попытка Python найти эквивалент выглядит следующим образом:
ode15s = scipy.integrate.ode(Model.fun)
ode15s.set_integrator('vode', method = 'bdf', order = 15)
ode15s.set_initial_value(y0).set_f_params(params)
dt = 1
while ode15s.successful() and ode15s.t < duration:
ode15s.integrate(ode15s.t+dt)
Однако это, похоже, не работает. Есть предложения или альтернатива?
Изменить: посмотрев на вывод, я получаю от Python либо отсутствие изменений некоторых элементов y0 с течением времени, либо постоянное изменение на каждом шаге для остальной части y0. Есть ли опыт работы с чем-то подобным?
MODELfun
на Python? (Дважды проверьте код, а также проверьте, выбрав случайное время и значения параметров и убедившись, что функцииMODELfun
иModel.fun
дают одинаковый результат.) - person Warren Weckesser   schedule 26.06.2014