
- •Раздел 6.
- •Раздел 6. Модели и алгоритмы решения задач численными методами с использованием математических пакетов Рекомендации по использованию учебного пособия
- •Тема 6.1. Элементы теории погрешностей
- •6.1.1. Точные и приближенные числа
- •6.1.2. Абсолютная и относительная погрешность
- •Тема 6.2. Методы решения нелинейных уравнений
- •6.2.1. Постановка задачи
- •Отделение корней (локализация корней);
- •Итерационное уточнение корней.
- •6.2.2. Отделение корней
- •6.2.2.1. Графическое отделение корней
- •6.2.2.2. Аналитическое отделение корней
- •6.2.3. Уточнение корней
- •6.2.3.1. Метод половинного деления
- •6.2.3.2. Метод итерации
- •6.2.3.3. Метод Ньютона (метод касательных)
- •6.2.3.4. Метод хорд
- •6.2.3.5. Сравнение методов решения нелинейных уравнений
- •6.2.4. Технология решения нелинейных уравнений средствами MathCad
- •Тема 6.3. Интерполяция функций
- •6.3.1. Постановка задачи
- •6.3.2. Интерполяционная формула Лагранжа
- •6.3.3. Интерполяционные формулы Ньютона
- •6.3.3.1. Конечные разности
- •6.3.3.2. Первая интерполяционная формула Ньютона
- •6.3.3.3. Вторая интерполяционная формула Ньютона
- •6.3.4. Сплайн – интерполяция
- •6.3.5. Сравнение интерполяционных многочленов по применению
- •6.3.6. Технология интерполяции функций в среде математических пакетов
- •Тема 6.4. Численное интегрирование
- •6.4.1. Постановка задачи
- •6.4.2. Метод прямоугольников
- •6.4.3. Формула трапеций
- •6.4.4. Формула Симпсона
- •6.4.5. Оценка погрешности численного интегрирования
- •6.4.6. Технология вычисления интегралов в среде математических пакетов
- •Тема 6.5. Методы решения обыкновенных дифференциальных уравнений
- •6.5.1. Постановка задачи
- •6.5.2. Метод Эйлера
- •6.5.3. Методы Рунге-Кутты
- •6.5.4. Решение оду n-го порядка
- •6.5.5. Сравнение методов решения оду
- •6.5.6. Технология решения обыкновенных дифференциальных уравнений средствами математических пакетов
- •6.6.2. Метод дихотомии
- •6.6.3. Метод золотого сечения
- •6.6.4. Сравнение методов
- •6.6.5. Технология решения задач одномерной оптимизации средствами математических пакетов
- •Тема 6.7. Аппроксимация функций
- •6.7.1. Постановка задачи аппроксимации
- •6.7.2. Метод наименьших квадратов
- •6.7.3. Технология решения задач аппроксимации функций средствами математических пакетов
- •Тема 6.8. Многомерная оптимизация
- •6.8.1. Постановка задачи и основные определения
- •6.8.2. Методы спуска
- •6.8.3. Метод градиентного спуска с дроблением шага
- •6.8.4. Метод наискорейшего спуска
- •6.8.5. Проблема оврагов. Метод покоординатного спуска
- •6.8.6. Технология решения задач многомерной оптимизации средствами математических пакетов
- •Список литературы
- •Тема 6.4. Численное интегрирование................................................71
- •Тема 6.5. Методы решения обыкновенных дифференциальных Уравнений............................................................................. 92
- •Тема 6.6. Одномерная оптимизация................................................ 115
- •Тема 6.7. Аппроксимация функций....................................................132
- •Тема 6.8. Методы многомерной оптимизации............................... 149
- •Список литературы.................................................................... 204
6.8.2. Методы спуска
Большинство итерационных методов, применяемых для решения задач безусловной минимизации функции нескольких переменных, относятся к классу методов спуска. Это такие методы, для которых каждая итерация (шаг) приводит к уменьшению значения целевой функции: f(xk+1)<f(xk), для всех k³0.
Структура типичного алгоритма метода спуска для функции двух переменных Q(x,y) состоит в следующем:
Задается начальная точка (x0, y0), принадлежащая области допустимых значений функции.
На текущей k-й итерации (k=0,1, …n) определяется вектор
задающий направление спуска, причем такой, чтобы для всех достаточно малых значений l>0 (где l- коэффициент, являющийся шагом поиска) выполнялось неравенство:
f(xk + lpk, yk+ lsk) < f(xk,yk).
Вычисляется шаг поиска - lk, для которого выполняется условие п.2, и за очередное приближение к точке минимума принимается точка:
(xk + lpk, yk+ lsk), где xk + lpk = xk+1, а yk+ lsk = yk+1.
Проверяется выполнение критерия окончания итераций. Если критерий метода выполняется, то полагают (x*,y*)»(xk+1,yk+1). В противном случае осуществляется переход к п.2 и выполняется следующая итерация.
Последовательность точек х1, х2, …, хk, получаемую методом спуска, называют траекторий спуска.
В градиентных методах спуска направление движения к точке минимума целевой функции совпадает с направлением антиградиента, а направление спуска выбирается по формулам:
Для использования градиентного метода оптимизации необходимо определить правило выбора шага (lk) на каждой итерации и правило прекращения итерационного процесса.
При решении вопроса о выборе шага lk следует учитывать, что выбор малого шага на каждой итерации приведет к малым изменениям аргумента и функции, и, следовательно, к увеличению числа итераций, необходимых для решения задачи. Выбор слишком большого шага lk может привести не к убыванию целевой функции Q(x,y), а к ее увеличению, и, следовательно, процесс не будет сходиться к точке минимума.
6.8.3. Метод градиентного спуска с дроблением шага
На каждой итерации шаг спуска lk выбирается таким образом, чтобы выполнялось условие:
(6.8.3-1)
Выбор шага в методе ГДШ заключается в следующем.
Задается начальное значение шага lk = l0 (как правило, l0=0,5). Проверяется условие сходимости, приведенное выше. Если условие сходимости выполняется, то шаг спуска для данной итерации выбран, а если оно не выполняется, то принимают новый шаг lk = lk/2, и снова проверяют условие сходимости (и т.д.).
Алгоритм метода ГДШ можно описать следующей последовательностью действий:
При k = 0 задаемся начальной точкой спуска (xk, yk), требуемой точностью e и начальным шагом l0 (пусть l0 =0,5).
Вычисляем значения
(6.8.3-2)
Вычисляем новые значения переменных
(6.8.3-3)
Проверяем условие сходимости:
(6.8.3-4)
Если условие выполняется, то полагаем величину шага равной lk, в противном случае lk = lk/2 и переходим к п.3.
Проверка окончания процесса итераций (необходимого условия существования минимума):
(6.8.3-5)
Если условие выполнено, то минимум найден, а если нет - вычисление координат следующей точки (k=k+1) и передача управления п.2.
Рис. 6.8.3-1. Траектория спуска ГДШ
Пример 6.8.3-1. Найти минимум функции Q(x,y) методом ГДШ.
Пусть Q(x,y) = x2 +2y2; x0 = 2;y0 = 1.
Проверим достаточные условия существования минимума:
Проделаем одну итерацию согласно алгоритму.
Q(x0,y0) = 6.
При х = x0 и y = y0 ,
Шаг lk = l0 = 0,5
Таким образом, 4 < 8, следовательно, условие сходимости не выполняется и требуется, уменьшив шаг (l=l /2), повторять п.п.3-4 до выполнения условия сходимости. То есть, полученный шаг используется для нахождения следующей точки траектории спуска.