Numerically solves a two-dimensional autonomous ODE system for a given
initial condition, using ode
from the package
deSolve
. It then plots the dependent variables against
the independent variable.
numericalSolution(
deriv,
y0 = NULL,
tlim,
tstep = 0.01,
parameters = NULL,
type = "one",
col = c("red", "blue"),
add.grid = TRUE,
add.legend = TRUE,
state.names = c("x", "y"),
xlab = "t",
ylab = state.names,
method = "ode45",
...
)
Returns a list
with the following components:
As per input.
As per input.
As per input, but with possible editing if a
character
vector
of the wrong
length
was supplied.
As per input.
As per input.
As per input.
A numeric
vector
containing
the values of the independent variable at each integration step.
As per input.
As per input.
A numeric
vector
containing
the numerically computed values of the first dependent variable at each
integration step.
A numeric
vector
containing
the numerically computed values of the second dependent variable at each
integration step.
As per input.
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
.
The initial condition. Should be a numeric
vector
of length
two reflecting
the location of the two dependent variables initially.
Sets the limits of the independent variable for which the
solution should be plotted. Should be a numeric
vector
of length
two. If
tlim[2] > tlim[1]
, then tstep
should be negative to indicate a
backwards trajectory.
The step length of the independent variable, used in numerical
integration. Decreasing the absolute magnitude of tstep
theoretically
makes the numerical integration more accurate, but increases computation
time. Defaults to 0.01
.
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
.
If set to "one"
the trajectories are plotted on the same
graph. If set to "two"
they are plotted on separate graphs. Defaults
to "one"
.
Sets the colours of the trajectories of the two dependent
variables. Should be a character
vector
of length
two. Will be reset
accordingly if it is of the wrong length
. Defaults to
c("red", "blue")
.
Logical. If TRUE
, grids are added to the plots.
Defaults to TRUE
.
Logical. If TRUE
, a legend
is added to the plots. Defaults to TRUE
.
The state names for ode
functions
that do not use positional states.
Label for the x-axis of the resulting plot.
Label for the y-axis of the resulting plot.
Passed to ode
. See there for further
details. Defaults to "ode45"
.
Additional arguments to be passed to
plot
.
Michael J Grayling
ode
, plot
# A two-dimensional autonomous ODE system, vanDerPol.
vanDerPol_numericalSolution <- numericalSolution(vanDerPol,
y0 = c(4, 2),
tlim = c(0, 100),
parameters = 3)
Run the code above in your browser using DataLab