RK4adapt {spuRs} | R Documentation |
A function which uses the Fourth order Runge-Kutta method with adaptive step size to solve a system of ODE's.
Description
This function simulates a discrete time Markov chain with transition matrix P, state space 0,1,..,n and and initial state i for nsteps transitions.
Usage
RK4adapt(dydt, t0, y0, t1, h0 = 1, tol = 1e-10, ...)
Arguments
dydt |
a function giving the gradient of y(t). |
t0 |
initial value of t. |
y0 |
initial value of y(t). |
t1 |
system solved up to time t1. |
h0 |
initial step size |
tol |
tolerance for adapting step size. |
... |
pass arguments to function dydt. |
Details
We assume that P is well defined transition matrix with rows summing to 1.
Value
Returns a list with elements t, a vector giving times, and y, a matrix whose rows give the solution at successive times.
References
Jones, O.D., R. Maillardet, and A.P. Robinson. 2009. An Introduction to Scientific Programming and Simulation, Using R. Chapman And Hall/CRC.
Examples
LV <- function(t=NULL, y, a, b, g, e, K=Inf)
c(a*y[1]*(1 - y[1]/K) - b*y[1]*y[2], g*b*y[1]*y[2] - e*y[2])
xy <- RK4adapt(LV, 0, c(100, 50), 200, 1, tol=1e-3,
a=0.05, K=Inf, b=0.0002, g=0.8, e=0.03)
par(mfrow = c(2,1))
plot(xy$y[,1], xy$y[,2], type='p',
xlab='prey', ylab='pred', main='RK4, adaptive h')
plot(xy$t, xy$y[,1], type='p', xlab='time',
ylab='prey circles pred triangles', main='RK4, adaptive h')
points(xy$t, xy$y[,2], pch=2)
par(mfrow=c(1,1))
[Package spuRs version 2.0.2 Index]