Место проведения мероприятия ODE в python - PullRequest
0 голосов
/ 18 апреля 2020

Есть ли в python какая-либо функция, аналогичная функции определения местоположения события ODE? Например, как я могу написать код, похожий на

function [value,isterminal,direction] = event(~,x)
value = x(1);     % detect x(1)=0
isterminal = true;   % Stop the integration
direction = -1;    % positive direction=1, negative =-1, all=0

Я имею в виду, я хочу определить время, когда прыгающий мяч упал на землю, а затем он отскочил назад. В это время начальные условия меняются.

1 Ответ

1 голос
/ 18 апреля 2020

Посмотрите документацию solve_ivp. Я думаю, что прыгающий мяч - даже пример там.

Эквивалент:

def event(t,x): return x[0]
event.terminal=True
event.direction=-1

Разница заключается в нескольких событиях, где matlab может использовать одну функцию события с векторным значением, solve_ivp использует вектор скалярных функций.

...