Copyright | (c) Alberto Ruiz 2009 |
---|---|
License | GPL |
Maintainer | Alberto Ruiz |
Stability | provisional |
Safe Haskell | None |
Language | Haskell2010 |
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
Synopsis
- 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 #
Instances
Bounded UniRootMethod Source # | |
Defined in Numeric.GSL.Root | |
Enum UniRootMethod Source # | |
Defined in Numeric.GSL.Root Methods succ :: UniRootMethod -> UniRootMethod # pred :: UniRootMethod -> UniRootMethod # toEnum :: Int -> UniRootMethod # fromEnum :: UniRootMethod -> Int # enumFrom :: UniRootMethod -> [UniRootMethod] # enumFromThen :: UniRootMethod -> UniRootMethod -> [UniRootMethod] # enumFromTo :: UniRootMethod -> UniRootMethod -> [UniRootMethod] # enumFromThenTo :: UniRootMethod -> UniRootMethod -> UniRootMethod -> [UniRootMethod] # | |
Eq UniRootMethod Source # | |
Defined in Numeric.GSL.Root Methods (==) :: UniRootMethod -> UniRootMethod -> Bool # (/=) :: UniRootMethod -> UniRootMethod -> Bool # | |
Show UniRootMethod Source # | |
Defined in Numeric.GSL.Root Methods showsPrec :: Int -> UniRootMethod -> ShowS # show :: UniRootMethod -> String # showList :: [UniRootMethod] -> ShowS # |
uniRootJ :: UniRootMethodJ -> Double -> Int -> (Double -> Double) -> (Double -> Double) -> Double -> (Double, Matrix Double) Source #
data UniRootMethodJ Source #
Constructors
UNewton | |
Secant | |
Steffenson |
Instances
Bounded UniRootMethodJ Source # | |
Defined in Numeric.GSL.Root | |
Enum UniRootMethodJ Source # | |
Defined in Numeric.GSL.Root Methods succ :: UniRootMethodJ -> UniRootMethodJ # pred :: UniRootMethodJ -> UniRootMethodJ # toEnum :: Int -> UniRootMethodJ # fromEnum :: UniRootMethodJ -> Int # enumFrom :: UniRootMethodJ -> [UniRootMethodJ] # enumFromThen :: UniRootMethodJ -> UniRootMethodJ -> [UniRootMethodJ] # enumFromTo :: UniRootMethodJ -> UniRootMethodJ -> [UniRootMethodJ] # enumFromThenTo :: UniRootMethodJ -> UniRootMethodJ -> UniRootMethodJ -> [UniRootMethodJ] # | |
Eq UniRootMethodJ Source # | |
Defined in Numeric.GSL.Root Methods (==) :: UniRootMethodJ -> UniRootMethodJ -> Bool # (/=) :: UniRootMethodJ -> UniRootMethodJ -> Bool # | |
Show UniRootMethodJ Source # | |
Defined in Numeric.GSL.Root Methods showsPrec :: Int -> UniRootMethodJ -> ShowS # show :: UniRootMethodJ -> String # showList :: [UniRootMethodJ] -> ShowS # |
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
Bounded RootMethod Source # | |
Defined in Numeric.GSL.Root | |
Enum RootMethod Source # | |
Defined in Numeric.GSL.Root Methods succ :: RootMethod -> RootMethod # pred :: RootMethod -> RootMethod # toEnum :: Int -> RootMethod # fromEnum :: RootMethod -> Int # enumFrom :: RootMethod -> [RootMethod] # enumFromThen :: RootMethod -> RootMethod -> [RootMethod] # enumFromTo :: RootMethod -> RootMethod -> [RootMethod] # enumFromThenTo :: RootMethod -> RootMethod -> RootMethod -> [RootMethod] # | |
Eq RootMethod Source # | |
Defined in Numeric.GSL.Root | |
Show RootMethod Source # | |
Defined in Numeric.GSL.Root Methods showsPrec :: Int -> RootMethod -> ShowS # show :: RootMethod -> String # showList :: [RootMethod] -> ShowS # |
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
Bounded RootMethodJ Source # | |
Defined in Numeric.GSL.Root | |
Enum RootMethodJ Source # | |
Defined in Numeric.GSL.Root Methods succ :: RootMethodJ -> RootMethodJ # pred :: RootMethodJ -> RootMethodJ # toEnum :: Int -> RootMethodJ # fromEnum :: RootMethodJ -> Int # enumFrom :: RootMethodJ -> [RootMethodJ] # enumFromThen :: RootMethodJ -> RootMethodJ -> [RootMethodJ] # enumFromTo :: RootMethodJ -> RootMethodJ -> [RootMethodJ] # enumFromThenTo :: RootMethodJ -> RootMethodJ -> RootMethodJ -> [RootMethodJ] # | |
Eq RootMethodJ Source # | |
Defined in Numeric.GSL.Root | |
Show RootMethodJ Source # | |
Defined in Numeric.GSL.Root Methods showsPrec :: Int -> RootMethodJ -> ShowS # show :: RootMethodJ -> String # showList :: [RootMethodJ] -> ShowS # |