Copyright | (c) Alberto Ruiz 2009 |
---|---|
License | GPL |
Maintainer | Alberto Ruiz |
Stability | provisional |
Safe Haskell | None |
Language | Haskell98 |
Numeric.GSL.Root
Description
Multidimensional root finding.
http://www.gnu.org/software/gsl/manual/html_node/Multidimensional-Root_002dFinding.html
The example in the GSL manual:
>>>
let rosenbrock a b [x,y] = [ a*(1-x), b*(y-x^2) ]
>>>
let (sol,path) = root Hybrids 1E-7 30 (rosenbrock 1 10) [-10,-5]
>>>
sol
[1.0,1.0]>>>
disp 3 path
11x5 1.000 -10.000 -5.000 11.000 -1050.000 2.000 -3.976 24.827 4.976 90.203 3.000 -3.976 24.827 4.976 90.203 4.000 -3.976 24.827 4.976 90.203 5.000 -1.274 -5.680 2.274 -73.018 6.000 -1.274 -5.680 2.274 -73.018 7.000 0.249 0.298 0.751 2.359 8.000 0.249 0.298 0.751 2.359 9.000 1.000 0.878 -0.000 -1.218 10.000 1.000 0.989 -0.000 -0.108 11.000 1.000 1.000 0.000 0.000
- uniRoot :: UniRootMethod -> Double -> Int -> (Double -> Double) -> Double -> Double -> (Double, Matrix Double)
- data UniRootMethod
- uniRootJ :: UniRootMethodJ -> Double -> Int -> (Double -> Double) -> (Double -> Double) -> Double -> (Double, Matrix Double)
- data UniRootMethodJ
- = UNewton
- | Secant
- | Steffenson
- root :: RootMethod -> Double -> Int -> ([Double] -> [Double]) -> [Double] -> ([Double], Matrix Double)
- data RootMethod
- rootJ :: RootMethodJ -> Double -> Int -> ([Double] -> [Double]) -> ([Double] -> [[Double]]) -> [Double] -> ([Double], Matrix Double)
- data RootMethodJ
Documentation
uniRoot :: UniRootMethod -> Double -> Int -> (Double -> Double) -> Double -> Double -> (Double, Matrix Double) Source
data UniRootMethod Source
uniRootJ :: UniRootMethodJ -> Double -> Int -> (Double -> Double) -> (Double -> Double) -> Double -> (Double, Matrix Double) Source
data UniRootMethodJ Source
Constructors
UNewton | |
Secant | |
Steffenson |
Arguments
:: RootMethod | |
-> Double | maximum residual |
-> Int | maximum number of iterations allowed |
-> ([Double] -> [Double]) | function to minimize |
-> [Double] | starting point |
-> ([Double], Matrix Double) | solution vector and optimization path |
Nonlinear multidimensional root finding using algorithms that do not require any derivative information to be supplied by the user. Any derivatives needed are approximated by finite differences.
data RootMethod Source
Instances
Arguments
:: RootMethodJ | |
-> Double | maximum residual |
-> Int | maximum number of iterations allowed |
-> ([Double] -> [Double]) | function to minimize |
-> ([Double] -> [[Double]]) | Jacobian |
-> [Double] | starting point |
-> ([Double], Matrix Double) | solution vector and optimization path |
Nonlinear multidimensional root finding using both the function and its derivatives.
data RootMethodJ Source
Instances