| Copyright | (c) Alberto Ruiz 2010 | 
|---|---|
| License | GPL | 
| Maintainer | Alberto Ruiz | 
| Stability | provisional | 
| Safe Haskell | None | 
| Language | Haskell98 | 
Numeric.GSL.ODE
Description
Solution of ordinary differential equation (ODE) initial value problems.
http://www.gnu.org/software/gsl/manual/html_node/Ordinary-Differential-Equations.html
A simple example:
import Numeric.GSL.ODE import Numeric.LinearAlgebra import Graphics.Plot(mplot) xdot t [x,v] = [v, -0.95*x - 0.1*v] ts = linspace 100 (0,20 :: Double) sol = odeSolve xdot [10,0] ts main = mplot (ts : toColumns sol)
- odeSolve :: (Double -> [Double] -> [Double]) -> [Double] -> Vector Double -> Matrix Double
 - odeSolveV :: ODEMethod -> Double -> Double -> Double -> (Double -> Vector Double -> Vector Double) -> Vector Double -> Vector Double -> Matrix Double
 - odeSolveVWith :: ODEMethod -> StepControl -> Double -> (Double -> Vector Double -> Vector Double) -> Vector Double -> Vector Double -> Matrix Double
 - data ODEMethod
 - type Jacobian = Double -> Vector Double -> Matrix Double
 - data StepControl
 
Documentation
Arguments
| :: (Double -> [Double] -> [Double]) | x'(t,x)  | 
| -> [Double] | initial conditions  | 
| -> Vector Double | desired solution times  | 
| -> Matrix Double | solution  | 
A version of odeSolveV with reasonable default parameters and system of equations defined using lists.
Arguments
| :: ODEMethod | |
| -> Double | initial step size  | 
| -> Double | absolute tolerance for the state vector  | 
| -> Double | relative tolerance for the state vector  | 
| -> (Double -> Vector Double -> Vector Double) | x'(t,x)  | 
| -> Vector Double | initial conditions  | 
| -> Vector Double | desired solution times  | 
| -> Matrix Double | solution  | 
A version of odeSolveVWith with reasonable default step control.
Arguments
| :: ODEMethod | |
| -> StepControl | |
| -> Double | initial step size  | 
| -> (Double -> Vector Double -> Vector Double) | x'(t,x)  | 
| -> Vector Double | initial conditions  | 
| -> Vector Double | desired solution times  | 
| -> Matrix Double | solution  | 
Evolution of the system with adaptive step-size control.
Stepping functions
Constructors
| RK2 | Embedded Runge-Kutta (2, 3) method.  | 
| RK4 | 4th order (classical) Runge-Kutta. The error estimate is obtained by halving the step-size. For more efficient estimate of the error, use the embedded methods.  | 
| RKf45 | Embedded Runge-Kutta-Fehlberg (4, 5) method. This method is a good general-purpose integrator.  | 
| RKck | Embedded Runge-Kutta Cash-Karp (4, 5) method.  | 
| RK8pd | Embedded Runge-Kutta Prince-Dormand (8,9) method.  | 
| RK2imp Jacobian | Implicit 2nd order Runge-Kutta at Gaussian points.  | 
| RK4imp Jacobian | Implicit 4th order Runge-Kutta at Gaussian points.  | 
| BSimp Jacobian | Implicit Bulirsch-Stoer method of Bader and Deuflhard. The method is generally suitable for stiff problems.  | 
| RK1imp Jacobian | Implicit Gaussian first order Runge-Kutta. Also known as implicit Euler or backward Euler method. Error estimation is carried out by the step doubling method.  | 
| MSAdams | A variable-coefficient linear multistep Adams method in Nordsieck form. This stepper uses explicit Adams-Bashforth (predictor) and implicit Adams-Moulton (corrector) methods in P(EC)^m functional iteration mode. Method order varies dynamically between 1 and 12.  | 
| MSBDF Jacobian | A variable-coefficient linear multistep backward differentiation formula (BDF) method in Nordsieck form. This stepper uses the explicit BDF formula as predictor and implicit BDF formula as corrector. A modified Newton iteration method is used to solve the system of non-linear equations. Method order varies dynamically between 1 and 5. The method is generally suitable for stiff problems.  | 
data StepControl Source #
Adaptive step-size control functions