Daniel S. T. Hughes > Algorithm-GoldenSection-0.0.2 > Algorithm::GoldenSection
Module Version: 0.0.2

# NAME

Algorithm::GoldenSection - Golden Section Search Algorithm for one-dimensional minimisation.

# VERSION

This document describes Algorithm::GoldenSection version 0.0.2

# DESCRIPTION

This module is an implementation of the Golden Section Search Algorithm for finding minima of a unimodal function. In order to isolate a minimum of a univariate functions the minimum must first be isolated. Consequently the program first bounds a minimum - i.e. the program initially creates a triplet of points: x_low < x_int < x_high, such that f(x_int) is lower than both f(x_low) and f(x_high). Thus we ensure that there is a local minimum within the interval: x_low-x_high. The program then uses the Golde Section Search algorithm to successively narrow down on the bounded region to find the minimum. See http://en.wikipedia.org/wiki/Golden_section_search and http://www.gnu.org/software/gsl/manual/html_node/One-dimensional-Minimization.html.

The module provides a Perl5OO interface. Simply construct a Algorithm::GoldenSection object with appropriate parameters - see "SYNOPSIS". Then call the minimise `method`. This returns a LIST of the value of x at the minimum, the value of f(x) at the minimum and the number of iterations used to isolate the minimum.

# SYNOPSIS

```    use Algorithm::GoldenSection;

# Create a Algorithm::GoldenSection object and pass it a CODE reference to the function to be minimised and initials values for x_low and x_int.
\$gs = Algorithm::GoldenSection->new( { function => sub { my \$x = shift; my \$b =  \$x * sin(\$x) - 2 * cos(\$x); return \$b },
x_low    => 4,
x_int    => 4.7,} ) ;

# Call minimisation method to bracket and minimise.
my (\$x_min, \$f_min, \$iterations) = \$gs->minimise;

print qq{\nMinimisation results: x a minimum = \$x_min, function value at minimum = \$f_min. Calculation took \$iterations iterations};```

# DEPENDENCIES

Carp => "1.08", Readonly => "1.03",

# AUTHOR

Daniel S. T. Hughes `<dsth@cantab.net>`

Copyright (c) 2010, Daniel S. T. Hughes `<dsth@cantab.net>`. All rights reserved.