Порядок выполнения лабораторной работы. 1. Кратко описать изучаемые методы покоординатного поиска минимума функций многих переменных.
1. Кратко описать изучаемые методы покоординатного поиска минимума функций многих переменных.
2. Составить алгоритм метода циклического покоординатного поиска.
3. Дать графическую иллюстрацию задачи индивидуального задания и выполнить вручную по две итерации циклического покоординатного поиска и Зейделя.
4. Выполнить с использованием компьютерного комплекса расчеты индивидуальной задачи по каждому из рассмотренных алгоритмов.
5. Провести сравнительный анализ полученных результатов. Дать геометрическую интерпретацию решения задачи по каждому из алгоритмов.
6. Сформулировать выводы об эффективности изученных методов покоординатного. спуска. Содержание проделанной работы отразить в отчете.
Задания для лабораторной работы
1. Минимизировать функцию f(X)=5x12+5x22+6x1x2 из начальной точки X0=(2;4)T.
2. Минимизировать функцию f(X)=5x12+5x22-6x1x2 из начальной точки X0=(-4;3).
3. Минимизировать функцию f(X)=5x12+5x22+8x1x2 из начальной точки X0=(3;5)T.
4. Минимизировать функцию f(X)=5x12+5x22-8x1x2 из начальной точки X0=(-3;4)T.
5. Минимизировать функцию f(X)=2x12+x22-x1x2 из начальной точки X0=(-1;2)T.
6. Минимизировать функцию f(X)=2x12+2x22+2x1x2-14x1-12x2+29 из начальной точки X0=(-1;4)T.
7. Минимизировать функцию f(X)=2x12+2x22-2x1x2-4x1-2x2+5 из начальной точки X0=(-1;3)T.
8. Минимизировать функцию f(X)=100(x2-x12)2+(1- x1) 2 из начальной точки X0=(-1;0)T.
ГРАДИЕНТНЫЕ МЕТОДЫ
Рассмотрим задачу безусловной минимизации (2.1) предполагая, что функция f(X) непрерывно дифференцируема на En. Для численного решения задачи применим простейшую итерационную процедуру вида
Xk+1= Xk+ akSk, k=0,1,2,..., (2.21) позволяющую при определенных условиях построить минимизирующую последовательность для функции f(X), т.е. такую последовательность точек ХkÎEn , что f*.
От того, как выбирается направление поиска Sk и как определяется величина шага ak,зависят свойства итерационной процедуры (2.21) такие, как поведение функции f(X) на элементах последовательности {Xk}, сходимость к решению, скорость сходимости, объем требуемых вычислений.
Известно, что направление наибыстрейшего возрастания функции f(X) в точке X совпадает с направлением градиента функции f(X), то есть вектора
(X)= ,
а направление наибыстрейшего убывания – с направлением антиградиента, то есть вектора . Это свойство градиента и лежит в основе итерационных процедур градиентных методов, которые отличаются друг от друга лишь способом выбора величины градиентного шага.
Метод градиентного спуска
В соответствии с основной идеей градиентного метода будем строить элементы минимизирующей последовательности {Xk} с помощью рекуррентной формулы (2.21), где в качестве направления Sk выбирается направление антиградиента, как направление наискорейшего убывания функции f(X) в малой окрестности точки Xk. То есть, вычислительная схема метода градиентного спуска такова:
Xk+1= xk- ak · (X k), k=0,1,2,… (2.22)
Величина шага выбирается так, чтобы выполнялось условие
f(Xk+1) < f(Xk) , k=0,1,2,... (2.23)
В качестве критерия окончания счета на практике используют условия
| f(Xk+1) - f(Xk) | £ e1, (2.24)
|| Xk+1 - Xk || £ e2, (2.25)
|| (Xk) || £ e3, (2.26)
где ei - заданные параметры точности.
Опишем алгоритм рассмотренного метода градиентного спуска.
Шаг 0. Задать параметр точности e>0, начальный шаг a>0, параметр алгоритма lÎ(0;1), выбрать X0ÎEn, вычислить значение f(X0), положить k=0.
Шаг 1. Найти градиент (Xk) и проверить условие достижения заданной точности || (Xk) || £ e. Если оно выполняется, то перейти к шагу 4, иначе - к шагу 2.
Шаг 2. Найти новую точку в направлении антиградиента X= Xk- a· (Xk) и вычислить f(X). Если f(X) < f(Xk), то положить Xk+1=Xk, f(Xk+1)=f(Xk), k=k+1, и перейти к шагу 1, иначе - перейти к шагу 3.
Шаг 3. Положить a=a·l, где 0<l<1 и перейти к шагу 2.
Шаг 4. Завершить вычисления, положив X*= Xk, f *= f(Xk).