I have a system of three ODEs that I want to find the steady states of, and whether or not they're stable via a simple analysis. To do so, I just calculate the eigenvalues of the Jacobian evaluated at each steady state, and then determine what conditions (based on my parameters) are required to have a negative eigenvalue.
That works fine for the most part, but in my original analysis I did not include the parameter $\kappa$, equivalent to setting $\kappa=1$ in the supplied code. When I force $\kappa$ to be any particular variable, I can see how my conditions change (easily noted when $\kappa=\pi$, as $\pi$ doesn't show up in the analysis otherwise), but if I don't specify a $\kappa$ then the code tells me that it's impossible (the getConditions function returns False)
Any idea why that's happening?
Also, I'm sure there's a more proper way of doing this analysis with more built in functions, and declaring my ODEs properly, but I'm pretty new to Mathematica.
κ = π
(* Clear[κ] (* uncomment to see the problem *)
δS = F S/(S + R) - γ S P - κ S;
δR = F R/(S + R) χ - κ R;
δP = (A γ - ν) S P - ν P R - κ P;
steadyStates =
Assuming[0 < χ < 1 && 0 < A < 1 && γ > 0 && ν > 0 &&
0 < F <= 1 && 1 <= κ <= 10 && A γ > ν,
Solve[{0 == δS, 0 == δR, 0 == δP}, {S, R, P}]];
J = Simplify[({
{\!\(
\*SubscriptBox[\(∂\), \(S\)]δS\), \!\(
\*SubscriptBox[\(∂\), \(R\)]δS\), \!\(
\*SubscriptBox[\(∂\), \(P\)]δS\)},
{\!\(
\*SubscriptBox[\(∂\), \(S\)]δR\), \!\(
\*SubscriptBox[\(∂\), \(R\)]δR\), \!\(
\*SubscriptBox[\(∂\), \(P\)]δR\)},
{\!\(
\*SubscriptBox[\(∂\), \(S\)]δP\), \!\(
\*SubscriptBox[\(∂\), \(R\)]δP\), \!\(
\*SubscriptBox[\(∂\), \(P\)]δP\)}
}), Assumptions ->
S >= 0 && R >= 0 && P >= 0 && 0 < χ < 1 &&
0 < A < 1 && γ > 0 && ν > 0 && 0 < F <= 1 &&
1 <= κ <= 10 && A γ > ν];
evs = Map[Simplify[Eigenvalues[J /. #1]] &, steadyStates];
getConditionsForStability[eigenvalue_] :=
Simplify[Reduce[eigenvalue < 0, {F}],
Assumptions ->
0 < χ < 1 && 0 < A < 1 && γ > 0 && ν > 0 &&
0 < F <= 1 && 1 <= κ <= 10 && A γ > ν]
getConditionsForStability /@ evs[[4]]
getConditionsForStability[evs[[4]]]