
- •Аннотация
- •Оглавление
- •Предисловие
- •ГЛАВА 1. Задачи оптимизации. Основные определения
- •1.1. Задачи оптимизации
- •1.2. Минимум функции одной переменной
- •1.3. Унимодальные функции
- •1.4. Выпуклые функции
- •1.5. Условие Липшица
- •1.6. Классическая минимизация функции одной переменной
- •Вопросы и задания для самоконтроля
- •ГЛАВА 2. Одномерная минимизация функций. Прямые методы
- •2.1. О прямых методах
- •2.2. Метод перебора
- •2.3. Метод поразрядного поиска
- •2.4. Метод дихотомии
- •2.5. Метод золотого сечения
- •2.6. Сравнение методов перебора, дихотомии и золотого сечения
- •2.7. Метод парабол
- •Вопросы и задания для самоконтроля
- •Задание для численной реализации в среде программирования MATLAB
- •ГЛАВА 3. Одномерная минимизация. Методы, использующие информацию о производных целевой функции
- •3.1. Метод средней точки
- •3.2. Метод хорд
- •3.3. Метод Ньютона
- •3.4. Возможные модификации метода Ньютона
- •3.5. Методы минимизации многомодальных функций
- •Вопросы и задания для самоконтроля
- •Задание для численной реализации в среде программирования MATLAB
- •ГЛАВА 4. Задача минимизации функции многих переменных. Необходимые и достаточные условия безусловного экстремума
- •4.1. Постановка задачи и определения
- •4.2. Свойства выпуклых множеств и выпуклых функций
- •4.3. Необходимые и достаточные условия безусловного экстремума
- •Вопросы и задания для самоконтроля
- •5.1. Выпуклые квадратичные функции
- •5.2. Общие принципы многомерной минимизации
- •5.3. Метод градиентного спуска
- •5.4. Метод наискорейшего спуска
- •5.5. Метод сопряженных направлений
- •5.6. Метод сопряженных градиентов
- •5.7. Метод Ньютона
- •5.8. Квазиньютоновские методы
- •Вопросы и задания для самопроверки
- •Задание для численной реализации в среде программирования MATLAB
- •ГЛАВА 6. Прямые методы безусловной минимизации многомерных задач
- •6.1. Проблема минимизации многомерных задач
- •6.2. Минимизация функций по правильному (регулярному) симплексу
- •6.3. Минимизация функций при помощи нерегулярного симплекса
- •6.4. Метод циклического покоординатного спуска
- •6.5. Метод Хука–Дживса
- •6.6. Методы случайного поиска
- •Вопросы и задания для самопроверки
- •Задание для численной реализации в среде программирования MATLAB
- •7.1. Условный экстремум при ограничениях типа равенств
- •7.2. Условный экстремум при ограничениях типа неравенств
- •Вопросы и задания для самопроверки
- •ГЛАВА 8. Линейное программирование
- •8.1. Определения. Примеры задач линейного программирования
- •8.2. Общая и каноническая задачи линейного программирования
- •8.3. Геометрическое истолкование задач линейного программирования
- •8.4. Аналитическое решение задач линейного программирования
- •Вопросы и задания для самоконтроля
- •Литература
Однако при ухудшении свойств функции f (x) (например, если f (x) не
выпукла, быстро изменяется, имеет разрывные производные), эти алгоритмы минимизации по эффективности и надежности могут уступать методу золотого сечения, который практически не чувствителен к свойствам функции, если она унимодальна, или методу поразрядного поиска.
Поэтому, если особенно важно добиться надежной и устойчивой работы алгоритма, то целесообразно использовать метод золотого сечения или поразрядного поиска, как одни из лучших прямых методов. Можно также применять эти методы совместно с одним из более точных методов, например, квадратичной аппроксимации, переходя к алгоритму золотого сечения, если заданное число итераций более точного метода не приводит к результату.
Вопросы и задания для самоконтроля
1. Пусть f (x) − выпуклая дифференцируемая функция и |
|
′ |
|
≤ ε . Можно ли |
||||
|
|
|||||||
|
f (x) |
|
||||||
указать погрешности определения точки минимума x |
и минимального значения |
|||||||
f по формулам x = x , f |
= f (x) ? Ответ пояснить рисунком. |
|
|
|
|
|
||
2. Является ли условие |
′ |
достаточным для того, |
чтобы число x |
было |
||||
f (x) = 0 |
||||||||
точкой минимума унимодальной, |
но не выпуклой |
функции f (x) ? |
Ответ |
|||||
сопроводить примером. |
|
|
|
|
|
|
|
|
3.Указать класс функций, для которых точное определение точки минимума гарантировано в результате всего одной итерации метода Ньютона.
4.Сформулировать достаточные условия сходимости метода Ньютона.
5.Сформулировать достаточные условия монотонной сходимости метода Ньютона. Всегда ли в этом случае скорость сходимости будет квадратичной?
6.Для каких выпуклых дважды дифференцируемых функций метод золотого сечения приводит к цели за меньшее количество итераций, чем метод Ньютона?
7.Минимизировать функцию f (x) = (x −1)8 →min, x [0, 2] с помощью методов Ньютона и золотого сечения. Сравнить скорость сходимости методов.
8.Сформулировать оценку погрешности определения минимума f
многомодальной функции методом перебора.
53
9.Увеличение используемого значения константы Липшица L при реализации метода ломаных приводит к замедлению сходимости метода. Объяснить этот факт
спомощью геометрической иллюстрации.
10.Показать с помощью рисунка, что если в методе ломаных используется ошибочно заниженное значение константы Липшица L , то задача минимизации может быть решена неверно.
Задание для численной реализации в среде программирования MATLAB
1.Написать в среде MATLAB функции, реализующие метод средней точки, метод хорд и метод Ньютона.
2.Выбрать для выполнения работы тестовую функцию, номер которой соответствует номеру Вашего компьютера. Например, для компьютера №3 это будет функция 3), для компьютера №13 – функция 4): 13-9=4; для компьютера №23 это будет функция 5): 23-9×2=5.
1) |
f (x) = x3 |
−3sin x →min, x [0, 1]. |
||||||||||
2) |
f (x) = x4 |
+ x2 + x +1→min, |
x [−1, 0]. |
|||||||||
3) |
f (x) = e x |
+ |
|
1 |
|
→ min, |
x [0,5, 1,5]. |
|||||
|
|
|||||||||||
4) |
|
|
|
|
x |
|
|
|||||
f (x) = x2 |
− 2x + e−x →min, |
x [−1,1,5]. |
||||||||||
5) |
f (x) = x sin x + 2 cos x →min, |
x [−6, − 4]. |
||||||||||
6) |
f (x) = x + |
1 |
|
→ min, |
x [1, 2]. |
|||||||
|
|
|
||||||||||
|
|
|
x2 |
|
|
|||||||
7) |
f (x) =10x ln x − |
x2 |
→ min, |
x [0,1,1]. |
||||||||
|
||||||||||||
|
|
2 |
|
|
|
|||||||
8) |
f (x) = ex |
− |
1 |
x3 + 2x → min, |
x [−2,5, −1]. |
|||||||
|
||||||||||||
9) |
f (x) = x2 |
3 |
|
|
|
|
|
|
|
|||
− 2x − 2 cos x →min, x [−0,5, 1]. |
3.Для выбранной функции и для каждого рассмотренного выше метода изучить зависимость скорости работы (числа вычислений функции N ) от заданного значения точности ε . Провести сравнение методов друг с другом.
Объяснить полученные результаты.
4.Определить, сколько вычислений функции потребуется каждому методу для того, чтобы разность между численным решением и аналитическим решением,
найденным в задании для численной реализации гл. 2, была меньше ε =10−4 .
54

5.Сравнить полученные результаты с результатами выполнения задания для численной реализации гл. 2. Сформулировать достоинства и недостатки прямых методов и методов, использующих производную целевой функции.
6.С помощью метода Ньютона решить задачу минимизации функции
f (x) = x arctg x − 12 ln(1 + x2 ) .
Определить диапазон начальных приближений, для которых применим метод Ньютона. Объяснить полученный результат.
7. Решить задачу предыдущего пункта с помощью одной из описанных выше модификаций метода Ньютона (метода Марквардта или метода Ньютона-Рафсона). Определить диапазон начальных приближений, для которых применима выбранная модификация метода Ньютона. Сравнить полученные результаты с результатами выполнения предыдущего пункта.
8. Составить программу нахождения глобального минимума многомодальных функций методом перебора и методом ломаных. С ее помощью решить один из следующих наборов задач:
а) |
f (x) = |
cos x |
|
→ min, x [1,12]; |
f (x) = |
|
1 |
x + 2 sin 4x → min, x [0, 4]; |
||
|
x 2 |
10 |
||||||||
|
|
|
|
|
|
|
||||
б) |
f (x) = |
cos (10x) |
→ min, x [1, 5] |
; f (x) = 0.3cos 2x + 2 sin(4x) → min, x [0, 4] . |
||||||
|
||||||||||
|
|
|
e x |
|
|
|
|
|
|
Сравнить найденные значения точек минимума с точными значениями,
найденными аналитически. Сделать выводы о сравнительных достоинствах и недостатках метода перебора и метода ломаных.
55