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.
scalation.dynamics.LinearDiffEq.scala
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 form
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 form
d/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: (i) The non-homogeneous equation: d/dt y(t) = a * y(t) + f(t). (ii) Complex or repeated eigenvalues.
The SSA
class implements the Gillespie Stochastic Simulation Algorithm (SSA).
The Derivatives
object is used to define types of time derivative functions.
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 form
d/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.
http://adorio-research.org/wordpress/?p=6565
The DormandPrinceTest
object is used to test the DormandPrince
object.
The LinearDiffEqTest
object to test the LinearDiffEq
class using example at
The LinearDiffEqTest
object to test the LinearDiffEq
class using example at
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) ]
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' given
d/dt y = f(t, y).
This object is used to test the Radau5 object.
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.
The RungeKuttaTest
object is used to test the RungeKutta
object.
The SSATest
object tests the SSA
class.
The dynamics package contains classes, traits and objects for system dynamics simulations using Ordinary Differential Equations (ODEs).