- •Содержание
- •Введение
- •1 Классический медод решения задач нелинейного программирования
- •1.1 Постановка задачи
- •1.2 Экстремум функции одной переменной
- •1.3 Экстремумы функций многих переменных
- •1.4 Метод неопределенных множителей Лагранжа
- •1.4.1 Основные положения
- •1.4.2 Геометрическая интерпретация метода множителей Лагранжа
- •1.4.3 Экономическая трактовка метода множителей Лагранжа
- •1.4.4 Особые случаи
- •1.5 Особенности реальных задач
- •2 Численные методы решения задач нелинейного программирования
- •2.1 Общая характеристика методов решения задач нелинейного программирования
- •2.2 Методы одномерной оптимизации
- •2.2.1 Метод прямого сканирования
- •2.2.2 Метод половинного деления
- •2.2.3 Метод "золотого сечения"
- •2.2.4 Метод Фибоначчи
- •2.3 Методы многомерной оптимизации
- •2.3.1 Метод Гаусса-Зайделя
- •2.3.2 Метод градиента
- •2.3.3 Метод наискорейшего спуска
- •2.3.4 Метод квантования симплексов
- •2.3.5 Поиск при наличии "оврагов" целевой функции
- •2.4 Методы поиска условного экстремума
- •2.4.1 Метод проектирования вектора-градиента
- •2.4.2 Метод ажурной строчки
- •2.5 Проблемы поиска глобального экстремума
- •3 Численные методы решения задач нелинейного программирования
- •3.1 Графический метод решения задач нелинейного программирования
- •3.2 Метод множителей Лагранжа
- •3.3 Компьютерная реализация решений задач нелинейного программирования
- •3.3.1 Решение задач нелинейного программирования в среде приложенияExcel
- •3.3.2 Решение задач нелинейного программирования в среде приложения Matlab
- •Перечень ссылок
- •Приложение а Блок-схемы методов
3.3.2 Решение задач нелинейного программирования в среде приложения Matlab
Метод покоординатного спуска (Гаусса – Зейделя)
На каждом шаге метод «приближается» к решению последовательно по каждой из координат. Переход от точкик точке+1 назовем «внешней» итерацией. Внутри каждой «внешней» итерации находятся n «внутренних» для последовательного вычисления координат точки+1.
.
,
,
,
…………………………………………………………,
.
,
.
Блок-схема алгоритма метода покоординатного спуска с постоянным
шагом и программа приведены в Приложении 1. Графическая
иллюстрация решения приведена на Рис.3.9.
Рисунок 3.9 – Графическая иллюстрация движения к максимуму методом
покоординатного спуска.
Градиентный метод с постоянным шагом.
На каждой итерации метод «приближается» к решению, вычисляя новое значение каждой координаты в соответствии с формулой. Блок-схема алгоритма метода с постоянным шагом и программа приведены в Приложении. Графическая иллюстрация решения приведена на Рис. 3.10.
Рисунок 3.10 – Движение к максимуму с постоянным шагом.
В примере Рис.3.11 происходит дробление шага на первой итерации
алгоритма. В этом можно убедиться, поставив точку останова на строке 56.
Рисунок 3.11 – Графическая иллюстрация метода с дроблением шага
Градиентный метод наискорейшего спуска.
На каждой итерации вычисляется значение шага γ, максимизирующее значение целевой функции:
.
Новые координаты вычисляются с помощью этого значения:
Скалярное произведение векторов-градиентов на двух смежных итерациях равно нулю:
Это означает, что движение от точки к точке происходит по взаимно-ортогональным направлениям. (Рис.3.12).
Рис.3.12 – Движение к экстремуму по взаимно-ортогональным направлениям в методе наискорейшего спуска.
Сравнение методов.
Для сравнения точности и быстродействия методов в данной работе используется следующий простой прием. В вышеприведенных примерах решалась простейшая задача, точное решение которой находится из системы линейных уравнений.
f(
В таблице 3.1 для каждого метода приводится число итераций к, за которое из одной и той же начальной точки алгоритм приходит в точку хк, норма вектора-градиента в которой становится меньше заданного числа δ =0,01 -точности метода. Точка хк является решением задачи. Методы сравниваются по значению отклонения этой точки от точки х*=0 – точного безусловного максимума .
Таблица 3.1 –Сравнения точности и быстродействия методов
Метод |
Отклонение |
Число итераций |
Покоординатный спуск |
0.0030555 |
20 |
«По всем координатам сразу» с постоянным шагом |
0.0035189 |
22 |
«По всем координатам сразу» с дроблением шага |
0.0040109 |
14 |
Метод наискорейшего спуска |
0.0013446 |
12 |
ВЫВОДЫ
В данном дипломном проекте я представила решение задач нелинейного программирования различными методами для проведения анализа поведения этих методов на выбранных математических моделях нелинейного программирования.
Для достижения поставленной цели были выполнены следующие действия
-решены выбранные задачи нелинейного программирования графическим методом;
-решены выбранные задачи нелинейного программирования методом множителей Лагранжа
-представлена компьютерная реализация выбранных задач нелинейного программирования в среде пакетов Excel и Matlab