#python #r #scipy #ode #runge-kutta
#python #r #scipy #ode #рунге-кутта
Вопрос:
Я перевожу некоторый код с Python на R, и мне трудно найти соответствующие функции в каждом. В данном конкретном случае код, с которым у меня возникли проблемы, является:
x_sol_best = solve_ivp(
fun=model_covid,
y0=x_0_cases,
t_span=[t_predictions[0], t_predictions[-1]],
t_eval=t_predictions,
args=tuple(optimal_params),
).y
Из scipy.integrate.solve_ivp
документации я вижу, что в этой функции используется метод интеграции по умолчанию: ‘RK45’ (по умолчанию): Явный метод Рунге-Кутты порядка 5 (4)
Какие пакеты / функции в R были бы эквивалентны этому?
Из документации R ode
функции в R я вижу, что существует ряд доступных методов RK 4 (5) (вставлено ниже), но в документации Python указано, что RK45 имеет порядок 5 (4)…
Кто-нибудь может предложить какие-либо разъяснения? TIA
"rk45ck" | Runge-Kutta Cash-Karp, order 4(5)
"rk45f" | Runge-Kutta-Fehlberg, order 4(5); Octave: ode45, pair=1
"rk45e" | Runge-Kutta-England, order 4(5)
"rk45dp6" | Dormand-Prince, order 4(5), local order 6
"rk45dp7", "ode45" | Dormand-Prince 4(5), local order 7
Комментарии:
1. Я думаю
lsoda
, в R эквивалентноsolve_ivp()
в python rdocumentation.org/packages/deSolve/versions/1.28/topics/lsoda2. Я думаю, это больше похоже
ode()
.lsoda
это один конкретный решатель,ode()
это функция общего назначения, которая позволяет выбирать решатели
Ответ №1:
Согласно документации, решателем по умолчанию solve_ivp()
является Dormand-Prince . Это вызывается ode45
в ode()
функции deSolve
пакета.
x_sol_best = deSolve::ode(
y = x_0_cases,
times = t_predictions,
func = model_covid,
parms = c(...), # vector of parameter values
method = "ode45"
)[ , -1] # drop the t column
Комментарии:
1. спасибо, Саймон — Dormand-Prince и RK45 — это одно и то же? Или я просматривал неправильную документацию? в этой ссылке указано, что методом по умолчанию является RK45 : docs.scipy.org/doc/scipy/reference/generated /…
2. Если вы нажмете на маленький
[1]
‘RK45’ (default): Explicit Runge-Kutta method of order 5(4) [1].
элемент, он приведет вас к библиографии, где говорится[1] J. R. Dormand, P. J. Prince, “A family of embedded Runge-Kutta formulae”, Journal of Computational and Applied Mathematics, Vol. 6, No. 1, pp. 19-26, 1980.