2297

Система Mathcad. Розв’язування задач оптимізації

Лекция

Математика и математический анализ

Пошук екстремуму функції. Екстремум функції багатьох змінних. Локальний екстремум. Умовний екстремум. Приклад вирішення транспортної задачі в середовищі Mathcad. Зміна чисельного методу. Вікно діалогу Advanced Options.

Украинкский

2013-01-06

92.14 KB

66 чел.

Лекція 12. Система Mathcad. Розв’язування задач оптимізації

План

1. Пошук екстремуму функції.

1.1. Локальний екстремум.

1.2. Умовний екстремум.

1.3. Екстремум функції багатьох змінних.

2. Приклад розв’язування транспортної задачі в середовищі Mathcad.

1. Пошук екстремуму функції

Задачі пошуку екстремуму функції передбачають знаходження її максимального або мінімального значення в деякій області визначення її аргументів. Обмеження на значення аргументів, які задають цю область, та інші додаткові умови повинні бути визначені у вигляді системи нерівностей і (або) рівнянь.

Для розв’язування задач пошуку максимуму та мінімуму в системі Mathcad є вбудовані функції Minerr, Minimize и Maximize. Всі вони використовують градієнтні чисельні методи.

Mathcad пропонує три різних градієнтних методи . Щоб змінити чисельний метод, потрібно:

  1.  Клацнути правою кнопкою миші на імері функції Find.
  2.  Навести вказівку миші на пункт Nonlinear( Нелинейный) в контекстному меню.
  3.  В меню, що з'явиться, вибрати один із трьох методів: Conjugate Gradient (Спряжених градієнтів), Quasi-Newton (Квазі-Ньютоновський) або Levenberg (Левенберга).

Рис. 1. Зміна чисельного методу

Щоб повернути автоматичний вибір типу чисельного методу, потрібно в контекстному меню вибрати пункт Autoselect (Автоматичний вибір). Крім вибору самого методу , в Mathcad є можливість встановлювати деякі їх параметри. Для цього потрібно за допомогою того ж контекстного меню викликати вікно діалогу Advanced Options (Додаткові параметри), вибравши для цього пункти Nonlinear/ Advanced Options (Нелінійний/Додаткові параметри).

Рис. 2. Вікно діалогу Advanced Options

В цьому вікні є п’ять груп перемикачів, по два в кожній. В першому рядку Derivative estimation (Аппроксимація похідної) визначаєься метод обчислення похідної Forward (Вперед) або Central (Центральна). Вони відповідають апроксимації похідної або правою, або центральною скінченною різницею. В другому рядку Variable estimation (Апроксимація змінних) можна визначити тип апроксимації рядом Тейлора. Для апроксимації дотичною прямою лінією виберіть перемикач Tangent (Дотична), для більш точної квадратичної апроксимації (параболою) встановіть перемикач Quadratic (Квадратична). Наступна група перемикачів Linear variable check (Перевірка лінійності) дозволяє в специфічних задачах зекономити час обчислень. Якщо нелінійності всіх функцій, що входять в рівняння, мало впливають на значення всіх їх частинних похідних, то потрібно встановити перемикач Yes (Так). В цьому випадку похідні будуть прийняті рівним константам і не будуть обчислюватися на кожному кроці. Але потрібно дуже обережно змінювати параметри чисельних методів і тоді, коли розв’язок не знаходиться при заданих за замовчування параметрах або коли обчислення займають багато часу. Пара перемикачів Multistart (Сканування) задають опцю пошуку глобального або локального мінімуму або максимуму. Якщо встановлений перемикач Yes (Так), Mathcad буде намагатися знайти найбільш глибокий екстремум в області, близькій до початкового наближення. Нарешті, останній перемикач Evolutionary (Эволюційний алгоритм) дозволяє використовувати модифікацію чисельного методу для розв’язування рівнянь, визначених не обов’язково гладкими функціями, якщо його встановити в положення Yes (Так). Правильний вибір чисельного методу та його параметрів може допомогти при розв’язуванні нестандартних задач.

Локальний екстремум.

Пошук екстремуму включає в себе задачі знаходження локального та глобального екстремуму.

В Mathcad за допомогою вбудованих функцій розв’язується тільки задача пошуку локального екстремуму. Щоб знайти глобальний максимум (або мінімум), потрібно спочатку обчислити всі їх локальні значення і потім серед них вибрати найбільший (найменший), або попередньо просканувати з деяким кроком задану область, щоб виділити з неї підобласть найбільших (найменших) значень функції і здійснити пошук глобального екстремуму, уже знаходячись в його околі. 

Для пошуку лкальних екстремумів є дві вбудовані функції, які можуть використовуватися як в межах обчислювального блоку, так і автономно.

Minimize (f, x1, ... ,хм) — вектор значень аргументів, при яких функція досягає мінімуму;

Maximize (f, х1, ... ,хм) — вектор значень аргументів, при яких функція досягає максимуму;

f (x1, ... , хм,...) — функція;

x1, ... , xм — аргументи, за якими виконується мінімізація (максимізація).

Всім аргументам функції f попередньо потрібно присвоїти деякі значення, причому для тих змінних, за якими виконується мінімізація, вони будуть сприйматися як початкові наближення.

Розглянемо приклади обчислення екстремуму функції однієї змінної без додаткових умов. Так як ніякиї додаткових умов не накладається, пошук екстремуму виконується для будь-яких значень.

Приклад 1. Знайти мінімум функції однієї змінної

Приклад 2. Знайти максимум функції однієї змінної

Умовний екстремум

В задачах на умовний екстремум функції мінімізації та максимізації повинні бути включені в обчислювальний блок , тобто перед функціями повинно бути записане ключове слово Given. В проміжку між Given і функцією пошуку екстремуму за допомогою бульових операторів записуються логічні вирази, які задають обмеження на значення аргументів функції. Розглянемо приклад пошуку умовного екстремуму функції. Порівняйте результати цього прикладу з результатами двох попередніх.

Приклад 3. Три приклади пошуку умовного екстремуму функції

Екстремум функції багатьох змінних

Обчислення екстремуму функції багатьох змінних принципово не відрізняється від обчислення екстремуму функції однієї змінної. Тому обмежимося розглядом прикладу знаходження максимуму та мінімуму функції

Приклад 4. Екстремум функції двох змінних

2. Приклад розв’язування транспортної задачі в середовищі Mathcad

Постановка ТЗ

При організації та плануванні перевезень вантажів виникає широкий клас задач, пов'язаних з мінімізацією затрат на перевезення, які розв'язують за допомогою математичного апарату лінійного програмування.

Розглянемо постановку ТЗ в загальному вигляді. Нехай маємо m постачальників А1 , А2 ,..., Аm із запасами однорідних вантажів a1 , a2 ,..., am та n споживачів B1 , B2 ,..., Bn з потребами b1 , b2 ,..., bn. Тарифи перевезень вантажів, що можуть виражатись різними показниками (відстань, вартість або час) між постачальниками та споживачами, задані у вигляді матриці

Необхідно скласти такий план перевезень вантажів, при якому сумарна вартість перевезень мінімальна.

Якщо ввести такі позначення: xij - обсяг перевезень вантажів від і-го постачальника до j-го споживача та Z - сумарна вартість перевезень вантажів, то при розв'язанні ТЗ ми повинні мінімізувати вартість перевезень вантажів . 

Матрицю X = (xij ), називають матрицею перевезень.

В залежності від співвідношення запасів вантажів у постачальників та сумарних потреб споживачів розрізняють закриту та відкриту ТЗ.

Означення 1. Транспортна задача називається закритою (ЗТЗ), якщо сума запасів вантажів у постачальників дорівнює сумі потреб споживачів, тобто виконується умова .

Необхідна умова розв’язання ТЗ — ТЗ має розв’язок лише тоді, коли вона є закритою.

Означення 2. Транспортна задача називається відкритою (ВТЗ), якщо сума запасів вантажів у постачальників не дорівнює сумі потреб споживачів, тобто виконується умова .

Розглянемо два випадки:

1) якщо сума запасів у постачальника менша, ніж сума потреб споживачів, тобто виконується умова то вводять додаткового фіктивного постачальника із запасами = . Тарифи перевезень (відстані) від цього постачальника до споживачів дорівнюють нулю.

2) якщо сума запасів у постачальника більша, ніж сума потреб споживачів, тобто виконується умова  то вводять додаткового фіктивного споживача із потребами = . Тарифи перевезень (відстані) від цього споживача до постачальників дорівнюють нулю.

Приклад 1. Приклад розв’язування транспортної задачі в середовищі Mathcad.


 

А также другие работы, которые могут Вас заинтересовать

64035. Организация сервисной деятельности студии визажа 4.27 MB
  Целью дипломной работы является разработка сервисной деятельности студии визажа. Цель исследования определит его следующие конкретные задачи. Задачи дипломной работы: изучить современные тенденции индустрии услуг, направленных на визаж...
64036. Комп’ютерна верстка за допомогою программ Adobe InDesign та Microsoft Publisher 317.5 KB
  Користувач створює власний макет сторінки, який може містити текст, малюнки, фотографії та інші ілюстративні елементи. Залежно від необхідної кількості і якості матеріалів друк може виконуватися на принтері, різографі або в спеціалізованих друкарнях.
64037. Створення Web-додатків за допомогою Ajax 2.72 MB
  Для реалізації поставленої мети слід вирішити наступні завдання: Детальніше ознайомитися з технологією Ajax; Ознайомитися принципи роботи Web-додатків; Детальніше ознайомитися з інформацією про програмні бібліотеки підтримки розробки Web-додатків.
64039. Сравнительная оценка быков-производителей по продуктивным и воспроизводительным качествам коров в СХПК «Присухонское» Вологодской области 894 KB
  Климат района, в пределах которого находится СХПК «Присухонское», умеренно-континентальный с продолжительной холодной многоснежной зимой и умеренно теплым летом. Для данного района характерна короткая весна...
64040. Организация производства и технико-материальное оснащение участка диагностирования в условиях КОГБУ АТХ Правительства Кировской области 916 KB
  Правильный подбор технологического оборудования, работающего персонала по квалификации и количеству увеличивает производительность, экономические показатели, а главное качество выполняемых работ, позволяет обеспечивать бесперебойную работу участка диагностирования...
64042. Розробка інтернет-порталу для проведення онлайн-турнірів 1.94 MB
  Метою дипломної роботи є засвоєння та поглиблення знань з програмування, отриманих на протязі всього навчання в коледжі та виробити вміння застосовувати їх на практиці для вирішення питань з програмування.