stability: Stability analysis

View source: R/stability.R

stabilityR Documentation

Stability analysis

Description

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.

Usage

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.

Value

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.

Author(s)

Michael J Grayling

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))

phaseR documentation built on Sept. 2, 2022, 5:07 p.m.