hmatrix-0.11.0.1: Linear algebra and numerical computation

Portabilityuses ffi
Stabilityprovisional
MaintainerAlberto Ruiz (aruiz at um dot es)

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

rootSource

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.

rootJSource

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.