I have a system of ODE’s. One of the ODE’s has a constant parameter which I want to alter between two different values depending on one of the ODE solutions.
So for example let’s say that I have the following equations:
{
A'[x] == -q A[x]B[x],
B'[x] == q A[x]B[x] - g B[x],
C'[x] == g B[x]
}
Now I can solve them easily using the NDSolve function when q and g are constant values. What I want to do though is vary the value of q so that it has one value when B[x] is below a certain threshold but then changes in value when B[x] rises above this threshold value.
I’ve tried using If statements and Piecewise functions outside of the NDSolve but I haven’t managed to get it working.
This might do something like what you want. I left out the third equation, which seems superfluous.