Открыть главное меню

Постановка задачи решения системы уравнений в терминах методов оптимизацииПравить

Задача решения системы уравнений:

 (1)

с     эквивалентна задаче минимизации функции

  (2)

или какой-либо другой возрастающей функции от абсолютных величин   невязок (ошибок)  ,  . Задача отыскания минимума (или максимума) функции   переменных и сама по себе имеет большое практическое значение.

Для решения этой задачи итерационными методами начинают с произвольных значений   и строят последовательные приближения:

 

или покоординатно:

  (3)

которые сходятся к некоторому решению   при  .

Различные методы отличаются выбором «направления» для очередного шага, то есть выбором отношений

 .

Величина шага (расстояние, на которое надо передвинуться в заданном направлении в поисках экстремума) определяется значением параметра  , минимизирующим величину   как функцию от  . Эту функцию обычно аппроксимируют её тейлоровским разложением или интерполяционным многочленом по трем-пяти выбранным значениям  . Последний метод применим для отыскания max и min таблично заданной функции  .

Градиентные методыПравить

Основная идея методов заключается в том, чтобы идти в направлении наискорейшего спуска, а это направление задаётся антиградиентом  :

 

где   выбирается:

  • постоянной, в этом случае метод может расходиться;
  • дробным шагом, то есть длина шага в процессе спуска делится на некое число;
  • наискорейшим спуском:  

Метод наискорейшего спуска (метод градиента)Править

Основная статья: метод градиента

Выбирают  , где все производные вычисляются при  , и уменьшают длину шага   по мере приближения к минимуму функции  .

Для аналитических функций   и малых значений   тейлоровское разложение   позволяет выбрать оптимальную величину шага

 (5)

где все производные вычисляются при  . Параболическая интерполяция функции   может оказаться более удобной.

АлгоритмПравить

  1. Задаются начальное приближение и точность расчёта  
  2. Рассчитывают  , где  
  3. Проверяют условие останова:
    • Если  , то   и переход к шагу 2.
    • Иначе   и останов.

Метод покоординатного спуска Гаусса — ЗейделяПравить

Этот метод назван по аналогии с методом Гаусса — Зейделя для решения системы линейных уравнений. Улучшает предыдущий метод за счёт того, что на очередной итерации спуск осуществляется постепенно вдоль каждой из координат, однако теперь необходимо вычислять новые   раз за один шаг.

АлгоритмПравить

  1. Задаются начальное приближение и точность расчёта  
  2. Рассчитывают  , где  
  3. Проверяют условие остановки:
    • Если  , то   и переход к шагу 2.
    • Иначе   и останов.

Метод сопряжённых градиентовПравить

Метод сопряженных градиентов основывается на понятиях прямого метода многомерной оптимизации — метода сопряжённых направлений.

Применение метода к квадратичным функциям в   определяет минимум за   шагов.

АлгоритмПравить

  1. Задаются начальным приближением и погрешностью:  
  2. Рассчитывают начальное направление:  
  3.  
    • Если   или  , то   и останов.
    • Иначе
      • если  , то   и переход к 3;
      • иначе   и переход к 2.

См. такжеПравить

ЛитератураПравить

  • Акулич И.Л. Математическое программирование в примерах и задачах: Учеб. пособие для студентов эконом. спец. вузов. — М.: Высш. шк., 1986.
  • Гилл Ф., Мюррей У., Райт М. Практическая оптимизация. Пер. с англ. — М.: Мир, 1985.
  • Коршунов Ю.М., Коршунов Ю.М. Математические основы кибернетики. — М.: Энергоатомиздат, 1972.
  • Максимов Ю.А.,Филлиповская Е.А. Алгоритмы решения задач нелинейного программирования. — М.: МИФИ, 1982.
  • Максимов Ю.А. Алгоритмы линейного и дискретного программирования. — М.: МИФИ, 1980.
  • Корн Г., Корн Т. Справочник по математике для научных работников и инженеров. — М.: Наука, 1970. — С. 575-576.