ABSTRACT

The fixed point is one of the most fundamental features of a dynamical system, and the starting point for most dynamical systems analysis is to find fixed points and determine their stability. For a system of differential equations,

y˙ = f(y), (14.1.1)

fixed points y∗ are found by solving the vector equation

f(y) = 0. (14.1.2)

The method for doing this in MATLAB is to write a function that calculates f(y), just as for solving the differential equations themselves (see Section 5.8). Then the solution can be found using a root-finding method, like Newton’s method (see function newton in Section 5.9) with a command such as

>> y = newton(@myfunc, y0, tol, maxits);

where y0 is an initial approximation to the solution, tol is a defined convergence tolerance, maxits is the maximum number of iterations of Newton’s method to carry out, and myfunc is a function that calculates f(y). Solving a nonlinear system of equations numerically is not a trivial task and

usually requires a reasonable approximation to the solution to use the starting point y0 for the iterations. In practice, it is sometimes necessary to try a number of different initial approximations by systematically looping through phase space. This process is usually computationally expensive, but can sometimes be made more efficient if some knowledge about which regions of phase space are likely to contain fixed points can be gained, either analytically or from numerical solution of the full time-dependent equations (14.1.1). Assuming that fixed points y∗ of a system of the form (14.1.1) have been

found, their stability can be determined by evaluating the Jacobian matrix of f(y) at y = y∗ and calculating its eigenvalues. This can be achieved with the following MATLAB commands (see Section 5.9 for the function jacobian).