Я начинаю программист, и я хотел бы интегрировать функцию с помощью ode 'dopri5', но я не думаю, что я делаю это правильно. Ссылка не помогла, и у меня ошибка, которую я не узнаю. Итак, изначально я использовал odeint, и он работал нормально. Вот что кусок кода:Запуск ode, метод dopri5, ошибка: неподдерживаемый тип операнда 'ode'
Itmp = odeint(te.rhs, Itmp, [xLim[i], xLim[i+1]], mxstep=10000,
atol=1e-11, rtol=1e-11, args=(f,))[1]
И моя попытка интегрировать с помощью dopri5 заключается в следующем:
Itmp = ode(te.rhs).set_integrator('dopri5', max_step=10000,atol=1e-11, rtol=1e-11)
Я получаю ошибку говорит, что ГПИТ имеет тип «ода», а мне нужно, чтобы это было поплавок, как и odeint, дает мне.
Вот конкретная ошибка, (я пытаюсь вычесть ГПИТ из поплавка):
unsupported operand type(s) for -: 'ode' and 'float'
И когда я использую питона отладчик и попытаться распечатать ГПИТ, это дает мне
<scipy.integrate._ode.ode object at 0x10d6ab410>
И после того, как я продолжаю, он останавливается с вышеуказанной ошибкой. Я предполагаю, что у меня нет команды ode, написанной правильно. Любая помощь будет принята с благодарностью!
Можете ли вы отправить сообщение [mcve]? Как бы то ни было, трудно сказать, откуда возникли ваши проблемы. Единственное, что приходит в голову, это то, что вы используете одно и то же имя переменной для ваших начальных условий и объекта-интегратора ('Itmp'), что является ужасно плохой практикой и может привести к ошибкам. – Wrzlprmft
Вы объясняли разные аргументы аргументов функций ODE? В то время как 'odeint' требует' odefunc (state, time) ',' ode' использует 'odefunc (time, state)'. – LutzL