stability function

Stability analysis

Stability analysis

Uses stability analysis to classify equilibrium points. Uses the Taylor Series approach (also known as perturbation analysis) to classify equilibrium points of a one -imensional autonomous ODE system, or the Jacobian approach to classify equilibrium points of a two-dimensional autonomous ODE system. In addition, it can be used to return the Jacobian at any point of a two-dimensional system.

stability( deriv, ystar = NULL, parameters = NULL, system = "two.dim", h = 1e-07, summary = TRUE, state.names = if (system == "two.dim") c("x", "y") else "y" )

Arguments

  • deriv: A function computing the derivative at a point for the ODE system to be analysed. Discussion of the required structure of these functions can be found in the package vignette, or in the help file for the function ode.

  • ystar: The point at which to perform stability analysis. For a one-dimensional system this should be a numeric

    vector of length one, for a two-dimensional system this should be a numeric

    vector of length two (i.e., presently only one equilibrium point's stability can be evaluated at a time). Alternatively this can be specified as NULL, and then locator can be used to choose a point to perform the analysis for. However, given you are unlikely to locate exactly the equilibrium point, if possible enter ystar yourself. Defaults to NULL.

  • parameters: Parameters of the ODE system, to be passed to deriv. Supplied as a numeric vector; the order of the parameters can be found from the deriv file. Defaults to NULL.

  • system: Set to either "one.dim" or "two.dim" to indicate the type of system being analysed. Defaults to "two.dim".

  • h: Step length used to approximate the derivative(s). Defaults to 1e-7.

  • summary: Set to either TRUE or FALSE to determine whether a summary of the stability analysis is returned. Defaults to TRUE.

  • state.names: The state names for ode functions that do not use positional states.

Returns

Returns a list with the following components (the exact make up is dependent upon the value of system): - classification: The classification of ystar.

  • Delta: In the two-dimensional system case, the value of the Jacobian's determinant at ystar.

  • deriv: As per input.

  • discriminant: In the one-dimensional system case, the value of the discriminant used in perturbation analysis to assess stability. In the two-dimensional system case, the value of tr^2 - 4*Delta.

  • eigenvalues: In the two-dimensional system case, the value of the Jacobian's eigenvalues at ystar.

  • eigenvectors: In the two-dimensional system case, the value of the Jacobian's eigenvectors at ystar.

  • jacobian: In the two-dimensional system case, the Jacobian at ystar.

  • h: As per input.

  • parameters: As per input.

  • summary: As per input.

  • system: As per input.

  • tr: In the two-dimensional system case, the value of the Jacobian's trace at ystar.

  • ystar: As per input.

Examples

# Determine the stability of the equilibrium points of the one-dimensional # autonomous ODE system example2 example2_stability_1 <- stability(example2, ystar = 0, system = "one.dim") example2_stability_2 <- stability(example2, ystar = 1, system = "one.dim") example2_stability_3 <- stability(example2, ystar = 2, system = "one.dim") # Determine the stability of the equilibrium points of the two-dimensional # autonomous ODE system example11 example11_stability_1 <- stability(example11, ystar = c(0, 0)) example11_stability_2 <- stability(example11, ystar = c(0, 2)) example11_stability_3 <- stability(example11, ystar = c(1, 1)) example11_stability_4 <- stability(example11, ystar = c(3, 0))

Author(s)

Michael J Grayling

  • Maintainer: Michael J Grayling
  • License: MIT + file LICENSE
  • Last published: 2022-09-02