- •1.3. Численные методы нахождения локального минимума функции одного переменного
- •Алгоритм отыскания локального минимума унимодальной функции
- •Метод дихотомии
- •Метод золотого сечения
- •Рубежный тестовый контроль
- •1.4. Оптимизационная задача при отсутствии ограничений. Целевые функции нескольких переменных
- •Рубежный тестовый контроль
- •1.5. Градиентные методы поиска экстремума функции нескольких переменных
- •Градиентный подход поиска локального минимума функции нескольких переменных
- •Метод наискорейшего спуска
- •Метод Гаусса-Зейделя
- •Овражный метод
- •Рубежный тестовый контроль
- •1.6. Численные методы решения нелинейных алгебраических уравнений
- •Метод Ньютона
- •Решение системы алгебраических уравнений
- •Рубежный тестовый контроль
- •Глава II. Условный экстремум функций
- •Условный экстремум функций при ограничениях типа равенств (Задача Лагранжа)
- •Максимизация скорости набора высоты самолета в установившемся режиме полета на заданной высоте
- •Задача о консервной банке
Метод дихотомии
В этом методе точки и в каждой итерации выбираются по правилу
,
,
, (1.61)
где k – номер итерации (порядковый номер отбрасывания части отрезка, см.
п.3 алгоритма),
,
п
ричем
и
– левая и правая границы отрезка на
шаге под номером k,
при этом
– заданный параметр, см. рис. 1.16.
Заметим, что точки
и
располагаются симметрично относительно
середины текущего отрезка, см. рис. 1.16.
Покажем, что параметр
следует назначать так, чтобы
. (1.62)
С этой целью
установим закономерность, по которой
будет уменьшаться длина отрезка при
использовании алгоритма, рассмотренного
в предыдущем разделе. Исходная длина
отрезка
.
После первого, второго, третьего
отбрасывания длина отрезка будет
соответствовать равной
,
,
.
После N-го отбрасывания получим длину
. (1.63)
Далее устанавливаем, что
,
т.е. длина отрезка никогда не может стать меньше числа . Как было отмечено выше, процесс вычислений заканчивается по признаку
,
где k
– номер некоторой итерации (отбрасывания
части отрезка). Следовательно, для того,
чтобы процесс вычислений закончился
необходимо выполнить условие (1.62).
Достаточно, например, назначить
.
В таком случае, как это следует из (1.61)
;
,
Пример. Пусть
Г
рафик
этой функции показан на рис. 1.17.
В данном примере
отрезок [a,b]
таков, что
,
.
Пусть, кроме того, назначено, что
.
Примем, что
.
Проследим работу
алгоритма (метода дихотомии) при отыскании
точки минимума
.
Первая итерация (k = 1):
.
В данном случае
,
следовательно, отрезок
отбрасываем.
Вторая итерация (k =2):
,
,
,
,
,
,
.
Имеем
,
следовательно, отбрасывается отрезок
.
Переходим к итерации
под номером
и т.д. Процесс вычислений заканчивается
как только при некотором k
длина отрезка
станет меньше 0,03. В этом случае принимаем,
что
.
Метод золотого сечения
Золотым сечением отрезка (золотой пропорцией) называется такое деление отрезка на две неравные части, когда отношение большей части к исходной длине равно отношению меньшей части к большей части. Это определение поясняет рис. 1.18.
О
трезок
длины
считается разделенным точкой
на две части по правилу золотого сечения,
если
, (1.64)
где число
подлежит определению.
Определим, чему равно число .
Рассмотрим равенство
, (1.65)
выясним, каким должно быть число , чтобы кроме (1.65) имело место еще и равенство
. (1.66)
Как следует из рис. 1.18,
,
тогда, принимая во внимание (1.65), запишем, что
, (1.67)
следовательно, равенство (1.66) имеет место, если
,
т.е.
. (1.68)
Из двух корней уравнения (1.68) выбираем корень
. (1.69)
При этом, как это
вытекает из (1.67), координата точки
,
т.е.
,
или
. (1.70)
З
аметим,
что вместо точки
можно рассмотреть точку
,
которая симметрична
относительно середины отрезка
,
т.е. точки с,
рис. 1.19.
Все выкладки (1.64)
– (1.69) имеют место и в данном случае,
только лишь теперь
,
т.е.
. (1.71)
Покажем, что точка
делит отрезок
в золотой пропорции, см. рис. 1.19.
Как следует из этого рисунка, отрезок аx1 является большей частью отрезка ax2. Это подтверждает и соотношение (1.66) –
.
Для золотого сечения должно иметь место соотношение
,
т.е.
.
Справедливость этого равенства легко устанавливается, если учесть соотношения (1.66), (1.68).
Совершенно аналогично можно показать, что и точка делит в золотой пропорции интервал [x1,b]. Таким образом, в каком бы виде не оставался укороченный отрезок, уже одну точку золотой пропорции он будет содержать – либо x1, либо x2.
В рассматриваемом
методе золотого сечения координаты
точек x1
и x2
будем назначать в соответствии с
формулами (1.70), (1.71). Изложим теперь
алгоритм метода золотого сечения,
предназначенного для отыскания локального
минимума унимодальной функции
,
где
.
Нулевая итерация
(k
= 0). На этой итерации исследуется интервал
,
он совпадает с исходным, т.е.
,
.
В таком случае
Если
,
то отбрасывается отрезок
(назовем это случаем А);
если
,
то отбрасывается отрезок
(случай B).
Первая итерация (k = 1).
В случае А
– исследуется интервал
и при этом
,
;
,
;
В случае B
– исследуется интервал
,
при этом
,
;
,
.
Если
,
то отбрасывается отрезок
,
если же
,
то отбрасывается отрезок
и т.д. Вычисления
заканчиваются, как только
.
В этом случае
.
Подчеркнем, что метод золотого сечения отличается от метода дихотомии в принципе лишь способом задания точек x1 и x2.
Выясним, как
изменяется длина отрезка
от итерации к итерации, т.е. при
в методе золотого сечения.
Запишем:
и т.д., в общем случае
. (1.72)
Формула (1.72) может быть использована для определения необходимого количества итераций N для получения результата с заданной точностью . Кроме того, формулы (1.63), (1.72) позволяют сравнить эффективность методов дихотомии и золотого сечения.
Пример. Пусть
(cм. рис. 1.16). Имеем:
.
Поскольку
,
то отбрасываем отрезок
;
;
.
Поскольку
,
то отбрасываем отрезок
;
и т.д.
Замечание. Как было показано выше, в методе дихотомии параметр должен назначаться так, чтобы выполнялось неравенство
. (1.73)
В пределах указанного
интервала параметру
можно присвоить бесконечное количество
значений, например,
;
и т.д. Имеет место некоторый произвол в
назначении
.
Поставим следующую задачу.
Доопределить параметр так, чтобы при выполнении условия (1.73), количество итераций по методу дихотомии достигало минимума.
Из (1.63) находим, что для любого конкретного процесс вычислений заканчивается, если
, (1.74)
т.е.
и, следовательно, количество итераций при этом
. (1.75)
Используя (1.75),
выясним характер зависимости
.
Во-первых, замечаем, что
; (1.76)
.
В интервале
функция
– монотонно возрастает. Действительно,
производная
,
т.е.
при
.
Функция
имеет такой вид, как это показано на
рис. 1.20.
Т
аким
образом, своего наименьшего значения
величина N
достигает при
.
Величину
,
найденную по формуле (1.76), округлим до
ближайшего большего целого числа,
которое обозначим как,
. (1.77)
При таком значении
,
как это следует из (1.74),
.
Слагаемым
в знаменателе можно пренебречь,
следовательно,
. (1.78)
Как правило,
составляет доли процента от
,
т.е.
,
где
.
В таком случае, согласно (1.77)
,
т.е.
,
. (1.79)
Так при
(точность вычислений 1%)
.
Как следует из (1.78),
,
т.е.
,
. (1.80)
В заключение
заметим, что при использовании
алгоритмического языка TURBO
PASCAL
согласно (1.79)
вычисляется как
, (1.81)
где команда
усекает любое вещественное число x
путем отбрасывания его дробной части.
Имея в виду полученный результат, полезно сравнить метод дихотомии и метод золотого сечения – какой же из них более выгодный в смысле количества итераций при одной и той же точности .
Количество итераций без округления в методе дихотомии (см. (1.77))
, (1.82)
в методе золотого сечения
, (1.83)
их разность
,
т.е.
. (1.84)
При
,
где
,
т.е.
,
. (1.85)
Этот результат
говорит о том, что количество итераций
при использовании метода золотого
сечения будет всегда больше. Более того,
чем требуемая точность, т.е.
выше, тем выгоднее становится применение
метода дихотомии.
Итак, при конкретных расчетах необходимо:
1) задать
(одно из чисел 2,3,…);
2) по формуле (1.81) вычислить ;
3) по формуле (1.80) вычислить .
