steady {rootSolve}R Documentation

General steady-state solver for a set of ordinary differential equations

Description

Estimates the steady-state condition for a system of ordinary differential equations.
This is a wrapper around steady-state solvers stode, stodes and runsteady.

Usage

steady(y, time=0, func, parms=NULL, method="stode",...)

Arguments

y the initial guess of (state) values for the ODE system, a vector. If y has a name attribute, the names will be used to label the output matrix.
time time for which steady-state is wanted; the default is time=0
func either an R-function that computes the values of the derivatives in the ode system (the model defininition) at time time, or a character string giving the name of a compiled function in a dynamically loaded shared library. If func is an R-function, it must be defined as: yprime = func(t, y, parms,...). t is the current time point in the integration, y is the current estimate of the variables in the ODE system. If the initial values y has a names attribute, the names will be available inside func. parms is a vector or list of parameters; ... (optional) are any other arguments passed to the function.
The return value of func should be a list, whose first element is a vector containing the derivatives of y with respect to time, and whose next elements are global values whose steady-state value is also required.
parms parameters passed to func
method the solution method to use, one of stode, stodes or runsteady
... additional arguments passed to function stode, stodes or runsteady

Details

This is simply a wrapper around the various steady-state solvers.
See help file of stode for information about specifying the model in compiled code.
See the selected solver for the additional options

Value

A list containing

y A vector with the state variable values from the last iteration during estimation of steady-state condition of the system of equations. If y has a names attribute, it will be used to label the output values.
... the number of "global" values returned

The output will have the attribute steady, which returns TRUE, if steady-state has been reached and the attribute precis with the precision attained during each iteration.

Author(s)

Karline Soetaert <k.soetaert@nioo.knaw.nl>

See Also

stode and stodes for the additional options

steady.1D, for steady-state estimation of 1-D models

steady.2D, for steady-state estimation of 2-D models

steady.band, for solving steady-state when the jacobian matrix is banded

Examples

#########################################
### Bacteria growing on a substrate
#########################################
  
  # Bacteria (Bac) are growing on a substrate (Sub)
  model <- function(t,state,pars)
  {
  with (as.list(c(state,pars)), {
  #       substrate uptake             death  respiration
  dBact = gmax*eff*Sub/(Sub+ks)*Bact - dB*Bact - rB*Bact
  dSub  =-gmax    *Sub/(Sub+ks)*Bact + dB*Bact          +input
  
  return(list(c(dBact,dSub)))
                                })
  }
  
  pars <- list(gmax =0.5,eff = 0.5,
               ks =0.5, rB =0.01, dB =0.01, input=0.1)
  # Newton-Raphson
  steady(y=c(Bact=0.1,Sub=0),time=0,
         func=model,parms=pars,pos=TRUE)  

  # Dynamic run to steady-state
  as.data.frame(steady(y=c(Bact=0.1,Sub=0),time=c(0,1e5),
         func=model,parms=pars,method="runsteady"))


[Package rootSolve version 1.3 Index]