В чем разница между scipy.integrate.odeint и scipy.integrate.ode?

Я прочитал документы для этих здесь, но там просто указано, что odeint является "интегратором с более простым интерфейсом на основе lsoda из ODEPACK"

Какова фактическая разница? При каких обстоятельствах использование одного более уместно, чем другого?


person Dipole    schedule 03.04.2014    source источник


Ответы (2)


Если вы можете решить свою проблему с odeint, я бы порекомендовал это. Это просто функция, которая интегрирует оду с помощью lsoda.

Если вам нужно гораздо больше опций, ode — это класс со множеством методов и решателей:

person askewchan    schedule 04.04.2014
comment
Можно ли установить другой интегратор для odeint? - person imranal; 22.10.2015
comment
@imranal, насколько я могу судить, не так, как написано. Это может быть не так сложно изменить или посмотреть на источник, чтобы написать свою собственную версию. - person askewchan; 22.10.2015
comment
Бинго! ode у кота есть .set_solout, а odeint нет. Однако похоже, что только некоторые из интеграторов (например, Runge Kutta dopri5, dop853) фактически могут мутить. - person uhoh; 15.07.2016
comment
@uhoh Что у тебя с правописанием? - person dearN; 11.02.2017
comment
@drN ты прав! По какой-то причине я переместил z в has, он должен оставаться внутри чизбургера, как в классическом Happycat i.stack.imgur.com/BZ33g.jpg Проблема У меня часто бывает с .odeint() такое, что приходится выбирать время окончания заранее и не можешь обнаружить беду и сказать стоп! не идти дальше. Однако для некоторых интеграторов в .ode() у вас есть .set_solout() - person uhoh; 11.02.2017
comment
@drN кажется, я не первый, кто продал верд хаз. - person uhoh; 11.02.2017
comment
@uhoh Ты точно был там! - person dearN; 11.02.2017

Меня интересовал тот же вопрос, и позже я обнаружил, что в scipy.integrate есть другой API. Метод четко описан в документации.

Это может заинтересовать людей, сравнивающих odeint (odeintw для сложного) и ode (complex_ode для сложного).

Он называется scipy.integrate.solve_ivp, доступен в scipy v1.0.0: https://scipy.github.io/devdocs/generated/scipy.integrate.solve_ivp.html#scipy.integrate.solve_ivp В этом решателе LSODA не справляется со сложными задачами, но BDF работает быстрее. мое дело.

person Geoffroy    schedule 04.02.2018