Порядок выполнения лабораторной работы
Записать необходимые условия экстремума. Аналитически или используя прикладные пакеты найти стационарные точки. Проверить выполнение достаточных условий экстремума в найденных стационарных точках. Найти глобальный минимум функции. Оценить обусловленность задачи в точке минимума и овражность графика в окрестности точки минимума. Сделать предварительный вывод о работоспособности избранного численного метода. Выбрать пакет, в котором будет строиться график. Рекомендации приведены в приложении. Построить график функции, задавая пределы изменения координат с учетом аналитически найденных точек минимума - максимума. Выбрать несколько начальных точек для реализации численного метода. Задать критерий завершения итерационного процесса. Найти минимум. Сравнить результаты с аналитически найденным значением глобального минимума. Исследовать сходимость алгоритма, фиксируя точность определения минимума, количество итераций метода и количество вычислений минимизируемой функции в зависимости от задаваемой точности поиска. Результатом выполнения данного пункта должны быть выводы об объёме вычислений в зависимости от задаваемой точности и начального приближения. 3. Пример выполнения лабораторной работы [1]
Функция: min, x0 = (-2,-2).
Методы: градиентного спуска и Ньютона. Решение: 1. Построим график функции и линии уровня (рис.1). Примечание: при построении графика используется среда MathCAD.
Рис.1. Графики функции и линий уровня
2. Решим задачу минимизации аналитически.
Система для нахождения стационарных точек из условия равенства нулю градиента имеет вид
Если x1 x2 =0, тоиз системы следует, что x1 =0 и x2 =0.
Первая стационарная точка - A0 (0; 0). Если
x1 x2 ≠0, то
Подставим х1 в первое уравнение:
Введем замену
:
Обозначим
, . Получаем остальные стационарные точки:
; ; ; .
Приближенные числовые координаты найденных точек: А0 (0; 0), А1 (1.068; 1.668), А2 (-1.068; - 1.668), А3 (-0.331; 0.848), А4 (0.331;0.848).
Построим и исследуем на знакоопределенность матрицу Гессе в точках А0,…, А4.
; . H (A0 ( 0; 0)) =0
(требуется дополнительное исследование точки). Анализ поведения функции в окрестности точки A0 ( 0; 0 ) показывает, что, придавая х1 положительное и отрицательное значение при любом х2, можно получить соответственно положительное и отрицательное значение функции. Таким образом, A0 ( 0; 0 ) не является ни точкой локального минимума, ни точкой локального максимума. Н (А1 (1,068; 1,668)) ≈ , матрица отрицательно определена, в точке А1 локальный максимум. Н (А2 (-1,068; - 1,668)) ≈ , матрица положительно определена, в точке А2 локальный минимум. Н (А3 (-0,331; 0,848)) ≈ , матрица положительно определена, в точке А3 локальный минимум. Н (А4 (0,331; - 0,848)) ≈ , матрица отрицательно определена, в точке А4 локальный максимум.
Точками глобального экстремума являются А1 (1,068; 1,668) - глобальный максимум, f (A1) ≈1,801; А2 (- 1,068; - 1,668) - глобальный минимум, f (A2) ≈≈ - 1,801. 3. Остальные задания реализованы на языке СИ, для чего написаны классы для работы с векторами и матрицами (Cvector и Cmatrix) и использующее их приложение. В методе наискорейшего спуска для одномерной минимизации используется метод золотого сечения. Для отыскания собственных чисел матрицы Гессе применяется метод Якоби, для построения обратной матрицы - метод Жордана-Гаусса. В начале работы программа выводит информацию о стационарных точках:
Stationary dots: x1x2f (x1,x2) Extreme 1.0678901.6675661.801131LOC MAX 1.067890-1.667566-1.801131LOC MIN 0.3310770.848071-0.144426LOC MIN
0.331077-0.8480710.144426LOC MAX GLOBAL MIN: x (-1.067890, - 1.667566) f (x) = - 1.801131 GLOBAL MAX: x (1.067890, 1.667566) f (x) = 1.801131
Затем устанавливается начальная точка x0 (-2,-2), функция исследуется на выпуклость/вогнутость в этой точке, выводится число обусловленности матрицы Гессе:
x0 (-2.000000, - 2.000000) Hessian: Alternating sign f (x0) = - 0.398297 cond H (x0) = 4.751665
Таким образом, квадратичная форма, соответствующая матрице , является знакопеременной. Функция не является овражной в окрестности точки, и допустимо применение метода градиентного спуска. Далее запускается метод наискорейшего градиентного спуска, и выполняются две итерации. Steepest descent method:
x2 (-1.200031, - 1.706888) Hessian: Convex grad_f (x2) = (-0.963083, 0.275166) f (x2) = - 1.741440
В результате двух итераций мы получили точку, достаточно близкую к точке глобального минимума. Теперь из точки (-2; - 2) стартует метод Ньютона с поправкой гессиана. Результат двух итераций: Newton method:
x2 (-2.735431, - 2.306328) Hessian: Alternating sign grad_f (x2) = (-0.110421, 0.031948) f (x2) = - 0.018516
Видно, что метод расходится. Начальная точка выбрана неудачно. Увеличение числа итераций приводит к дальнейшему расхождению метода. Это объясняется тем, что в начальной точке функция не является выпуклой. Анализируя линии уровня функции, выберем начальную точку ближе к оптимальной. Например, (-1; - 2):
x0 (-1.000000, - 2.000000) Hessian: Convex, f (x0) = - 1.471518, cond H (x0) = 3.786885
Newton method:
x2 (-1.047041, - 1.722604) Hessian: Convex grad_f (x2) = (0.379214, - 0.339841) f (x2) = - 1.787758
Как в начальной, так и в конечной точке функция является выпуклой. За две итерации мы приблизились к точке А 2 (-1,068; - 1,668). Теперь возьмем начальную точку еще ближе к А 2, например (-1; - 1,5):
x0 (-1.000000, - 1.500000) Hessian: Convex f (x0) = - 1.752302 cond H (x0) = 3.857905
Newton method:
x2 (-1.067889, - 1.667566) Hessian: Convex grad_f (x2) = (0.000000, 0.000000) f (x2) = - 1.801131
Метод Ньютона достиг точки глобального минимума, об этом говорит практически нулевой вектор-градиент. Точное значение отличается от полученного методом Ньютона на 4,729∙10-7 (по модулю). Выводы. В лабораторной работе проведено исследование заданной функции на глобальный экстремум с использованием аналитических преобразований, графика функции и разработанного приложения на языке C++. С помощью метода градиентного спуска удалось улучшить целевую функцию. Выбор точки x0 (-2,-2) в качестве начальной для реализации метода Ньютона оказался неудачным, так как матрица Гессе в ней не является положительно определенной. Замена начальной точки на более подходящую для данного метода позволила за две итерации прийти в точку глобального минимума. Полученные результаты хорошо согласуются с теорией.
Разработанные классы Cvector и Cmatrix могут применяться в будущих проектах.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|