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

« back to all changes in this revision

Viewing changes to doc/info/pt/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
 
 
9
@defvr {Option variable} niter
 
10
Default value: 10
 
11
 
 
12
Number of iterations for @code{augmented_lagrangian_method}.
 
13
@end defvr
 
14
 
 
15
 
 
16
@deffn {Function} augmented_lagrangian_method (@var{FOM}, @var{xx}, @var{constraints}, @var{yy})
 
17
Augmented Lagrangian method for constrained optimization.
 
18
@var{FOM} is the figure of merit expression, 
 
19
@var{xx} is a list of variables over which to minimize,
 
20
@var{constraints} is a list of expressions to be held equal to zero, and
 
21
@var{yy} is a list of initial guesses for @var{xx}.
 
22
 
 
23
At present this code minimizes the augmented Lagrangian by
 
24
solving for a stationary point of its gradient.
 
25
That's pretty weak, and the code could be improved by plugging in
 
26
a conjugate gradient or quasi-Newton minimization algorithm.
 
27
 
 
28
For references see
 
29
@example
 
30
http://www-fp.mcs.anl.gov/otc/Guide/OptWeb/continuous/constrained/nonlinearcon/auglag.html
 
31
@end example
 
32
and
 
33
@example
 
34
http://www.cs.ubc.ca/spider/ascher/542/chap10.pdf
 
35
@end example
 
36
 
 
37
Package @code{mnewton} (to solve grad @math{L = 0}) has to be loaded before calling @code{augmented_lagrangian_method}.
 
38
 
 
39
Example:
 
40
@example
 
41
(%i1) load (mnewton)$
 
42
 
 
43
(%i2) load("augmented_lagrangian")$
 
44
 
 
45
(%i3) FOM: x^2 + 2*y^2;
 
46
                           2    2
 
47
(%o3)                   2 y  + x
 
48
(%i4) xx: [x, y];
 
49
(%o4)                     [x, y]
 
50
(%i5) C: [x + y - 1];
 
51
(%o5)                  [y + x - 1]
 
52
(%i6) yy: [1, 1];
 
53
(%o6)                     [1, 1]
 
54
(%i7) augmented_lagrangian_method (FOM, xx, C, yy);
 
55
(%o7)          [0.6478349834, 0.3239174917]
 
56
@end example
 
57
 
 
58
To use this function write first @code{load("mnewton")} and @code{load("augmented_lagrangian")}. 
 
59
See also @code{niter}.
 
60
@end deffn
 
61