I have a 9 systems of nonlinear ODEs to solve. I want to determine the endemic equilibrium points.How do I go about it?I tried manual calculation but it becomes cumbersome. Can software be used for this purpose?
Solving systems of nonlinear ODEs in epidemiology
ode;nonlinear equations;symbolic computation
If you want to find the equilibrium points you need to write your system as a first order one$$\frac{d\mathbf{x}}{dt} = \mathbf{F}(\mathbf{x})$$and solve the non-linear system of equations$$\mathbf{F}(\mathbf{x})=\mathbf{0}\ ,$$that might not be solvable analytically.After that, you need to find the eigenvalues of the Jacobian matrix around each equilibrium point $\mathbf{x}^*$, $\mathbf{J}(\mathbf{x}^*)$. You can use a Computer Algebra System (CAS) for the job. SymPy, Maxima, Mathematica and Maple are some examples.An example of this, using SymPy, for the Lotka-Volterra model is the followingfrom sympy import symbols, Matrix, solve, diffx, y = symbols(x y)alpha, beta, gamma, delta = symbols(alpha beta gamma delta)dXdt = Matrix([alpha*x - beta*x*y, delta*x*y -gamma*y])eqpts = solve(dXdt, [x, y])J = Matrix(2, 2, lambda i, j: diff(dXdt[i], [x, y][j]))vals1 = J.subs({x: eqpts[0][0], y: eqpts[0][1]}).eigenvals()vals2 = J.subs({x: eqpts[1][0], y: eqpts[1][1]}).eigenvals()print(vals1)print(vals2)with output{-gamma: 1, alpha: 1}{sqrt(-alpha*gamma): 1, -sqrt(-alpha*gamma): 1}Here you should take into account two things:The system of non-linear equations might not have analytical solution, and you might need to solve it numerically (with Newton method, for example).Even if you have the analytical solution(s) for your system, the eigensystem might not be solvable analytically.