
Лабы / Разработки / Labs3
.docЛабораторная работа 3
Минимизация дифференцируемых функций многих переменных
В лабораторной работе изучаются методы градиентного спуска, наискорейшего спуска, а также метод Ньютона.
Метод градиентного спуска
Основная
идея:
Если заданная функция дифференцируема
в области
,
то направление наибыстрейшего локального
убывания функции совпадает с направлением
антиградиента. Итерационная процедура
метода градиентного спуска
заключается
в построении последовательности
по правилу
,
причем должно выполнятся неравенство
.
Условие:
определяет окончание выполнения
программы.
Алгоритм:
1.
Задать
.
Найти
.
2.
Найти
.
Если
,
то
.
Иначе перейти к п.3.
3.
Найти
и
.
Если
,
то положить
и перейти к п.2, иначе к п. 4.
4.
Положить
.
Визуализация:
Построить графики линий уровня
на плоскости. Вывод точки
и соответствующей линии уровня. Останов программы до нажатия enter. Затем посмотрите трехмерные графики.
Рекомендации: Создайте сетку с помощью команды meshgrid.
Определите
на этой сетке значения
.
Линии уровня
нарисуйте, используя contourf и meshc. Для вывода двумерной и трехмерной картинок создайте две разные М-функции.
Метод наискорейшего спуска
Основная
идея:
Ускорение сходимости градиентного
спуска. Величина
определяется из условия
,
т.е. на каждой итерации производится в
направлении антиградиента максимально
возможный спуск.
Рекомендации: В программе используйте один из уже написанных методов одномерной минимизации, который оформите как функцию например (dichotom). Передача имени минимизируемой функции осуществляется, как dichotom(@myfun, othersparam).
В dichotom значения myfun находятся как feval(myfun,x).
Метод Ньютона
Постройте итерационную процедуру для нахождения минимума дважды дифференцируемой, сильно выпуклой функции самостоятельно.