hmatrix-0.15.2.1: Linear algebra and numerical computation

Copyright(c) Alberto Ruiz 2009
LicenseGPL
MaintainerAlberto Ruiz (aruiz at um dot es)
Stabilityprovisional
Portabilityuses ffi
Safe HaskellNone
LanguageHaskell98

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:

@import Numeric.GSL import Numeric.LinearAlgebra(format) import Text.Printf(printf)

rosenbrock a b [x,y] = [ a*(1-x), b*(y-x^2) ]

disp = putStrLn . format " " (printf "%.3f")

main = do let (sol,path) = root Hybrids 1E-7 30 (rosenbrock 1 10) [-10,-5] print sol disp path

> main [1.0,1.0] 0.000 -10.000 -5.000 11.000 -1050.000 1.000 -3.976 24.827 4.976 90.203 2.000 -3.976 24.827 4.976 90.203 3.000 -3.976 24.827 4.976 90.203 4.000 -1.274 -5.680 2.274 -73.018 5.000 -1.274 -5.680 2.274 -73.018 6.000 0.249 0.298 0.751 2.359 7.000 0.249 0.298 0.751 2.359 8.000 1.000 0.878 -0.000 -1.218 9.000 1.000 0.989 -0.000 -0.108 10.000 1.000 1.000 0.000 0.000 @

Synopsis

Documentation

root Source

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.

rootJ Source

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.