~ubuntu-branches/debian/squeeze/maxima/squeeze

« back to all changes in this revision

Viewing changes to doc/info/augmented_lagrangian.texi

  • Committer: Bazaar Package Importer
  • Author(s): Camm Maguire
  • Date: 2006-10-18 14:52:42 UTC
  • mto: (1.1.5 upstream)
  • mto: This revision was merged to the branch mainline in revision 4.
  • Revision ID: james.westby@ubuntu.com-20061018145242-vzyrm5hmxr8kiosf
ImportĀ upstreamĀ versionĀ 5.10.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
@menu
 
2
* Definitions for augmented_lagrangian::
 
3
@end menu
 
4
 
 
5
@node Definitions for augmented_lagrangian,  , augmented_lagrangian, augmented_lagrangian
 
6
@section Definitions for augmented_lagrangian
 
7
 
 
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)
 
10
 
 
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]).
 
16
 
 
17
@code{optional_args} represents additional arguments,
 
18
specified as @code{@var{symbol} = @var{value}}.
 
19
The optional arguments recognized are:
 
20
 
 
21
@table @code
 
22
@item niter
 
23
Number of iterations of the augmented Lagrangian algorithm
 
24
@item lbfgs_tolerance
 
25
Tolerance supplied to LBFGS
 
26
@item iprint
 
27
IPRINT parameter (a list of two integers which controls verbosity) supplied to LBFGS
 
28
@item %lambda
 
29
Initial value of @code{%lambda} to be used for calculating the augmented Lagrangian
 
30
@end table
 
31
 
 
32
This implementation minimizes the augmented Lagrangian by
 
33
applying the limited-memory BFGS (LBFGS) algorithm,
 
34
which is a quasi-Newton algorithm.
 
35
 
 
36
@code{load(augmented_lagrangian)} loads this function.
 
37
 
 
38
See also @code{lbfgs}.
 
39
 
 
40
References:
 
41
 
 
42
[1] http://www-fp.mcs.anl.gov/otc/Guide/OptWeb/continuous/constrained/nonlinearcon/auglag.html
 
43
 
 
44
[2] http://www.cs.ubc.ca/spider/ascher/542/chap10.pdf
 
45
 
 
46
Example:
 
47
 
 
48
@c ===beg===
 
49
@c load (lbfgs);
 
50
@c load (augmented_lagrangian);
 
51
@c FOM: x^2 + 2*y^2;
 
52
@c xx: [x, y];
 
53
@c C: [x + y - 1];
 
54
@c yy: [1, 1];
 
55
@c augmented_lagrangian_method (FOM, xx, C, yy, iprint = [-1, 0]);
 
56
@c ===end===
 
57
@example
 
58
(%i1) load (lbfgs);
 
59
(%o1) /home/robert/tmp/maxima-release-branch/maxima/share/lbfgs/\
 
60
lbfgs.mac
 
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;
 
65
                               2    2
 
66
(%o3)                       2 y  + x
 
67
(%i4) xx: [x, y];
 
68
(%o4)                        [x, y]
 
69
(%i5) C: [x + y - 1];
 
70
(%o5)                      [y + x - 1]
 
71
(%i6) yy: [1, 1];
 
72
(%o6)                        [1, 1]
 
73
(%i7) augmented_lagrangian_method (FOM, xx, C, yy, iprint = [-1, 0]);
 
74
(%o7) [[x = 0.6478349888525, y = 0.32391749442625], 
 
75
                                 %lambda = [- 1.267422460983745]]
 
76
@end example
 
77
 
 
78
@end deffn
 
79