File: Minimization-Algorithms.html

package info (click to toggle)
gsl-ref-html 2.3-1
  • links: PTS
  • area: non-free
  • in suites: bullseye, buster, sid
  • size: 6,876 kB
  • ctags: 4,574
  • sloc: makefile: 35
file content (142 lines) | stat: -rw-r--r-- 7,337 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 The GSL Team.

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with the
Invariant Sections being "GNU General Public License" and "Free Software
Needs Free Documentation", the Front-Cover text being "A GNU Manual",
and with the Back-Cover Text being (a) (see below). A copy of the
license is included in the section entitled "GNU Free Documentation
License".

(a) The Back-Cover Text is: "You have the freedom to copy and modify this
GNU Manual." -->
<!-- Created by GNU Texinfo 5.1, http://www.gnu.org/software/texinfo/ -->
<head>
<title>GNU Scientific Library &ndash; Reference Manual: Minimization Algorithms</title>

<meta name="description" content="GNU Scientific Library &ndash; Reference Manual: Minimization Algorithms">
<meta name="keywords" content="GNU Scientific Library &ndash; Reference Manual: Minimization Algorithms">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="Function-Index.html#Function-Index" rel="index" title="Function Index">
<link href="One-dimensional-Minimization.html#One-dimensional-Minimization" rel="up" title="One dimensional Minimization">
<link href="Minimization-Examples.html#Minimization-Examples" rel="next" title="Minimization Examples">
<link href="Minimization-Stopping-Parameters.html#Minimization-Stopping-Parameters" rel="previous" title="Minimization Stopping Parameters">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>


</head>

<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="Minimization-Algorithms"></a>
<div class="header">
<p>
Next: <a href="Minimization-Examples.html#Minimization-Examples" accesskey="n" rel="next">Minimization Examples</a>, Previous: <a href="Minimization-Stopping-Parameters.html#Minimization-Stopping-Parameters" accesskey="p" rel="previous">Minimization Stopping Parameters</a>, Up: <a href="One-dimensional-Minimization.html#One-dimensional-Minimization" accesskey="u" rel="up">One dimensional Minimization</a> &nbsp; [<a href="Function-Index.html#Function-Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="Minimization-Algorithms-1"></a>
<h3 class="section">35.7 Minimization Algorithms</h3>

<p>The minimization algorithms described in this section require an initial
interval which is guaranteed to contain a minimum&mdash;if <em>a</em> and
<em>b</em> are the endpoints of the interval and <em>x</em> is an estimate
of the minimum then <em>f(a) &gt; f(x) &lt; f(b)</em>.  This ensures that the
function has at least one minimum somewhere in the interval.  If a valid
initial interval is used then these algorithm cannot fail, provided the
function is well-behaved.
</p>
<dl>
<dt><a name="index-gsl_005fmin_005ffminimizer_005fgoldensection"></a>Minimizer: <strong>gsl_min_fminimizer_goldensection</strong></dt>
<dd>
<a name="index-golden-section-algorithm-for-finding-minima"></a>
<a name="index-minimum-finding_002c-golden-section-algorithm"></a>

<p>The <em>golden section algorithm</em> is the simplest method of bracketing
the minimum of a function.  It is the slowest algorithm provided by the
library, with linear convergence.
</p>
<p>On each iteration, the algorithm first compares the subintervals from
the endpoints to the current minimum.  The larger subinterval is divided
in a golden section (using the famous ratio <em>(3-\sqrt 5)/2 =
0.3819660</em>&hellip;) and the value of the function at this new point is
calculated.  The new value is used with the constraint <em>f(a') &gt;
f(x') &lt; f(b')</em> to a select new interval containing the minimum, by
discarding the least useful point.  This procedure can be continued
indefinitely until the interval is sufficiently small.  Choosing the
golden section as the bisection ratio can be shown to provide the
fastest convergence for this type of algorithm.
</p>
</dd></dl>


<dl>
<dt><a name="index-gsl_005fmin_005ffminimizer_005fbrent"></a>Minimizer: <strong>gsl_min_fminimizer_brent</strong></dt>
<dd><a name="index-Brent_0027s-method-for-finding-minima"></a>
<a name="index-minimum-finding_002c-Brent_0027s-method"></a>

<p>The <em>Brent minimization algorithm</em> combines a parabolic
interpolation with the golden section algorithm.  This produces a fast
algorithm which is still robust.
</p>
<p>The outline of the algorithm can be summarized as follows: on each
iteration Brent&rsquo;s method approximates the function using an
interpolating parabola through three existing points.  The minimum of the
parabola is taken as a guess for the minimum.  If it lies within the
bounds of the current interval then the interpolating point is accepted,
and used to generate a smaller interval.  If the interpolating point is
not accepted then the algorithm falls back to an ordinary golden section
step.  The full details of Brent&rsquo;s method include some additional checks
to improve convergence.
</p></dd></dl>

<dl>
<dt><a name="index-gsl_005fmin_005ffminimizer_005fquad_005fgolden"></a>Minimizer: <strong>gsl_min_fminimizer_quad_golden</strong></dt>
<dd><a name="index-safeguarded-step_002dlength-algorithm"></a>
<p>This is a variant of Brent&rsquo;s algorithm which uses the safeguarded
step-length algorithm of Gill and Murray.
</p></dd></dl>


<hr>
<div class="header">
<p>
Next: <a href="Minimization-Examples.html#Minimization-Examples" accesskey="n" rel="next">Minimization Examples</a>, Previous: <a href="Minimization-Stopping-Parameters.html#Minimization-Stopping-Parameters" accesskey="p" rel="previous">Minimization Stopping Parameters</a>, Up: <a href="One-dimensional-Minimization.html#One-dimensional-Minimization" accesskey="u" rel="up">One dimensional Minimization</a> &nbsp; [<a href="Function-Index.html#Function-Index" title="Index" rel="index">Index</a>]</p>
</div>



</body>
</html>