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