Portability | uses ffi |
---|---|
Stability | provisional |
Maintainer | Alberto Ruiz (aruiz at um dot es) |
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 import Numeric.LinearAlgebra import Graphics.Plot xdot t [x,v] = [v, -0.95*x - 0.1*v] ts = linspace 100 (0,20) 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) -> Maybe (Double -> Vector Double -> Matrix Double) -> Vector Double -> Vector Double -> Matrix Double
- data ODEMethod
Documentation
:: (Double -> [Double] -> [Double]) | xdot(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.
:: ODEMethod | |
-> Double | initial step size |
-> Double | absolute tolerance for the state vector |
-> Double | relative tolerance for the state vector |
-> (Double -> Vector Double -> Vector Double) | xdot(t,x) |
-> Maybe (Double -> Vector Double -> Matrix Double) | optional jacobian |
-> Vector Double | initial conditions |
-> Vector Double | desired solution times |
-> Matrix Double | solution |
Evolution of the system with adaptive step-size control.
Stepping functions
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 |
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 | Implicit 2nd order Runge-Kutta at Gaussian points. |
RK4imp | Implicit 4th order Runge-Kutta at Gaussian points. |
BSimp | Implicit Bulirsch-Stoer method of Bader and Deuflhard. This algorithm requires the Jacobian. |
Gear1 | M=1 implicit Gear method. |
Gear2 | M=2 implicit Gear method. |