@c Language: Brazilian Portuguese, Encoding: iso-8859-1
@c /augmented_lagrangian.texi/1.4/Sat Jun  2 00:13:11 2007//
@menu
* Fun@value{cedilha}@~{o}es e Vari@'{a}veis Definidas para augmented_lagrangian::
@end menu

@node Fun@value{cedilha}@~{o}es e Vari@'{a}veis Definidas para augmented_lagrangian,  , augmented_lagrangian, augmented_lagrangian
@section Fun@value{cedilha}@~{o}es e Vari@'{a}veis Definidas para augmented_lagrangian

@deffn {Fun@value{cedilha}@~{a}o} augmented_lagrangian_method (@var{FOM}, @var{xx}, @var{C}, @var{yy})
@deffnx {Fun@value{cedilha}@~{a}o} augmented_lagrangian_method (@var{FOM}, @var{xx}, @var{C}, @var{yy}, args_opcionais)
 
Retorna um m@'{i}nimo aproximado da express@~{a}o @var{FOM}
com rela@value{cedilha}@~{a}o @`as vari@'{a}veis @var{xx},
mantendo restrito o valor de @var{C} a zero.
@var{yy} @'{e} uma lista de suposi@value{cedilha}@~{o}es iniciais para @var{xx}.
O m@'{e}todo utilizado @'{e} o m@'{e}todo do Lagrangiano aumentado (veja refer@^{e}ncias [1] e [2]).

@code{args_opcionais} representam argumentos adicionais,
especificados como @code{@var{s@'{i}mbolo} = @var{valor}}.
Os argumentos opcionais que podem ser colocados no lugar de @var{s@'{i}mbolo}:
 
@table @code
@item niter
N@'{u}mero de itera@value{cedilha}@~{o}es do algor@'{i}tmo do Langrangiano aumentado
@item lbfgs_tolerance
Toler@^{a}ncia forneceida a LBFGS (Limited-memory, Broyden, Fletcher, Goldfarb, Shanno)
@item iprint
Par@^{a}metro IPRINT (uma lista de dois inteiros que controlam o n@'{i}vel de informa@value{cedilha}@~{a}o) fornecido a LBFGS
@item %lambda
Valor inicial de @code{%lambda} a ser usado durante o c@'{a}lculo do Lagrangiano aumentado
@end table

Essa implementa@value{cedilha}@~{a}o minimiza o Lagrangiano aumentado pela
pela aplica@value{cedilha}@~{a}o do algor@'{i}tmo de mem@'{o}ria limitada BFGS (LBFGS),
que @'{e} um algor@'{i}tmo quasi-Newton.

@code{load(augmented_lagrangian)} chama essa fun@value{cedilha}@~{a}o.
 
Veja tamb@'{e}m @code{lbfgs}.

References:

[1] http://www-fp.mcs.anl.gov/otc/Guide/OptWeb/continuous/constrained/nonlinearcon/auglag.html

[2] http://www.cs.ubc.ca/spider/ascher/542/chap10.pdf

Exemplo:

@c ===beg===
@c load (augmented_lagrangian);
@c FOM: x^2 + 2*y^2;
@c xx: [x, y];
@c C: [x + y - 1];
@c yy: [1, 1];
@c augmented_lagrangian_method (FOM, xx, C, yy, iprint = [-1, 0]);
@c ===end===
@example
(%i2) load (augmented_lagrangian);
(%o2) /home/robert/tmp/maxima-release-branch/maxima/share/contri\
b/augmented_lagrangian.mac
(%i3) FOM: x^2 + 2*y^2;
                               2    2
(%o3)                       2 y  + x
(%i4) xx: [x, y];
(%o4)                        [x, y]
(%i5) C: [x + y - 1];
(%o5)                      [y + x - 1]
(%o6)                        [1, 1]
(%i7) augmented_lagrangian_method (FOM, xx, C, yy, iprint = [-1, 0]);
(%o7) [[x = 0.6478349888525, y = 0.32391749442625], 
                                 %lambda = [- 1.267422460983745]]
@end example

@end deffn

