Использование двух условий внутри Events в Matlab ODE - PullRequest
0 голосов
/ 13 мая 2018

У меня есть ODE Event как

options = odeset('RelTol',1e-11,'Events',@eventfunction);
    [time,values] = ode45(@Eq,time,x0,options);

function [value, isterminal,direction]=eventfunction(~,y)
value=y(1)+y(2)-1;
isterminal=1;
direction=0;
end  

Я хочу изменить это условие внутри eventfunction, чтобы событие вызывалось, когда y(1)+y(2) падает ниже 1 ИЛИ перемещается выше 10 ^ 5,

Как мне этого добиться?

1 Ответ

0 голосов
/ 07 марта 2019

Укажите векторы для значения, истерминала и направления.

value = [y(1)+y(2)-1, y(1)+y(2)-1e5];
isterminal = [1, 1];
direction = [0, 0];

Обратите внимание, что вы можете использовать направление = [], оно работает так же, как и направление = нули (1, длина (значение)).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...