Maxima Manual: Функции и переменные пакета augmented_lagrangian

Previous: Пакет augmented_lagrangian, Up: Пакет augmented_lagrangian [Contents][Index]

### 40.1 Функции и переменные пакета augmented_lagrangian

Функция: augmented_lagrangian_method (FOM, xx, C, yy)
Функция: augmented_lagrangian_method (FOM, xx, C, yy, optional_args)

  Возвращает приближенный минимум выражения FOM по переменным xx, при связях C, равных нулю. yy – список затравочных начальных значений xx. Для нахождения минимума используется метод расширенного лагранжиана (см. [1] и [2]).

  `optional_args` – дополнительные аргументы, задаваемые в форме `symbol = value`. Допустимы следующие дополнительные аргументы:

  `niter`

    Число итераций алгоритма расширенного лагранжиана

  `lbfgs_tolerance`

    Допустимое отклонение для LBFGS

  `iprint`

    Параметр IPRINT (список двух целых чисел, которые управляют уровнем вывода) для LBFGS

  `%lambda`

    Начальное значение `%lambda` для вычисления расширенного лагранжиана

  Данная реализация минимизирует расширенный лагранжиан методом BFGS с ограничением памяти (LBFGS), являющимся квази-нюьтоновым алгоритмом.

  Команда `load("augmented_lagrangian")` загружает данную функцию.

  См. также `lbfgs`.

  Ссылки:

  [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

  Пример:

      (%i1) load ("lbfgs");
      (%o1)     /maxima/share/lbfgs/lbfgs.mac
      (%i2) load ("augmented_lagrangian");
      (%o2)
         /maxima/share/contrib/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]
      (%i6) yy: [1, 1];
      (%o6)                        [1, 1]
      (%i7) augmented_lagrangian_method(FOM, xx, C, yy, iprint=[-1,0]);
      (%o7) [[x = 0.66665984108002, y = 0.33334027245545],
                                       %lambda = [- 1.333337940892525]]

Previous: Пакет augmented_lagrangian, Up: Пакет augmented_lagrangian [Contents][Index]