scalation.dynamics

Members list

Type members

Classlikes

object DormandPrince extends Integrator

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) or ode45. Note: the integrateV method for a system of separable ODEs is mixed in from the Integrator trait.

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) or ode45. Note: the integrateV method for a system of separable ODEs is mixed in from the Integrator trait.

Attributes

See also
Supertypes
trait Integrator
class Object
trait Matchable
class Any
Self type
class DynamicEq(f: Double => VectorD, d: Int)

The DynamicEq class may be used for determining trajectories x_t from a system of dynamic equations. x_t = f(t) f(t) is the vector function of time.

The DynamicEq class may be used for determining trajectories x_t from a system of dynamic equations. x_t = f(t) f(t) is the vector function of time.

Value parameters

d

the number of dimensions

f

the vector-valued function of time

Attributes

Supertypes
class Object
trait Matchable
class Any
trait Integrator

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.

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.

Attributes

See also

scalation.dynamics.LinearDiffEq.scala

Supertypes
class Object
trait Matchable
class Any
Known subtypes
object DormandPrince
object ModRosenbrock
object RungeKutta
class LinearDiffEq(a: MatrixD, y0: VectorD)

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: (1) The non-homogeneous equation: d/dt y(t) = a * y(t) + f(t). (2) Complex or repeated eigenvalues.

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: (1) The non-homogeneous equation: d/dt y(t) = a * y(t) + f(t). (2) Complex or repeated eigenvalues.

Value parameters

a

the coefficient matrix

y0

the initial value vector

Attributes

Supertypes
class Object
trait Matchable
class Any
object ModRosenbrock extends Integrator

The ModRosenbroc object provides a numerical ODE solver for stiff systems. 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 (2,3)-order Modified Rosenbrock ODE Integrator (Modified Rosenbrock) or ode.23s Note: the integrateV method for a system of separable ODEs is mixed in from the Integrator trait.

The ModRosenbroc object provides a numerical ODE solver for stiff systems. 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 (2,3)-order Modified Rosenbrock ODE Integrator (Modified Rosenbrock) or ode.23s Note: the integrateV method for a system of separable ODEs is mixed in from the Integrator trait.

Attributes

See also
Supertypes
trait Integrator
class Object
trait Matchable
class Any
Self type
object RungeKutta extends Integrator

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 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.

Attributes

Supertypes
trait Integrator
class Object
trait Matchable
class Any
Self type
RungeKutta.type
final class ballFlight

Attributes

Supertypes
class Object
trait Matchable
class Any
final class dormandPrinceTest

Attributes

Supertypes
class Object
trait Matchable
class Any
final class dormandPrincekTest2

Attributes

Supertypes
class Object
trait Matchable
class Any
final class dynamicEqTest

Attributes

Supertypes
class Object
trait Matchable
class Any
final class linearDiffEqTest

Attributes

Supertypes
class Object
trait Matchable
class Any
final class modRosenbrockTest

Attributes

Supertypes
class Object
trait Matchable
class Any
final class modRosenbrockTest2

Attributes

Supertypes
class Object
trait Matchable
class Any
final class reactions

Attributes

Supertypes
class Object
trait Matchable
class Any
final class rungeKuttaTest

Attributes

Supertypes
class Object
trait Matchable
class Any

Types

type Derivative = (Double, Double) => Double

Function type for derivative functions: f (t, y) where y is a scalar

Function type for derivative functions: f (t, y) where y is a scalar

Attributes

type DerivativeV = (Double, VectorD) => Double

Function type for derivative functions: f (t, y) where y is a vector

Function type for derivative functions: f (t, y) where y is a vector

Attributes

Value members

Concrete methods

def ballFlight(): Unit

The ballFlight main function is used to illustrate the RungeKutta 'RK' and DormandPrince 'DP' ODE solvers by applying them to Newton's Second Law of Motion, 'f = ma = -gm'. The flight of a golf ball is simulated from impact until the ball hits the ground. Note, a more realistic simulation would take additional forces into account: drag, lift and spin.

The ballFlight main function is used to illustrate the RungeKutta 'RK' and DormandPrince 'DP' ODE solvers by applying them to Newton's Second Law of Motion, 'f = ma = -gm'. The flight of a golf ball is simulated from impact until the ball hits the ground. Note, a more realistic simulation would take additional forces into account: drag, lift and spin.

Attributes

See also

home2.fvcc.edu/~dhicketh/DiffEqns/Spring11projects/Brett_Burglund_Ryan_Street/

Diff%20Q/pdfscreen/projectoutline.pdf

claymore.engineer.gvsu.edu/~lait/312/golfball.pdf The accuracies of 'RK' and 'DP' versus the exact solution (EX) are compared.

runMain scalation.dynamics.ballFlight

def dormandPrinceTest(): Unit

The dormandPrinceTest main function is used to test the DormandPrince object. This test is for non-stiff equations. Compare ode45 with ode23s.

The dormandPrinceTest main function is used to test the DormandPrince object. This test is for non-stiff equations. Compare ode45 with ode23s.

runMain scalation.dynamics.dormandPrinceTest

Attributes

def dormandPrincekTest2(): Unit

The dormandPrincekTest2 main function is used to test the DormandPrince object. This test is for stiff equations. Compare ode45 with ode23s.

The dormandPrincekTest2 main function is used to test the DormandPrince object. This test is for stiff equations. Compare ode45 with ode23s.

runMain scalation.dynamics.dormandPrincekTest2

Attributes

def dynamicEqTest(): Unit

The dynamicEqTest function to test the DynamicEq class using example at in Introduction to Computational Data Science using ScalaTion, section 15.1.

The dynamicEqTest function to test the DynamicEq class using example at in Introduction to Computational Data Science using ScalaTion, section 15.1.

runMain scalation.dynamics.dynamicEqTest

Attributes

def linearDiffEqTest(): Unit

The linearDiffEqTest object to test the LinearDiffEq class using example at

The linearDiffEqTest object to test the LinearDiffEq class using example at

Attributes

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) ]

runMain scalation.dynamics.linearDiffEqTest

def modRosenbrockTest(): Unit

The modRosenbrockTest main function is used to test the ModRosenbrock object. This test is for non-stiff equations. Compare ode23s with ode45.

The modRosenbrockTest main function is used to test the ModRosenbrock object. This test is for non-stiff equations. Compare ode23s with ode45.

runMain scalation.dynamics.modRosenbrockTest

Attributes

def modRosenbrockTest2(): Unit

The modRosenbrockTest2 main function is used to test the ModRosenbrock object. This test is for stiff equations. Compare ode23s with ode45.

The modRosenbrockTest2 main function is used to test the ModRosenbrock object. This test is for stiff equations. Compare ode23s with ode45.

runMain scalation.dynamics.modRosenbrockTest2

Attributes

def reactions(): Unit

The reactions main function simulates a simple chemical pathway for making H2O. Compares ode44 and ode45. FIX - add ode23s

The reactions main function simulates a simple chemical pathway for making H2O. Compares ode44 and ode45. FIX - add ode23s

Attributes

See also

the KINSOLVER Paper: www.cs.uga.edu/~thiab/paper25.pdf

runMain scalation.dynamics.reactions

def rungeKuttaTest(): Unit

The rungeKuttaTest mian function is used to test the RungeKutta object.

The rungeKuttaTest mian function is used to test the RungeKutta object.

runMain scalation.dynamics.rungeKuttaTest

Attributes