11523
|
1 @c Copyright (C) 1996-2011 John W. Eaton |
7018
|
2 @c |
|
3 @c This file is part of Octave. |
|
4 @c |
|
5 @c Octave is free software; you can redistribute it and/or modify it |
|
6 @c under the terms of the GNU General Public License as published by the |
|
7 @c Free Software Foundation; either version 3 of the License, or (at |
|
8 @c your option) any later version. |
|
9 @c |
|
10 @c Octave is distributed in the hope that it will be useful, but WITHOUT |
|
11 @c ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
|
12 @c FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
|
13 @c for more details. |
|
14 @c |
|
15 @c You should have received a copy of the GNU General Public License |
|
16 @c along with Octave; see the file COPYING. If not, see |
|
17 @c <http://www.gnu.org/licenses/>. |
|
18 |
2657
|
19 @node Optimization, Quadrature, Nonlinear Equations, Top |
2656
|
20 @chapter Optimization |
|
21 @cindex optimization |
|
22 |
2657
|
23 @menu |
|
24 * Objective Functions:: |
|
25 * Bounds:: |
|
26 * Linear Constraints:: |
|
27 * Nonlinear Constraints:: |
|
28 * Quadratic Programming:: |
|
29 * Nonlinear Programming:: |
|
30 @end menu |
|
31 |
|
32 @node Objective Functions, Bounds, Optimization, Optimization |
2656
|
33 @section Objective Functions |
2333
|
34 @cindex objective functions |
|
35 |
5647
|
36 @deftypefn {} {} Objective (void) |
|
37 @deftypefnx {} {} Objective (const @var{objective_fcn}) |
|
38 @deftypefnx {} {} Objective (const @var{objective_fcn}, const @var{gradient_fcn}) |
|
39 @deftypefnx {} {} Objective (const Objective &@var{a}) |
2333
|
40 @end deftypefn |
|
41 |
|
42 @deftypefn {} Objective& {operator =} (const Objective &@var{a}) |
|
43 @end deftypefn |
|
44 |
|
45 @deftypefn {} objective_fcn objective_function (void) const; |
|
46 @end deftypefn |
|
47 |
|
48 @deftypefn {} Objective& set_objective_function (const @var{objective_fcn}) |
|
49 @end deftypefn |
|
50 |
|
51 @deftypefn {} gradient_fcn gradient_function (void) const; |
|
52 @end deftypefn |
|
53 |
|
54 @deftypefn {} Objective& set_gradient_function (const @var{gradient_fcn}) |
|
55 @end deftypefn |
|
56 |
|
57 @c ------------------------------------------------------------------------ |
|
58 |
2657
|
59 @node Bounds, Linear Constraints, Objective Functions, Optimization |
2656
|
60 @section Bounds |
2333
|
61 @cindex bounds |
|
62 |
5647
|
63 @deftypefn {} {} Bounds (void) |
|
64 @deftypefnx {} {} Bounds (int @var{n}) |
|
65 @deftypefnx {} {} Bounds (const ColumnVector @var{lb}, const ColumnVector @var{ub}) |
|
66 @deftypefnx {} {} Bounds (const Bounds &@var{a}) |
2333
|
67 @end deftypefn |
|
68 |
|
69 @deftypefn {} Bounds& {operator =} (const Bounds &@var{a}) |
|
70 @end deftypefn |
|
71 |
|
72 @deftypefn {} Bounds& resize (int @var{n}) |
|
73 @end deftypefn |
|
74 |
|
75 @deftypefn {} double lower_bound (int @var{index}) const; |
|
76 @deftypefnx {} double upper_bound (int @var{index}) const; |
|
77 @end deftypefn |
|
78 |
|
79 @deftypefn {} ColumnVector lower_bounds (void) const; |
|
80 @deftypefnx {} ColumnVector upper_bounds (void) const; |
|
81 @end deftypefn |
|
82 |
|
83 @deftypefn {} int size (void) const; |
|
84 @end deftypefn |
|
85 |
|
86 @deftypefn {} Bounds& set_bound (int @var{index}, double @var{low}, double @var{high}) |
|
87 @end deftypefn |
|
88 |
|
89 @deftypefn {} Bounds& set_bounds (double @var{low}, double @var{high}) |
|
90 @deftypefnx {} Bounds& set_bounds (const ColumnVector @var{lb}, const ColumnVector @var{ub}) |
|
91 @end deftypefn |
|
92 |
|
93 @deftypefn {} Bounds& set_lower_bound (int @var{index}, double @var{low}) |
|
94 @deftypefnx {} Bounds& set_upper_bound (int @var{index}, double @var{high}) |
|
95 @end deftypefn |
|
96 |
|
97 @deftypefn {} Bounds& set_lower_bounds (double @var{low}) |
|
98 @deftypefnx {} Bounds& set_upper_bounds (double @var{high}) |
|
99 @end deftypefn |
|
100 |
|
101 @deftypefn {} Bounds& set_lower_bounds (const ColumnVector @var{lb}) |
|
102 @deftypefnx {} Bounds& set_upper_bounds (const ColumnVector @var{ub}) |
|
103 @end deftypefn |
|
104 |
|
105 @deftypefn {} {ostream&} {operator <<} (ostream &@var{os}, const Bounds &@var{b}) |
|
106 @end deftypefn |
|
107 |
|
108 @c ------------------------------------------------------------------------ |
|
109 |
2657
|
110 @node Linear Constraints, Nonlinear Constraints, Bounds, Optimization |
2656
|
111 @section Linear Constraints |
2333
|
112 @cindex linear Constraints |
|
113 |
5647
|
114 @deftypefn {} {} LinConst (void) |
|
115 @deftypefnx {} {} LinConst (int @var{nclin}, int @var{nx}) |
|
116 @deftypefnx {} {} LinConst (int @var{nclin_eq}, int @var{nclin_ineq}, int @var{nx}) |
|
117 @deftypefnx {} {} LinConst (const ColumnVector &@var{lb}, const Matrix &@var{A}, const ColumnVector &@var{ub}) |
|
118 @deftypefnx {} {} LinConst (const Matrix &@var{A_eq}, const ColumnVector &@var{b_eq}, const Matrix &@var{A_ineq}, const ColumnVector &@var{b_ineq}) |
|
119 @deftypefnx {} {} LinConst (const LinConst &@var{a}) |
2333
|
120 @end deftypefn |
|
121 |
|
122 @deftypefn {} LinConst& {operator =} (const LinConst &@var{a}) |
|
123 @end deftypefn |
|
124 |
|
125 @deftypefn {} LinConst& resize (int @var{nclin}, int @var{n}) |
|
126 @end deftypefn |
|
127 |
|
128 @deftypefn {} Matrix constraint_matrix (void) const; |
|
129 @end deftypefn |
|
130 |
|
131 @deftypefn {} LinConst& set_constraint_matrix (const Matrix &@var{A}) |
|
132 @end deftypefn |
|
133 |
|
134 @deftypefn {} Matrix eq_constraint_matrix (void) const; |
|
135 @deftypefnx {} Matrix ineq_constraint_matrix (void) const; |
|
136 @end deftypefn |
|
137 |
|
138 @deftypefn {} ColumnVector eq_constraint_vector (void) const; |
|
139 @deftypefnx {} ColumnVector ineq_constraint_vector (void) const; |
|
140 @end deftypefn |
|
141 |
|
142 @deftypefn {} {ostream&} {operator <<} (ostream &@var{os}, const LinConst &@var{b}) |
|
143 @end deftypefn |
|
144 |
|
145 @c ------------------------------------------------------------------------ |
|
146 |
2657
|
147 @node Nonlinear Constraints, Quadratic Programming, Linear Constraints, Optimization |
2656
|
148 @section Nonlinear Constraints |
2333
|
149 @cindex nonlinear Constraints |
|
150 |
5647
|
151 @deftypefn {} {} NLConst (void) |
|
152 @deftypefnx {} {} NLConst (int @var{n}) |
|
153 @deftypefnx {} {} NLConst (const ColumnVector @var{lb}, const NLFunc @var{f}, const ColumnVector @var{ub}) |
|
154 @deftypefnx {} {} NLConst (const NLConst &@var{a}) |
2333
|
155 @end deftypefn |
|
156 |
|
157 @deftypefn {} NLConst& {operator =} (const NLConst &@var{a}) |
|
158 @end deftypefn |
|
159 |
2657
|
160 @node Quadratic Programming, Nonlinear Programming, Nonlinear Constraints, Optimization |
2656
|
161 @section Quadratic Programming |
2333
|
162 @cindex QP |
|
163 @cindex quadratic programming |
|
164 |
5647
|
165 @deftypefn {} {} QP (void) |
|
166 @deftypefnx {} {} QP (const ColumnVector &@var{x}, const Matrix &@var{H}) |
|
167 @deftypefnx {} {} QP (const ColumnVector &@var{x}, const Matrix &@var{H}, const ColumnVector &@var{c}) |
|
168 @deftypefnx {} {} QP (const ColumnVector &@var{x}, const Matrix &@var{H}, const Bounds &@var{b}) |
|
169 @deftypefnx {} {} QP (const ColumnVector &@var{x}, const Matrix &@var{H}, const LinConst &@var{lc}) |
|
170 @deftypefnx {} {} QP (const ColumnVector &@var{x}, const Matrix &@var{H}, const ColumnVector &@var{c}, const Bounds &@var{b}) |
|
171 @deftypefnx {} {} QP (const ColumnVector &@var{x}, const Matrix &@var{H}, const ColumnVector &@var{c}, const LinConst &@var{lc}) |
|
172 @deftypefnx {} {} QP (const ColumnVector &@var{x}, const Matrix &@var{H}, const Bounds &@var{b}, const LinConst &@var{lc}) |
|
173 @deftypefnx {} {} QP (const ColumnVector &@var{x}, const Matrix &@var{H}, const ColumnVector &@var{c}, const Bounds &@var{b}, const LinConst &@var{lc}) |
2333
|
174 @end deftypefn |
|
175 |
|
176 @deftypefn {} {virtual ColumnVector} minimize (void) |
|
177 @deftypefnx {} {virtual ColumnVector} minimize (double &@var{objf}) |
|
178 @deftypefnx {} {virtual ColumnVector} minimize (double &@var{objf}, int &@var{inform}) |
|
179 @deftypefnx {} {virtual ColumnVector} minimize (double &@var{objf}, int &@var{inform}, ColumnVector &@var{lambda}) = 0; |
|
180 @end deftypefn |
|
181 |
|
182 @deftypefn {} {virtual ColumnVector} minimize (const ColumnVector &@var{x}) |
|
183 @deftypefnx {} {virtual ColumnVector} minimize (const ColumnVector &@var{x}, double &@var{objf}) |
|
184 @deftypefnx {} {virtual ColumnVector} minimize (const ColumnVector &@var{x}, double &@var{objf}, int &@var{inform}) |
|
185 @deftypefnx {} {virtual ColumnVector} minimize (const ColumnVector &@var{x}, double &@var{objf}, int &@var{inform}, ColumnVector &@var{lambda}) |
|
186 @end deftypefn |
|
187 |
|
188 @deftypefn {} ColumnVector minimize (double &@var{objf}, int &@var{inform}, ColumnVector &@var{lambda}) |
|
189 @end deftypefn |
|
190 |
|
191 @c ------------------------------------------------------------------------ |
|
192 |
2657
|
193 @node Nonlinear Programming, , Quadratic Programming, Optimization |
2656
|
194 @section Nonlinear Programming |
2333
|
195 @cindex NLP |
|
196 @cindex nonlinear programming |
|
197 |
5647
|
198 @deftypefn {} {} NLP (void) |
|
199 @deftypefnx {} {} NLP (const ColumnVector &@var{x}, const Objective &@var{phi}) |
|
200 @deftypefnx {} {} NLP (const ColumnVector &@var{x}, const Objective &@var{phi}, const Bounds &@var{b}) |
|
201 @deftypefnx {} {} NLP (const ColumnVector &@var{x}, const Objective &@var{phi}, const Bounds &@var{b}, const LinConst &@var{lc}) |
|
202 @deftypefnx {} {} NLP (const ColumnVector &@var{x}, const Objective &@var{phi}, const Bounds &@var{b}, const LinConst &@var{lc}, const NLConst &@var{nlc}) |
|
203 @deftypefnx {} {} NLP (const ColumnVector &@var{x}, const Objective &@var{phi}, const LinConst &@var{lc}) |
|
204 @deftypefnx {} {} NLP (const ColumnVector &@var{x}, const Objective &@var{phi}, const LinConst &@var{lc}, const NLConst &@var{nlc}) |
|
205 @deftypefnx {} {} NLP (const ColumnVector &@var{x}, const Objective &@var{phi}, const NLConst &@var{nlc}) |
|
206 @deftypefnx {} {} NLP (const ColumnVector &@var{x}, const Objective &@var{phi}, const Bounds &@var{b}, const NLConst &@var{nlc}) |
2333
|
207 @end deftypefn |
|
208 |
|
209 @deftypefn {} NLP& {operator =} (const NLP &@var{a}) |
|
210 @end deftypefn |
|
211 |
|
212 @deftypefn {} int size (void) const |
|
213 @end deftypefn |
|
214 |
|
215 @deftypefn {} ColumnVector minimize (void) |
|
216 @deftypefnx {} ColumnVector minimize (double &@var{objf}) |
|
217 @deftypefnx {} ColumnVector minimize (double &@var{objf}, int &@var{inform}) |
|
218 @deftypefnx {} ColumnVector minimize (double &@var{objf}, int &@var{inform}, ColumnVector &@var{lambda}) |
|
219 @end deftypefn |
|
220 |
|
221 @deftypefn {} ColumnVector minimize (const ColumnVector &@var{x}) |
|
222 @deftypefnx {} ColumnVector minimize (const ColumnVector &@var{x}, double &@var{objf}) |
|
223 @deftypefnx {} ColumnVector minimize (const ColumnVector &@var{x}, double &@var{objf}, int &@var{inform}) |
|
224 @deftypefnx {} ColumnVector minimize (const ColumnVector &@var{x}, double &@var{objf}, int &@var{inform}, ColumnVector &@var{lambda}) |
|
225 @end deftypefn |