File: maxima_199.html

package info (click to toggle)
maxima 5.47.0-9
  • links: PTS
  • area: main
  • in suites: forky, sid
  • size: 193,104 kB
  • sloc: lisp: 434,678; fortran: 14,665; tcl: 10,990; sh: 4,577; makefile: 2,763; ansic: 447; java: 328; python: 262; perl: 201; xml: 60; awk: 28; sed: 15; javascript: 2
file content (141 lines) | stat: -rw-r--r-- 8,207 bytes parent folder | download | duplicates (2)
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
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Created by GNU Texinfo 5.1, http://www.gnu.org/software/texinfo/ -->
<head>
<title>Maxima 5.47.0 Manual: Introduction to cobyla</title>

<meta name="description" content="Maxima 5.47.0 Manual: Introduction to cobyla">
<meta name="keywords" content="Maxima 5.47.0 Manual: Introduction to cobyla">
<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="maxima_toc.html#Top" rel="start" title="Top">
<link href="maxima_423.html#Function-and-Variable-Index" rel="index" title="Function and Variable Index">
<link href="maxima_toc.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="maxima_198.html#cobyla_002dpkg" rel="up" title="cobyla-pkg">
<link href="maxima_200.html#Functions-and-Variables-for-cobyla" rel="next" title="Functions and Variables for cobyla">
<link href="maxima_198.html#cobyla_002dpkg" rel="previous" title="cobyla-pkg">
<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}
body {color: black; background: white;  margin-left: 8%; margin-right: 13%;
      font-family: "FreeSans", sans-serif}
h1 {font-size: 150%; font-family: "FreeSans", sans-serif}
h2 {font-size: 125%; font-family: "FreeSans", sans-serif}
h3 {font-size: 100%; font-family: "FreeSans", sans-serif}
a[href] {color: rgb(0,0,255); text-decoration: none;}
a[href]:hover {background: rgb(220,220,220);}
div.textbox {border: solid; border-width: thin; padding-top: 1em;
    padding-bottom: 1em; padding-left: 2em; padding-right: 2em}
div.titlebox {border: none; padding-top: 1em; padding-bottom: 1em;
    padding-left: 2em; padding-right: 2em; background: rgb(200,255,255);
    font-family: sans-serif}
div.synopsisbox {
    border: none; padding-top: 1em; padding-bottom: 1em; padding-left: 2em;
    padding-right: 2em; background: rgb(255,220,255);}
pre.example {border: 1px solid rgb(180,180,180); padding-top: 1em;
    padding-bottom: 1em; padding-left: 1em; padding-right: 1em;
    background-color: rgb(238,238,255)}
div.spacerbox {border: none; padding-top: 2em; padding-bottom: 2em}
div.image {margin: 0; padding: 1em; text-align: center}
div.categorybox {border: 1px solid gray; padding-top: 1em; padding-bottom: 1em;
    padding-left: 1em; padding-right: 1em; background: rgb(247,242,220)}
img {max-width:80%; max-height: 80%; display: block; margin-left: auto; margin-right: auto}

-->
</style>

<link rel="icon" href="figures/favicon.ico">
<script src="https://polyfill.io/v3/polyfill.min.js?features=es6>"></script>
<script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
</head>

<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="Introduction-to-cobyla"></a>
<div class="header">
<p>
Next: <a href="maxima_200.html#Functions-and-Variables-for-cobyla" accesskey="n" rel="next">Functions and Variables for cobyla</a>, Previous: <a href="maxima_198.html#cobyla_002dpkg" accesskey="p" rel="previous">cobyla-pkg</a>, Up: <a href="maxima_198.html#cobyla_002dpkg" accesskey="u" rel="up">cobyla-pkg</a> &nbsp; [<a href="maxima_toc.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="maxima_423.html#Function-and-Variable-Index" title="Index" rel="index">Index</a>]</p>
</div>
<a name="Introduction-to-cobyla-1"></a>
<h3 class="section">47.1 Introduction to cobyla</h3>

<p><code>fmin_cobyla</code> is a Common Lisp translation (via <code>f2cl</code>) of the
Fortran constrained optimization routine COBYLA by Powell[1][2][3].  
</p>
<p>COBYLA minimizes an objective function <em>F(X)</em> subject to <em>M</em> inequality
constraints of the form 
\(g(X) \ge 0\) on <em>X</em>,
where <em>X</em> is a vector of variables that has <em>N</em> components.
</p>
<p>Equality constraints <em>g(X) = 0</em> can often be implemented by a pair of inequality 
constraints 
\(g(X) \ge 0\) and 
\(-g(X) \ge 0.\)  Maxima&rsquo;s interface to COBYLA
allows equality constraints and internally converts the equality
constraints to a pair of inequality constraints.
</p>
<p>The algorithm employs linear approximations to the
objective and constraint functions, the approximations being formed by
linear interpolation at <em>N+1</em> points in the space of the variables.
The interpolation points are regarded as vertices of a simplex. The
parameter <var>RHO</var> controls the size of the simplex and it is reduced
automatically from <var>RHOBEG</var> to <var>RHOEND</var>. For each <var>RHO</var> the subroutine tries
to achieve a good vector of variables for the current size, and then
<var>RHO</var> is reduced until the value <var>RHOEND</var> is reached. Therefore, <var>RHOBEG</var> and
<var>RHOEND</var> should be set to reasonable initial changes to and the required   
accuracy in the variables respectively, but this accuracy should be
viewed as a subject for experimentation because it is not guaranteed.
The routine treats each constraint individually when calculating
a change to the variables, rather than lumping the constraints together
into a single penalty function. The name of the subroutine is derived
from the phrase Constrained Optimization BY Linear Approximations.
</p>

<p>References:
</p>
<p>[1] Fortran Code is from <a href="http://plato.asu.edu/sub/nlores.html#general">http://plato.asu.edu/sub/nlores.html#general</a>
</p>
<p>[2] M. J. D. Powell, &quot;A direct search optimization method that models the objective and constraint functions by linear interpolation,&quot; in Advances in Optimization and Numerical Analysis, eds. S. Gomez and J.-P. Hennart (Kluwer Academic: Dordrecht, 1994), p. 51-67. 
</p>
<p>[3] M. J. D. Powell, &quot;Direct search algorithms for optimization calculations,&quot; Acta Numerica 7, 287-336 (1998).  Also available as University of Cambridge, Department of Applied Mathematics and Theoretical Physics,  Numerical Analysis Group, Report NA1998/04 from <a href="http://www.damtp.cam.ac.uk/user/na/reports.html">http://www.damtp.cam.ac.uk/user/na/reports.html</a>
</p>
<div class=categorybox>
Categories:<a href="maxima_424.html#Category_003a-Numerical-methods">Numerical methods</a>
&middot;<a href="maxima_424.html#Category_003a-Optimization">Optimization</a>
&middot;<a href="maxima_424.html#Category_003a-Share-packages">Share packages</a>
&middot;<a href="maxima_424.html#Category_003a-Package-cobyla">Package cobyla</a>
&middot;</div>
<a name="Item_003a-cobyla_002fnode_002fFunctions-and-Variables-for-cobyla"></a><hr>
<div class="header">
<p>
Next: <a href="maxima_200.html#Functions-and-Variables-for-cobyla" accesskey="n" rel="next">Functions and Variables for cobyla</a>, Previous: <a href="maxima_198.html#cobyla_002dpkg" accesskey="p" rel="previous">cobyla-pkg</a>, Up: <a href="maxima_198.html#cobyla_002dpkg" accesskey="u" rel="up">cobyla-pkg</a> &nbsp; [<a href="maxima_toc.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="maxima_423.html#Function-and-Variable-Index" title="Index" rel="index">Index</a>]</p>
</div>



</body>
</html>