I have an ODE system I'd like to specify as a vector equation in NDSolve
. I'm not clear on how to use WhenEvent
for a system specified in this way. Ultimately I'd like WhenEvent
to change the value of one of the state variables in the vector equation when it reaches a threshold.
For example, the following code doesn't work because WhenEvent[y[t]==0, ...]
is applying a conditional test to a list of values. Replacing this with y[t][[1]]==0
also doesn't work.
sol = NDSolve[{y'[t] == {{.1, -.2}, {-.1, .2}}.y[t], y[0] == {1, 1},
WhenEvent[y[t] == 0, y[t] -> 1]}, y, {t, 0, 10}]
Ideas anyone?