Лабораторна робота №
Використання нелінійного програмування при моделюванні складних процесів і систем.
Мета: ознайомитися і навчитися використовувати основні методи нелінійного програмування вирішення для задач оптимізації у середовищах MathCad і MS Excel.
Мінімізуємо функцію:
при умові х1>0, x2>0.
Введемо в комірки В3 і С3 початкове значення, в комірку D3-цільову функцію, в комірки E3 і F3-похідні (для контролю). |
Метод спряжених градієнтів
x1 | x2 | f(x) | f(x1) | f(x2)
0 | 3 | 52 | -44 | 24
Після цього мінімізуємо функцію. Для цього з меню Сервіс необхідно викликати діалогове вікно Поиск решения. В ньому в полі Установить целевую ячейку ввести адрес, де записана цільова функція, далі встановити прапорець по цілі рішення – на максимум чи на мінімум.
Рисунок 1. Діалогове вікно Поиск решения
В полі області Изменяя ячейки ввести адреси комірок, де встановлені початкові значення змінних, і в полі області Ограничения ввести границі моделі. Натиснути кнопку Параметри. В цьому вікні зняти прапорець Линейная модель, якщо він встановлений.
Рисунок 2. Діалогове вікно Параметри поиска решения
В результаті отримаємо: |
Метод спряжених градієнтів
x1 | x2 | f(x) | f(x1) | f(x2)
2,047207 | 1,023661 | 4,97933E-06 | 0,000193502 | 0,000454627
Розглянемо другий приклад – функцію Розенброка, часто використовується, як тестова. Необхідно мінімізувати функцію:
Функція має мінімум в точці х=1, у=1. Введемо початкове значення і цільову функцію. Після мінімізації отримаємо: |
Функція Розенброка
x | y | f(x)
0,992354 | 0,985785139 | 0,000162234 | -0,419652479 | 0,203738015
Не змінюючи похибки і сходимості, зробимо ще два запуски рішаю чого блоку: |
Функція Розенброка
x | y | f(x)
1 | 1,000000052 | 6,73223E-16 | 7,91114E-09 | 2,19677E-08
Реалізація в MathCad
Мінімум функції важко побачити на графіку. Побудуємо графік.
Мінімум функції Розенброка важко побачити на графіку. Представимо графік.
Тепер знайдемо її мінімум методами спряжених градієнтів і квазіньютонівським.
Повторно методом спряжених градієнтів
Квазіньютонівський метод
Повторно квазіньютонівський метод
Збільшимо точність
Метод спряжених
градієнтів при збільшенні точності
Висновок: на даній лабораторній роботі навчився використовувати основні методи нелінійного програмування для задач оптимізації у середовищах MathCad і MS Excel.