2 * Functions and Variables for augmented_lagrangian::
5 @node Functions and Variables for augmented_lagrangian, , augmented_lagrangian, augmented_lagrangian
6 @section Functions and Variables for augmented_lagrangian
8 @deffn {関数} augmented_lagrangian_method (@var{FOM}, @var{xx}, @var{C}, @var{yy})
9 @deffnx {関数} augmented_lagrangian_method (@var{FOM}, @var{xx}, @var{C}, @var{yy}, optional_args)
10 @deffnx {関数} augmented_lagrangian_method ([@var{FOM}, @var{grad}], @var{xx}, @var{C}, @var{yy})
11 @deffnx {関数} augmented_lagrangian_method ([@var{FOM}, @var{grad}], @var{xx}, @var{C}, @var{yy}, optional_args)
13 ゼロに等しい制約@var{C}を保ちながら、
14 式@var{FOM}の変数@var{xx}に関する近似最小を返します。
17 利用した方法は拡張Lagrange法です。(文献[1]と[2]を参照してください。)
20 @var{FOM}の@var{xx}に関するグラディエントであり、
21 @var{xx}の変数それぞれに関する式のリストとして表されます。
22 もしないなら、グラディエントは自動的に構成されます。
24 @var{FOM}と、もしあるなら@var{grad}の要素それぞれは、
25 関数名やラムダ式ではなく、通常の式でなければいけません。
27 @code{optional_args}は、
28 @code{@var{symbol} = @var{value}}として指定される、
34 拡張Lagrangeアルゴリズムの繰り返しの回数
39 IPRINTパラメータ(メッセージ出力を制御する2つの整数のリスト)
41 拡張Lagrangeを計算するために使われる
46 擬似Newtonアルゴリズムであるメモリ制限付きBFGS (LBFGS)アルゴリズムを適用することで
49 @code{load(augmented_lagrangian)}はこの関数をロードします。
51 @code{lbfgs}も参照してください。
56 [1] @url{http://www-fp.mcs.anl.gov/otc/Guide/OptWeb/continuous/constrained/nonlinearcon/auglag.html}
58 [2] @url{http://www.cs.ubc.ca/spider/ascher/542/chap10.pdf}
61 [1] @url{http://www-fp.mcs.anl.gov/@-otc/@-Guide/@-OptWeb/@-continuous/@-constrained/@*nonlinearcon/@-auglag.html}
63 [2] @url{http://www.cs.ubc.ca/spider/ascher/542/chap10.pdf}
70 @c load (augmented_lagrangian);
75 @c augmented_lagrangian_method(FOM, xx, C, yy, iprint=[-1,0]);
79 (%o1) /maxima/share/lbfgs/lbfgs.mac
80 (%i2) load (augmented_lagrangian);
82 /maxima/share/contrib/augmented_lagrangian.mac
83 (%i3) FOM: x^2 + 2*y^2;
92 (%i7) augmented_lagrangian_method(FOM, xx, C, yy, iprint=[-1,0]);
93 (%o7) [[x = 0.66665984108002, y = 0.33334027245545],
94 %lambda = [- 1.333337940892525]]
102 @c load (augmented_lagrangian)$
105 @c grad : [2*x, 4*y];
108 @c augmented_lagrangian_method ([FOM, grad], xx, C, yy,
109 @c iprint = [-1, 0]);
113 (%i2) load (augmented_lagrangian)$
114 (%i3) FOM: x^2 + 2*y^2;
117 (%i4) FOM: x^2 + 2*y^2;
122 (%i6) grad : [2*x, 4*y];
124 (%i7) C: [x + y - 1];
128 (%i9) augmented_lagrangian_method ([FOM, grad], xx, C, yy,
130 (%o9) [[x = 0.666659841080025, y = .3333402724554462],
131 %lambda = [- 1.333337940892543]]
135 @category{Numerical methods} @category{Optimization} @category{Share packages} @category{Package augmented_lagrangian}