- •Н. Б. Борковский Математические методы в экологии
- •Часть I. Численные методы
- •Тема 1 9
- •Тема 2 14
- •Тема 3 30
- •3.0 Постановка задачи 30
- •1. Постановка проблемы
- •2. Выбор или построение математической модели
- •3. Постановка вычислительной задачи
- •4. Предварительный анализ свойств вычислительной задачи
- •5. Выбор или построение численного метода
- •6. Алгоритмизация и программирование
- •7. Отладка программы
- •8. Счет по программе
- •9. Обработка и интерпретация результатов
- •10. Использование результатов и коррекция математической модели
- •1.0 Источники приближенных чисел
- •1.1 Источники и классификация погрешностей
- •1.2 Абсолютная и относительная погрешности вычисления
- •1.3 Погрешности арифметических операций
- •1.4 Обратная задача теории погрешностей
- •Постановка задачи
- •Метод половинного деления (метод «вилки», метод дихотомии)
- •Метод Ньютона (метод касательных)
- •Метод хорд (метод пропорциональных частей)
- •Метод итерации (метод последовательных приближений)
- •Постановка задачи
- •Решение систем линейных уравнений методом итерации
- •Решение систем нелинейных уравнений методом итерации
- •Решение систем линейных уравнений – «подводные камни»
- •4.0 Интерполирование – постановка задачи
- •4.1 Интерполирование полиномами
- •4.2 Аппроксимация функций. Метод наименьших квадратов
- •4.3 Интерполирование сплайнами
- •4.4 Интерполирование – примеры и «подводные камни»
- •4.5 Сглаживание данных (скользящее среднее)
- •5.0 Постановка задачи
- •5.1 Формула трапеций
- •5.2 Формула Симпсона
- •5.3 Формула Ньютона–Котеса
- •5.4 Формула Гаусса
- •5.5 Связь формул интегрирования
- •5.6 Численное интегрирование. Сравнение методов
- •5.7 Численное интегрирование – «подводные камни»
- •6.0 Введение
- •6.1 Обыкновенные ду. Метод Эйлера
- •6.2 Обыкновенные ду. Основные методы решения
- •6.3 Обыкновенные ду. Методы прогноза и коррекции
- •6.5 Обыкновенные ду. Сравнение методов
- •6.6 Оду. Влияние неточности исходной информации
- •6.7 Оду. Представление о конечных разностях
- •6.8 Оду. Краевые задачи – введение
- •8.0 Ду в частных производных. Постановка задачи
- •8.1 Ду в частных производных. Эллиптические уравнения
- •8.2 Ду в частных производных. Гиперболические уравнения
- •8.3 Ду в частных производных. Параболические уравнения
- •9.0 Методы безусловной оптимизации. Введение
- •9.1 Методы безусловной оптимизации. Классификация методов
- •9.2 Методы безусловной оптимизации нулевого порядка
- •9.3 Методы безусловной оптимизации первого порядка
- •9.4 Методы оптимизации второго порядка
- •Тема 10
- •10.0 Метод Монте–Карло. Некоторые задачи
- •10.1 Проблема получения случайных чисел
- •10.2 Общая схема метода
- •10.3 Метод Монте–Карло. Пример
- •10.4 Вычисление кратных интегралов
- •Число испытаний n не зависит от размерности интеграла i0
9.1 Методы безусловной оптимизации. Классификация методов
Возможны два подхода для отыскания минимума функции многих переменных f(x) = f(x1, …, xn) при отсутствии ограничений на диапазон изменения неизвестных.
Первый подход лежит в основе косвенных методов оптимизации. Задача сводится к решению системы нелинейных уравнений. В точке экстремума x* все первые производные функции по независимым переменным обращаются в ноль:
|
(9.1) |
Эти условия образуют систему из n нелинейных уравнений. Вектор , составленный из первых производных по каждой переменной, называют градиентом скалярной функции f(x). В точке минимума градиент равен 0.
Решение системы нелинейных уравнений – часто непростая задача. Поэтому на практике применялся иной подход. Он составляет основу прямых методов оптимизации.
Идея подхода: построение последовательности векторов x[0], x[1], …, x[n], …, таких что f(x[0]) > f(x[1]) >…> f(x[n]) > … .
Здесь [i] нумерует точки (и итерации).
Точку x[0] выбираем произвольно, но лучше недалеко от минимума.
Переход (итерация) от точки x[k] к точке x[k + 1] (k = 0, 1, 2, …) состоит из двух этапов:
1) выбор направления движения;
2) определение шага вдоль выбранного направления.
Методы построения таких последовательностей называют методами спуска – переход от бóльших значений функции к меньшим.
Методы спуска описываются так:
x[k+1] = x[k] + akp[k] , k = 0, 1, 2, …,
где p[k] – вектор, определяющий направление спуска; ak – длина шага.
В координатной форме:
Разные методы спуска отличаются разными способами выбора параметров (направления и шага).
Метод должен сходиться – за конечное число шагов надо найти минимум или приблизиться к нему. Качество методов оценивают по скорости сходимости.
Критерии останова итераций либо малость приращения аргумента или функции:
Здесь k – номер итерации; , – заданные величины точности.
Метод поиска детерминирован, если оба параметра (направление и шаг) для перехода от x[k] к x[k + 1] выбираются однозначно, по доступной в точке x[k] информации.
Если при переходе применяется механизм случайного выбора, алгоритм называется случайным поиском минимума.
Детерминированные алгоритмы делят на классы в зависимости от вида используемой информации.
Если на каждой итерации используется
лишь значение функции – это методы нулевого порядка;
если плюс к этому надо вычислять первые производные от минимизируемой функции –методы первого порядка;
если плюс к этому надо вычислять вторые производные от минимизируемой функции –методы второго порядка.
Характеристики качества метода:
скорость сходимости;
время выполнения одной итерации;
объем ОЗУ, нужный для решения задачи;
класс решаемых задач и др.
Задачи могут иметь малую или большую размерность, быть унимодальными или многоэкстремальными и т. д.
Как правило, имеющиеся методы не универсальны. Выбор – исходя из специфики задачи.
9.2 Методы безусловной оптимизации нулевого порядка
Общая характеристика методов нулевого порядка
В этих методах:
не надо вычислять производные целевой функции;
направление минимизации полностью определяется последовательными вычислениями значений функции;
можно работать с функциями, имеющими разрывные производные (при этом другие методы не подходят);
критерий оптимальности может быть задан не в явном виде, а системой уравнений;
сходимость обычно медленнее, чем у методов первого и второго порядков.
Кроме того,
вычисление первых и вторых производных функции многих переменных бывает очень трудоемким;
часто они не могут быть получены в виде аналитических функций;
определение производных с помощью численных методов сопровождается ошибками.
Метод прямого поиска (метод Хука–Дживса)
Идея метода:
задается начальная точка x[0];
путем изменения компонент вектора x[0] исследуются окрестности начальной точки;
если найдено направление, в котором функция уменьшается, производится спуск в этом направлении;
если нет – уменьшается величина шага;
если дробление шага не дает результата, от выбранного направления отказываются и выполняется новое исследование окрестности.
Недостаток метода: в случае сильно вытянутых, изогнутых или обладающих острыми углами линий уровня целевой функции можно не продвинуться к минимуму.
Например,
для функций на рис. 9.4. из точки
нельзя получить уменьшения целевой
функции, каким бы малым ни был шаг в
направлении x1 и x2.
|
Рис. 9.4. Прямой поиск – невозможность продвижения к минимуму: а – С1 > С2 > C3; б – C1 > C2. Символы Ci обозначают линии равного уровня |
Метод деформируемого многогранника (метод Нелдера–Мида)
Идея метода:
в n-мерном пространстве строится многогранник, имеющий n +1 вершину;
вычисляют значения функции в каждой вершине;
определяют максимальное значение функции и его вершину x[h];
через нее и центр тяжести остальных вершин проводится проецирующая прямая;
на ней находится точка x[q] c меньшим, чем в x[h], значением функции;
вершина x[h] исключается;
из оставшихся вершин и точки x[q] строится новый многогранник, после чего процедура повторяется.
В ходе описанной процедуры многогранник все время изменяет размеры (рис. 9.5.).
0 |
Рис. 9.5. Геометрическая интерпретация метода деформируемого многогранника |
Обозначим
x[i, k] = (x1[i, k], …, xj[i, k], …, xn[i, k])T, – i-я вершина многогранника
на k-ом этапе поиска (i = 1, 2, …, n + 1; k = 1, 2, …);
x[h, k] – вершина, в которой значение целевой функции максимально;
x[l, k] – вершина, в которой значение целевой функции минимально;
x[n + 2, k] – центр тяжести всех вершин, за исключением x[h, k].
Координаты центра тяжести:
Алгоритм метода Нелдера–Мида
1. Проецируют точку x[h, k] через центр тяжести:
x[n + 3, k] = x[n + 2, k] + a(x[n + 2, k] – x[h, k]),
где a – некоторая константа (обычно а = 1).
2. Растягивают вектор x[n + 3, k] – x[n + 2, k]:
x[n + 4, k] = x[n + 2, k] + с(x[n + 3, k] – x[n + 2, k]),
где с > 1 – коэффициент растяжения (обычно 2,8 3).
Если f(x[n + 4, k]) < f(x[l, k]), то x[h, k] заменяют на x[n + 4, k] и продолжают с п. 1 при k = k + 1.
Иначе x[h, k] заменяют на x[n + 3, k] и продолжают с п. 1 при k = k + 1.
3. Если f(x[n + 3, k]) > f(x[i, k]) для всех i h, то сжимают вектор x[h, k] – x[n + 2, k]:
x[n + 5, k] = x[n + 2, k] + b(x[h, k] – x[n + 2, k]),
где b > 0 – коэффициент сжатия (обычно 0,4 0,6).
Затем точку x[h, k] заменяют на x[n + 5, k] и продолжают с п. 1 при k = k + 1.
4. Если f(x[n + 3, k]) > f(x[h, k]), то все векторы x[i, k] – x[l, k], I = 1, 2, …, n + 1 уменьшают в два раза:
x[i, k] = x[l, k] + 0,5(x[i, k] – x[l, k]).
Затем продолжают с п. 1 при k = k + 1.
Выход из процесса происходит при предельном сжатии многогранника:
где = (1, …, n) – заданный вектор.
С помощью операции растяжения и сжатия размеры и форма многогранника адаптируются к топографии целевой функции. В результате многогранник вытягивается вдоль длинных наклонных плоскостей, изменяет направление в изогнутых впадинах, сжимается в окрестности минимума. Это определяет эффективность метода.
Метод вращающихся координат (метод Розенброка)
Суть метода состоит во вращении системы координат в соответствии с изменением скорости убывания целевой функции.
Новые направления координатных осей определяются таким образом, чтобы одна из них соответствовала направлению наиболее быстрого убывания целевой функции, а остальные находились из условия ортогональности.
Идея метода состоит в следующем (рис. 9.6).
Из начальной точки x[0] осуществляют спуск в точку x[1] по направлениям, параллельным координатным осям.
На следующей итерации одна из осей должна проходить в направлении y1 = х[1] – х[0] , а другая – в направлении, перпендикулярном к y1.
Спуск вдоль этих осей приводит в точку x[2], что дает возможность построить новый вектор х[2] – х[1] и на его базе новую систему направлений поиска.
В общем случае данный метод эффективен при минимизации овражных функций, т. к. результирующее направление поиска стремится расположиться вдоль оси оврага.
0 |
Рис. 9.6. Геометрическая интерпретация метода Розенброка |
В отличие от других методов нулевого порядка алгоритм Розенброка ориентирован на отыскание оптимальной точки в каждом направлении, а не просто на фиксированный сдвиг по всем направлениям.
Величина шага в процессе поиска непрерывно изменяется в зависимости от рельефа поверхности уровня. Сочетание вращения координат с регулированием шага делает метод Розенброка эффективным при решении сложных задач оптимизации.
Метод параллельных касательных (метод Пауэлла)
Этот метод использует свойство квадратичной функции, заключающееся в том, что любая прямая, которая проходит через точку минимума функции х*, пересекает под равными углами касательные к поверхностям равного уровня функции в точках пересечения (рис. 9.7).
Суть метода: выбирается начальная точка х[0] и выполняется одномерный поиск вдоль произвольного направления, приводящий в точку х[1].
Затем выбирается точка х[2], не лежащая на прямой х[0] – х[1], и проводится одномерный поиск вдоль прямой, параллельной х[0] – х[1].
Полученная в результате точка х[3] вместе с точкой х[1] определяет направление х[1] – х[3] одномерного поиска, дающее точку минимума х*.
В случае квадратичной функции n переменных оптимум достигается за n итераций. Поиск минимума идет во взаимно сопряженных направлениях.
|
Рис. 9.7. Геометрическая интерпретация метода Пауэлла |
В случае неквадратичной целевой функции направления поиска оказываются сопряженными относительно матрицы Гессе.
