- •Множество и функция Множество
- •Функция
- •Поле и пространство Поле
- •Пространство
- •Обозначение векторов и скаляров
- •Вопросы для самопроверки
- •Экстремумы. Критические и стационарные точки. Задача оптимизации Экстремумы
- •Локальные и глобальные минимумы
- •Задача оптимизации
- •Вопросы для самопроверки
- •Ряд тейлора и его свойства Градиент и матрица Гессе
- •Ряд Тейлора
- •Квадратичная форма Квадратичная форма и ее виды
- •Собственные числа и собственные вектора
- •Гессиан и квадратичная функция
- •Вопросы для самопроверки
- •Окончание поиска и численное дифференцирование Критерий останова для методов оптимизации
- •Численное дифференцирование
- •Вопросы для самопроверки
- •Методы дихотомии и трехточечного деления Метод дихотомии
- •Теорема
- •Метод трехточечного деления
- •Вопросы для самопроверки
- •Метод золотого сечения
- •Метод Фибоначчи
- •Метод ньютона, метод секущих Метод Ньютона
- •Метод секущих
- •Вопросы для самопроверки
- •Метод Мюллера
- •Методы градиентного спуска Условные обозначения
- •Градиентный методы спуска с постоянным шагом
- •Градиентный метод спуска с убывающим шагом
- •Вопросы для самопроверки
- •Метод наискорейшего спуска. Овражные задачи Метод наискорейшего спуска
- •Вопросы для самопроверки
- •Метод Ньютона
- •Модифицированные ньютоновские методы Демпфированный метод Ньютона с переменным αk
- •Метод Левенберга-Марквардта
- •Вопросы для самопроверки
- •Методы барзилая-борвейна
- •Стабилизированный метод Барзилая-Борвейна
- •Вопросы для самопроверки
- •Условия вульфа
- •Алгоритм 2: Линейный поиск на основе условий Вульфа
- •Вопросы для самопроверки
- •Методы сопряженных градиентов
- •Методы сопряженных градиентов
- •Дополнение
- •Вопросы для самопроверки
- •Метод бфгш с ограниченной памятью Классический метод бфгш и его проблемы
- •Алгоритм экономии памяти для метода l-bfgs
- •Алгоритм l-bfgs
- •Вопросы для самопроверки
- •Идея метода доверительных областей
- •Основные положения
- •Метод доверительных областей
- •Вопросы для самопроверки
- •Метод хука-дживса Описание метода
- •Вопросы для самопроверки
Метод трехточечного деления
Метод дихотомии эффективен, если производная в центральной точке может быть найдена аналитически. Численное нахождение производной часто приводит к существенной потере точности. Метод трехточечного деления свободен от этого недостатка, поскольку не требует вычисления производной.
Алгоритм 2: Метод трехточечного деления
В
качестве
примера
рассмотрим
оптимизацию
функции
f (x) = 2x2 − 9x − 31
на интервале [−2; 10]. На рисунке 2 показан пример работы этого метода. 2 вычисления цф на итерацию.
Вопросы для самопроверки
1. Почему численное нахождение производной ухудшает точность метода дихотомии?
2. В каком случае метод трехточечного деления окажется быстрее метода дихотомии? Может ли быть обратная ситуация, когда метод дихотомии быстрее?
Метод золотого сечения
Метод золотого сечения является процедурой линейного поиска минимума унимодальной функции f(x) на замкнутом интервале [a, b], требующей не 2, а только 1 вычисление целевой функции на итерации за счет свойства самоподобия отрезков, разделенных в отношении золотого сечения.
Золотое сечение определяется следующим образом: общая длина отрезка, разделенного в отношении золотого сечения, так относится к большей части, как большая часть относится к меньшей.
Обозначая б´oльшую часть буквой Φ, а меньшую часть беря равной 1, получим пропорцию:
-неверная
формула
В десятичном выражении Φ ≈ 1,618. Если продолжить делить производные отрезки в отношении золотого сечения, то золотая пропорция в отношении длин производных отрезков будет сохраняться, что порождает простейший фрактал. Это свойство золотого сечения иллюстрирует рисунок 1
Алгоритм 1: Метод золотого сечения 1 вычисление цф на итерацию
О
братите
внимание:
когда
при
программировании
метода
в
цикле
используется
конструкция
если
f(lambd
k)
>f(m
k)...,
то преимущество метода сразу же сходит
на нет, поскольку так целевая функция
вычисляется два раза! Поэтому
вводятся
буферные
переменные
flmbd
и
fm,
из
которых
на
каждой
итерации
обновляется
только
одна, и сравниваются именно они: если
flmbd
> fm...
В качестве примера рассмотрим оптимизацию функции f(x) = 2x2 − 9x − 31 на интервале [−2; 10]. На рисунке 2 показан пример работы этого метода. Делит интервал на каждой итерации в фи раз.
Метод Фибоначчи
Последовательность чисел Фибоначчи задается условиями F0 = F1 = 1, Fk+1 = Fk + Fk−1, k = 1, 2, ... . Начальными членами последовательности будут 1, 1, 2, 3, 5, 8, 13, 21, 34....
Предел отношения двух соседних чисел Фибоначчи равен золотой пропорции:
Стратегия поиска Фибоначчи требует заранее указать n – число вычислений минимизируемой функции.
Алгоритм 2: Метод Фибоначчи
Р
ассмотрим
оптимизацию
функции
f(x)
= 2x2
−
9x
−
31
на
интервале
[−2;
10], b
= 0.5. Расчеты дают:
Алгоритм сойдется за n − 2 = 7 итераций. На рисунке 3 показан пример работы этого метода.
В конце отрезки поделены как 1:1.
Вопросы для самопроверки
1. Можно ли сказать, что метод золотого сечения быстрее метода дихотомии в Φ раз?
2. Посчитайте для приведенного примера при точности е = 0.5, во сколько раз метод Фибоначчи быстрее метода золотого сечения. Существенный ли это выигрыш?
