2
* Definitions for augmented_lagrangian::
5
@node Definitions for augmented_lagrangian, , augmented_lagrangian, augmented_lagrangian
6
@section Definitions for augmented_lagrangian
8
@deffn {Function} augmented_lagrangian_method (@var{FOM}, @var{xx}, @var{C}, @var{yy})
9
@deffnx {Function} augmented_lagrangian_method (@var{FOM}, @var{xx}, @var{C}, @var{yy}, optional_args)
11
Returns an approximate minimum of the expression @var{FOM}
12
with respect to the variables @var{xx},
13
holding the constraints @var{C} equal to zero.
14
@var{yy} is a list of initial guesses for @var{xx}.
15
The method employed is the augmented Lagrangian method (see Refs [1] and [2]).
17
@code{optional_args} represents additional arguments,
18
specified as @code{@var{symbol} = @var{value}}.
19
The optional arguments recognized are:
23
Number of iterations of the augmented Lagrangian algorithm
25
Tolerance supplied to LBFGS
27
IPRINT parameter (a list of two integers which controls verbosity) supplied to LBFGS
29
Initial value of @code{%lambda} to be used for calculating the augmented Lagrangian
32
This implementation minimizes the augmented Lagrangian by
33
applying the limited-memory BFGS (LBFGS) algorithm,
34
which is a quasi-Newton algorithm.
36
@code{load(augmented_lagrangian)} loads this function.
38
See also @code{lbfgs}.
42
[1] http://www-fp.mcs.anl.gov/otc/Guide/OptWeb/continuous/constrained/nonlinearcon/auglag.html
44
[2] http://www.cs.ubc.ca/spider/ascher/542/chap10.pdf
50
@c load (augmented_lagrangian);
55
@c augmented_lagrangian_method (FOM, xx, C, yy, iprint = [-1, 0]);
59
(%o1) /home/robert/tmp/maxima-release-branch/maxima/share/lbfgs/\
61
(%i2) load (augmented_lagrangian);
62
(%o2) /home/robert/tmp/maxima-release-branch/maxima/share/contri\
63
b/augmented_lagrangian.mac
64
(%i3) FOM: x^2 + 2*y^2;
73
(%i7) augmented_lagrangian_method (FOM, xx, C, yy, iprint = [-1, 0]);
74
(%o7) [[x = 0.6478349888525, y = 0.32391749442625],
75
%lambda = [- 1.267422460983745]]