package dynamics
The dynamics
package contains classes, traits and objects for
system dynamics simulations using Ordinary Differential Equations (ODEs).
- Alphabetic
- By Inheritance
- dynamics
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
-
trait
Integrator
extends Error
The
Integrator
trait provides a template for writing numerical integrators (e.g., Runge-Kutta 'RK4' or Dormand-Prince 'DOPRI') to produce trajectories for first-order Ordinary Differential Equations 'ODE's.The
Integrator
trait provides a template for writing numerical integrators (e.g., Runge-Kutta 'RK4' or Dormand-Prince 'DOPRI') to produce trajectories for first-order Ordinary Differential Equations 'ODE's. The ODE is of the form:d/dt y(t) = f(t, y) with initial condition y0 = y(t0)
If 'f' is a linear function of the form 'a(t) * y(t) + b(t)', then the ODE is linear, if 'a(t) = a' (i.e., a constant) the ODE has constant coefficients and if 'b(t) = 0' the ODE is homogeneous. Note this package provides a solver (not an integrator) as an option for linear, constant coefficient, homogeneous, first-order ODE.
- See also
scalation.dynamics.LinearDiffEq.scala
-
class
LinearDiffEq
extends Error
The
LinearDiffEq
class may be used for solving a system of linear differential equations that are ordinary and first-order with constant coefficients of the formThe
LinearDiffEq
class may be used for solving a system of linear differential equations that are ordinary and first-order with constant coefficients of the formd/dt y(t) = a * y(t)
'y(t)' is the vector function of time and 'a' is the coefficient matrix. The initial value vector 'y0 = y(0)' must also be given. Note, higher-order differential equations may be converted to first-order by introducing additional variables. The above equation is the homogeneous case. Caveats: the following cases are not currently handled: (1) The non-homogeneous equation: 'd/dt y(t) = a * y(t) + f(t)'. (2) Complex or repeated eigenvalues.
-
class
NLS_ODE
extends Predictor with Error
Given an Ordinary Differential Equation 'ODE' parameterized using the vector 'b' with Initial Value 'IV' 'y0', estimate the parameter values 'b' for the ODE using weighted Non-linear Least Squares 'NLS'.
Given an Ordinary Differential Equation 'ODE' parameterized using the vector 'b' with Initial Value 'IV' 'y0', estimate the parameter values 'b' for the ODE using weighted Non-linear Least Squares 'NLS'.
ODE: dy/dt = f(t, y) IV: y(t0) = y0
Times series data: z(t0), z(t1), ... z(tn)
-
class
SSA
extends Error
The
SSA
class implements the Gillespie Stochastic Simulation Algorithm 'SSA'.
Value Members
-
object
Derivatives
The
Derivatives
object is used to define types of time derivative functions. -
object
DormandPrince
extends Integrator
The
DormandPrince
object provides a state-of-the-art numerical ODE solver.The
DormandPrince
object provides a state-of-the-art numerical ODE solver. Given an unknown, time-dependent function 'y(t)' governed by an Ordinary Differential Equation (ODE) of the formd/dt y(t) = f(t, y)
compute 'y(t)' using a (4,5)-order Dormand-Prince Integrator 'DOPRI'. Note: the 'integrateV' method for a system of separable ODEs is mixed in from the
Integrator
trait.- See also
http://adorio-research.org/wordpress/?p=6565
-
object
DormandPrinceTest
extends App
The
DormandPrinceTest
object is used to test theDormandPrince
object. -
object
LinearDiffEqTest
extends App
The
LinearDiffEqTest
object to test theLinearDiffEq
class using example atThe
LinearDiffEqTest
object to test theLinearDiffEq
class using example at- See also
biomed.tamu.edu/faculty/wu/BMEN_452/Eigenvalue%20Problems.doc The eigenvalues should be (-3, -1) The constant matrix should be [ (.375, .625), (-.75, 1.25) ]
-
object
NLS_ODETest
extends App
The
VectorDTest
object tests the operations provided byVectorD
.The
VectorDTest
object tests the operations provided byVectorD
. > run-main scalation.dynamics.NLS_ODETest -
object
Radau
extends Integrator
The
Radau
object implements Radau IIA, which is a simple Ordinary Differential Equation 'ODE' solver for moderately stiff systems.The
Radau
object implements Radau IIA, which is a simple Ordinary Differential Equation 'ODE' solver for moderately stiff systems. Solve for 'y' givend/dt y = f(t, y).
-
object
RadauTest
extends App
This object is used to test the Radau5 object.
-
object
RungeKutta
extends Integrator
The
RungeKutta
object provides an implementation of a classical numerical ODE solver.The
RungeKutta
object provides an implementation of a classical numerical ODE solver. Given an unknown, time-dependent function 'y(t)' governed by an Ordinary Differential Equation (ODE) of the form:d/dt y(t) = f(t, y)
Compute 'y(t)' using a 4th-order Runge-Kutta Integrator 'RK4'. Note: the 'integrateV' method for a system of separable ODEs is mixed in from the
Integrator
trait. -
object
RungeKuttaTest
extends App
The
RungeKuttaTest
object is used to test theRungeKutta
object. -
object
SSATest
extends App
The
SSATest
object tests theSSA
class.