
- •Часть 2
- •Оглавление введение
- •Глава 1. Методы одномерной безусловной оптимизации § 1.1. Основные понятия
- •§ 1.2. Метод половинного деления
- •§ 1.3. Метод золотого сечения
- •§ 1.4. Метод Ньютона
- •Глава 2. Методы многомерной безусловной оптимизации § 2.1. Основные понятия
- •§ 2.2. Метод сопряженных направлений
- •§ 2.3. Метод наискорейшего спуска
- •§ 2.4. Метод Ньютона
- •Глава 3. Интерполирование и аппроксимация функций, заданных таблично § 3.1. Основные понятия
- •§ 3.2. Интерполяционный полином в форме Лагранжа
- •§ 3.3. Интерполяционный полином в форме Ньютона
- •§ 3.4. Сплайн-интерполяция таблично заданной функции
- •§ 3.5. Аппроксимация таблично заданных функций методом наименьших квадратов
- •Глава 4. Численное дифференцирование и интегрирование функций § 4.1. Основные понятия
- •§ 4.2. Численное дифференцирование
- •§ 4.3. Численное интегрирование
- •4.3.1. Квадратурные формулы прямоугольников, трапеций и Симпсона. Квадратурные формулы прямоугольников
- •Квадратурная формула трапеций
- •Квадратурная формула Симпсона
- •4.3.2. Автоматический выбор шага. Правило Рунге
- •Глава 5. Численные методы решения задачи Коши для обыкновенных дифференциальных уравнений и их систем § 5.1. Основные понятия
- •§ 5.2. Метод Эйлера
- •§ 5.3. Явный 4-шаговый метод Адамса
- •§ 5.4. Метод Рунге Кутта четвертого порядка
- •Литература
§ 1.2. Метод половинного деления
Метод половинного деления (метод дихотомии), использующийся для решения задачи (1.1.1), относится к методам нулевого порядка и применяется для унимодальных на некотором начальном интервале (a, b) функций. Он предполагает выполнение двух этапов:
– отделение (локализация) положения локального минимума с целью построения начального интервала неопределенности 0 = (a, b) (в данной работе не рассматривается);
– последовательное уменьшение длины интервала неопределенности (этот этап отражает суть метода).
Уменьшение длины интервала неопределенности методом половинного деления осуществляется следующим образом. Пусть функция f(x) является унимодальной на интервале 0 = (a, b), содержащем х* (a, b) – точку искомого минимума функции f(x). Зададим достаточно малое число > 0, затем выберем симметрично относительно центра интервала 0 две пробные точки: x1 = (b – a)/2 – /2 и x2 = (b – a)/2 + /2. Число определяет степень различимости этих точек. Построим очередной интервал неопределенности, который содержит точку минимума, используя свойства унимодальной на интервале 0 функции f(x). Очевидно, этот интервал неопределенности 1 будет совпадать с одним из интервалов: (а, x2), (x1, b) или (x1, x2). Следовательно, его возможная наибольшая длина 1 = (b – a)/2 + /2.
Теперь приведем более формальное описание метода половинного деления. Пусть функция f(x) является унимодальной на интервале (a, b), заданы достаточно малые числа > 0 и > 0 – требуемая точность определения точки искомого минимума данной функции х* (a, b). Тогда метод половинного деления можно записать в виде следующего алгоритма.
1. Задать функцию f(x) и числа а, b, > 0, > 0.
2. Если b – a 2 перейти к выполнению п. 8.
3. Вычислить с = (a + b)/2.
4. Задать х1 = с – /2 и х2 = х1 + .
5. Вычислить f(x1); f(x2).
6. Если f(x1) > f(x2) положить a: = х1.
Если f(x1) f(x2) положить b := х2.
Если f(x1) = f(x2) положить a: = х1; b : = х2;
7. Перейти к выполнению п. 2.
8. Положить х* = (a + b)/2. Процесс завершен.
Промежуточные результаты работы метода половинного деления удобно заносить в таблицу, аналогичную табл. 1.2.1.
Таблица 1.2.1
Номер итерации |
a |
b |
b – a |
х1 |
х2 |
f(x1) |
f(x2) |
0 |
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
… |
… |
… |
… |
… |
… |
… |
… |
k |
|
|
|
|
|
|
|
Дадим общую характеристику метода половинного деления:
– всегда сходится к решению задачи (1.1.1);
– скорость сходимости метода практически линейная. На каждом шаге длина интервала неопределенности уменьшается, после k-го шага процесса она составляет не более (b – a)/2k + (1 - 2-k). Нетрудно подсчитать количество итераций, необходимых для уменьшения исходного интервала неопределенности в заданное количество раз. Например, чтобы уменьшить ее не менее чем в 100 раз, потребуется семь итераций;
– на каждом шаге требуется вычисление значений функции f(x) в точках х1 и х2, которые расположены симметрично относительно центра текущего интервала неопределенности на расстоянии друг от друга. Число > 0 рекомендуется выбирать достаточно малым; практически оно ограничено снизу точностью производимых вычислений.
Таким образом, чтобы уменьшить длину исходного интервала неопределенности не менее чем в 100 раз, потребуется вычисление значения функции f(x) в 14 пробных точках. Для сравнения отметим, что можно последовательно разместить внутри интервала неопределенности 99 точек с интервалом h = 0,01(b – a) и проанализировать значения функции в этих точках (так называемый пассивный поиск). В результате этих действий интервал неопределенности также будет уменьшен в 100 раз, но уже за счет 99 вычислений значений функции f(x). Следовательно, метод половинного деления является более эффективным, чем метод одновременного размещения большого количества пробных точек внутри исходного интервала неопределенности.