Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вычислительная математика.docx
Скачиваний:
7
Добавлен:
14.08.2019
Размер:
139 Кб
Скачать
☆

Метод покоординатного спуска

Идея всех методов спуска состоит в том, чтобы из начального приближения точки x(0)=(x1(0), x2(0),…, xn(0)) перейти в точку x(1)=(x1(1), x2(1),…, xn(1)) такую, чтобы f(x(0))> f(x(1)).

Пусть в области D задано нулевое приближение x(0). Фиксируем значение x2(0),x3(0),…, xn(0) и рассматриваем функцию f(x1, x2(0),…, xn(0)) как функцию одной переменной x1. Находим минимум этой функции . Пусть x1(1) доставляет минимум этой функции. f(x1(1), x2(0),…, xn(0))≤ f(x1(0), x2(0),…, xn(0)).

Далее фиксируем значения x3(0),x4(0),…, xn(0) и рассматриваем функцию

f(x1(1), x2,x3(0),…, xn(0)) как функцию одной переменной x2 и т.д.

После n шагов получим f(x1(1), x2(1),x3(1),…, xn(1))≤ f(x1(0), x2(0),x3(0),…, xn(0)).

В результате первого шага покоординатного спуска происходит переход из начальной точки x0 в точку x1.

1) если f(x(0))= f(x(1)), то x(0) – точка минимума f(x).

2) если f(x(0))> f(x(1)), то выполняется следующий шаг покоординатного спуска, в котором за начальную точку принимается x(1).

Этот процесс продолжается до тех пор, пока f(x(k+1))-f(x(k))<ε, где ε – заданная точность.

Метод градиентного спуска

Численные методы отыскания минимума состоят в построении последовательности векторов {x(k)}, удовлетворяющих условию f(x(0))> f(x(1))>…> f(x(k)). В этих методах элементы последовательности вычисляются по формуле x(k+1)=x(k)+hk* (k), где (k) – направление спуска, hk – длина шага в этом направлении.

Как известно, градиент функции в некоторой тоске направлен в сторону наискорейшего локального возрастания функции, следовательно, спускаться нужно в направлении, противоположному градиенту. Этот вектор называется антиградиентом.

Используя антиградиент в качестве направления спуска, приходим к итерационному процессу вида:

(1)

Все методы спуска, в которых вектор (k) совпадает с антиградиентом, называются градиентными методами.

Для минимизации функции используется метод градиентного спуска с дроблением шага. Процесс (1) с дроблением шага протекает следующим образом: выбираем некоторое значение x(0), затем выбираем hk=h=const и на каждом шаге процесса выбираем условие монотонности f(x(k+1))<f(x(k)). Если это условие нарушается, то h дробим до тех пор, пока монотонность не восстановится.

Для окончания счета можно использовать критерии:

Наиболее важным моментом в этом методе - это выбор шага. Формула (1) с постоянным шагом практически не применяется.

Метод наискорейшего спуска

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

Согласно этому методу после вычисления в начальной точке градиента функции делают в направлении антиградиента не маленький шаг, а движутся до тех пор, пока функция убывает. Достигнув точки минимума на выбранном направлении, снова вычисляют градиент функции и повторяют процедуру. Таким образом, в методе наискорейшего спуска величина hk определяется из условия:

,

т.е. на каждом шаге решается задача минимизации.

15. Задачи линейного программирования.

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

Задачи линейного программирования заключаются в нахождении таких значений , которые максимизируют или минимизируют линейную функцию в условиях ограничений:

Среди ограничений часто встречаются условия неотрицательности всех или части переменных: