phaseplane: Phase plane of differential equation.

View source: R/phaseplane.R

phaseplaneR Documentation

Phase plane of differential equation.

Description

phaseplane visualizes the vector field for a one or two dimensional differential equation.

Usage

phaseplane(
  system_eq,
  x_var,
  y_var,
  parameters = NULL,
  x_window = c(-4, 4),
  y_window = c(-4, 4),
  plot_points = 10,
  eq_soln = FALSE
)

Arguments

system_eq

(required) The 1 or 2 dimensional system of equations, written in formula notation as a vector (i.e. c(dx ~ f(x,y), dy ~ g(x,y)))

x_var

(required) x axis variable (used to create the plot and label axes)

y_var

(required) y axis variable (used to create the plot and label axes)

parameters

(optional) any parameters in the system of equations

x_window

(optional) x axis limits. Must be of the form c(minVal,maxVal). Defaults to -4 to 4.

y_window

(optional) y axis limits. Must be of the form c(minVal,maxVal). Defaults to -4 to 4.

plot_points

(optional) number of points we evaluate on the grid in both directions. Defaults to 10.

eq_soln

(optional) TRUE / FALSE - lets you know if you want the code to estimate if there are any equilibrium solutions in the provided window. This will print out the equilibrium solutions to the console.

Value

A phase plane diagram of system of differential equations

Examples

# For a two variable system of differential equations we use the
# formula notation for dx/dt and the dy/dt separately:
system_eq <- c(dx ~ cos(y),
              dy ~ sin(x))
phaseplane(system_eq,x_var='x',y_var='y')

# For a one dimensional system: dy/dt = f(t,y).  In this case the
# xWindow represents time.
# However, the code is structured a little differently.
# Consider dy/dt = -y*(1-y):

system_eq <- c(dt ~ 1,
               dy ~ -y*(1-y))

 phaseplane(system_eq,x_var="t",y_var="y")

# Here is an example to find equilibrium solutions.

 system_eq <- c(dx ~ y+x,
               dy ~ x-y)

 phaseplane(system_eq,x_var='x',y_var='y',eq_soln=TRUE)

# We would expect an equilibrium at the origin,
# but no equilibrium solution was found, but if we narrow the search range:

 phaseplane(system_eq,x_var='x',y_var='y',x_window = c(-0.1,0.1),y_window=c(-0.1,0.1),eq_soln=TRUE)

# Confirm any equilbrium solutions through direct evaluation of the differential equation.




jmzobitz/demodelr documentation built on March 6, 2024, 8:31 p.m.