
- •Основи чисельних методів математики (з використанням Excel) Передмова
- •Розділ 1. Методи обчислень: предмет, основні поняття та застосування
- •§ 1. Предмет і застосування
- •§ 2. Основні поняття
- •1. Похибки наближень.
- •2. Граничні похибки. Похибки функції.
- •3. Похибки розв'язку.
- •4. Стійкість і коректність.
- •Питання, тести
- •Розділ 2. Інтерполяція функцій
- •§1. Задача інтерполювання
- •§2. Інтерполяційна формула Лагранжа
- •§3. Поділені різниці. Формула Ньютона з поділеними різницями
- •§4. Інтерполяційна формула за допомогою Excel
- •§5. Інтерполювання за схемою Ейткіна
- •§6. Скінчені різниці. Інтерполяційні формули Ньютона для рівновіддалених вузлів
- •§7. Інтерполювання із скінченими різницями за допомогою Excel
- •§8. Інші методи інтерполювання
- •Питання, тести
- •Завдання
- •Розділ 3. Чисельне диференціювання та інтегрування.
- •§ 1. Однобічні формули чисельного диференціювання
- •§ 2. Оцінки похибки чисельного диференціювання
- •§ 3. Чисельне інтегрування. Квадратурні формули
- •§ 4. Квадратурні формули Ньютона – Котеса
- •§ 5. Узагальнені квадратурні формули.
- •§ 6. Метод подвійного перерахунку.
- •1. R2n ( f ) ≈ (правило Рунге) (14)
- •§ 7. Метод кратного перерахунку за допомогою Excel
- •Питання, тести
- •Завдання
- •Розділ 4. Чисельні методи розв‘язування рівнянь з однією змінною
- •§ 1. Відокремлення коренів
- •§ 2. Метод дихотомії (поділу відрізка пополам)
- •§ 3. Ітераційні методи та оператор стиску.
- •§ 4. Похибки ітераційного процесу
- •§ 5. Реалізація методу простої ітерації за допомогою електронних таблиць
- •§ 6. Метод Ньютона. Порядок збіжності ітераційного процесу.
- •§ 7. Метод лінійного інтерполювання.
- •§ 8. Інші приклади ітераційних методів.
- •Питання, тести
- •Завдання
- •Розділ 5. Методи розв’язування систем лінійних рівнянь
- •§ 1. Метод Гаусса
- •Метод Гаусса в матричній формі
- •Елементарні операції над матрицею:
- •§ 2. Метод Гаусса за допомогою Excel
- •§ 3. Матричні операції в Excel
- •3. Множення матриць.
- •§ 4. Метод простої ітерації для слр
- •§ 5. Метод Зейделя
- •Питання, тести
- •Завдання
- •Розділ 6. Методи лінійного програмування
- •§ 1. Оптимізаційні задачі. Математичне програмування
- •§ 2. Геометричний зміст задач лінійного програмування. Графічний метод
- •§3. Канонічна форма задачі лінійного програмування. Опорні розв’язки
- •§4. Симплекс – таблиця
- •§5. Симплекс – метод.
- •§6. Розв’язування задач лінійного програмування за допомогою excel
- •§7 Приклади
- •§8. Пошук початкового опорного розв’язку. Метод штучного базису
- •Властивості допоміжної задачі.
- •Питання, тести
- •Завдання
- •Розділ 7. Чисельні методи розв’язування звичайних диференціальних рівнянь
- •§ 1. Метод Ейлера
- •§ 2. Метод Ейлера за допомогою Excel
- •§ 3. Методи Рунге – Кутта
- •§ 4. Подвійний перерахунок для методів Рунге – Кутта
- •§ 5. Кратний перерахунок для методів Рунге – Кутта за допомогою Excel
- •§ 6. Методи Рунге – Кутта з вищими порядками похибки
- •Питання, тести
- •Завдання
- •Іменний покажчик
- •Предметний покажчик
- •Література
§5. Симплекс – метод.
На цих теоремах і ґрунтується симплекс – метод. Він дає спосіб на кожному кроці від неоптимального згідно з теоремою 1 опорного розв’язку перейти до наступного, ближчого до оптимального, ніж попередній, тобто поліпшити його. Тому симплекс – метод називають ще методом послідовного поліпшення опорного розв’язку. Цей алгоритм закінчує роботу, якщо встановлюється оптимальність отриманого опорного розв’язку згідно з теоремою 1 або ж відсутність оптимального розв’язку згідно з теоремою 2. Пояснімо його спочатку на конкретному прикладі.
Приклад. Для виготовлення продукції використовують три вида сировини і чотири способи виробництва. Запаси сировини, її витрати на одиницю продукції та кількість виготовляємої продукції по кожному способу (за годину роботи) наведені у таблиці.
Сировина |
Спосіб виробництва |
Запаси |
|||
1 |
2 |
3 |
4 |
||
1 |
1 |
2 |
1 |
9 |
18 |
2 |
1 |
1 |
2 |
1 |
30 |
3 |
1 |
3 |
3 |
2 |
40 |
Кількість продукції |
12 |
7 |
18 |
10 |
|
Треба знайти план виробництва, за яким буде отримана найбільша кількість продукції.
Це приклад задачі планування виробництва, розглянутий в §1. Як там показано, позначивши через хj час використання j – го способу виробництва (j = 1,2,3,4), дістанемо таку задачу лінійного програмування.
f = 12x1 + 7x2 + 18x3 + 10x4 (max) ,
.
Ввівши нові змінні х5, х6, х7, зведемо цю задачу до канонічної:
f = 12x1 + 7x2 + 18x3 + 10x4 (max)
.
Складемо її симплекс – таблицю:
х1 |
x2 |
x3 |
x4 |
x5 |
х6 |
х7 |
b |
1 1 1 |
2 1 3 |
1 2 3 |
0 1 2 |
1 0 0 |
0 1 0 |
0 0 1 |
18 30 40 |
12 |
7 |
18 |
10 |
0 |
0 |
0 |
0 |
Симплекс – таблиця виявляється приведеною до базису А5 , А6 , А7 опорного розв’язку α1 = (0; 0; 0; 0; 18; 30; 40), f(α1) = 0. Це видно з того, що матриця такого розв’язку на стовпцях змінних х5 , х6 , х7 є діагональною і отже відповідна система лінійних рівнянь у звичайній формі загального розв’язку має вигляд:
.
Отже, змінні х5 , х6 , х7 є основними, решта вільні. Вільні змінні опорного розв’язку х1 = х2 = х3 = х4 = 0, звідси х5 = 18, х6 = 30, х7 = 40. Оцінки основних змінних дорівнюють нулю, отже цільова функція виражена через вільні змінні опорного розв’язку α1, f = 0. Серед оцінок базису є додатні, тож α1 не є оптимальним згідно з ознакою оптимальності (теорема 1). Процедура його поліпшення, до розгляду якої ми переходимо, і є кроком симплекс – методу.
Виберемо будь – яку з додатних оцінок, скажімо δ1 = 12. (Найчастіше вибирають найбільшу, але це не обов’язково). Тим самим обрані змінна х1 і стовпець 1 симплекс – таблиці (з номером оцінки). Якщо знайти новий опорний розв’язок α2, у якому змінна х1 стане основною (замість вільної у α1), а тим самим додатною, то й значення цільової функції f = 12x1 + 7x2 + 18x3 + 10x4 збільшиться на 12x1 і стане додатним. Отже f(α2) ≥ f(α1), такий α2 ближче за α1 до оптимального. Фактично процедура знаходження α2 така.
Розглянемо відношення вільних членів до відповідних елементів обраного стовпця (в даному прикладі це 18/1, 30/1, 40/1) і серед них виберемо найменше. Тим самим обрані рядок (у прикладі теж перший) і елемент на перетині обраних рядка і стовпця (тут а11 = 1). Насправді це обрано місце, де елемент стовпця змінної х1 у симплекс – таблиці нового опорного розв’язку α2 буде дорівнювати одиниці, решта елементів повинна дорівнювати нулю, оскільки для α2 змінна х1 стане основною, а її стовпець частиною діагональної матриці. Обрані елемент, рядок і стовпець називають ведучими для наступного жорданова перетворення: як і у методі Гаусса, операціями над рядками симплекс – таблиці (тобто матриці) ведучий елемент роблять одиницею, а решту елементів ведучого стовпця нулями. У цьому прикладі вже а11 = 1, тож достатньо відняти перший рядок від другого і третього, від останнього рядка треба відняти перший, помножений на 12. В результаті отримаємо таку симплекс – таблицю:
х1 |
x2 |
x3 |
x4 |
x5 |
х6 |
х7 |
b |
1 0 0 |
2 – 1 1 |
1 1 2 |
0 1 2 |
1 – 1 – 1 |
0 1 0 |
0 0 1 |
18 12 22 |
0 |
– 17 |
6 |
10 |
– 12 |
0 |
0 |
– 216 |
В результаті змінна х1 стала основною (що і було метою перетворення), натомість змінна х5 стала вільною, отже новий набор основних змінних – це х1, х6, х7 ; новий загальний розв’язок, відповідний симплекс – таблиці, має вигляд
;
отже новий опорний розв’язок α2 = (18; 0; 0; 0; 0; 12; 22); цільова функція, виражена через новий набір вільних змінних має вигляд f = 216 – 17x2 + 6x3 + 10x4 – 12x5 ; f(α2) = 216 > f(α1) = 0. На цьому завершується перший крок симплекс – метода.
Зазначимо, що у цій процедурі обирався лише рядок (по критерію мінімуму відношень), все інше випливало з цього автоматично. Спробуємо у якості ведучого обрати рядок 2 замість рядка 1. Тоді ведучий елемент а21 = 1, отже для жорданова перетворення достатньо відняти другий рядок від першого і третього, від четвертого рядка треба відняти другий, помножений на 12. Маємо:
х1 |
x2 |
x3 |
x4 |
x5 |
х6 |
х7 |
b |
0 1 0 |
1 1 2 |
– 1 2 1 |
– 1 1 1 |
1 0 0 |
– 1 1 – 1 |
0 0 1 |
– 12 30 10 |
0 |
– 5 |
– 6 |
– 2 |
0 |
– 12 |
0 |
– 360 |
В результаті набір основних змінних: х1, х5, х7 ; опорний розв’язок (30; 0; 0; 0;–12; 0;10; 0). Він не є допустимим, оскільки х5 = – 12. Так само станеться, якщо обрати рядок 3 у якості ведучого. Зміст критерію мінімуму відношень у тому, що лише за таким вибором новий опорний розв’язок виявиться допустимим, тому його називають умовою допустимості. Це буде доведено при розгляді симплекс – метода у загальному вигляді, зараз продовжимо розгляд приклада.
Другий крок. У симплекс – таблиці, отриманій на першому кроці, залишилось дві додатні оцінки: 6 і 10. Обираємо серед них більшу: як ми бачили, ця оцінка є множником для величини збільшення цільової функції на кроці, тож можна сподіватись, що в такому разі і ця величина виявиться найбільшою (хоч насправді це не завжди так). Тим самим обрані змінна х4 і відповідний стовпець симплекс – таблиці. Якщо знайти новий опорний розв’язок α3, у якому змінна х4 стане основною (замість вільної у α2), а тим самим додатною, то й значення цільової функції f = 216 – 17x2 + 6x3 + 10x4 – 12x5 збільшиться, на 10х4. Отже f(α3) ≥ f(α2), такий α3 поліпшить α2 .
Як і на першому кроці, розглянемо відношення вільних членів до відповідних елементів обраного стовпця: 12/1, 22/2; виберемо серед них найменше 22/2 (лише додатні елементи стовпця у розгляді: доведення умови допустимості далі при розгляді симплекс – методу у загальному вигляді). Тим самим обрані ведучий рядок 3 і ведучий елемент а34 = 2 для жорданова перетворення. Отже поділимо рядок 3 на 2, а отриманий рядок віднімемо від другого та помноживши на 10 від четвертого. Маємо:
х1 |
x2 |
x3 |
x4 |
x5 |
х6 |
х7 |
b |
1 0 0 |
2 – 3/2 1/2 |
1 0 1 |
0 0 1 |
1 – 1/2 – 1/2 |
0 1 0 |
0 – 1/2 1/2 |
18 1 11 |
0 |
– 22 |
– 4 |
0 |
– 7 |
0 |
– 5 |
– 326 |
В результаті змінна х4 стала основною, змінна х7 стала вільною, новий набір основних змінних – це х1, х3, х6 ; отже новий опорний розв’язок α3 = (18; 0; 0; 11; 0; 1; 0), цільова функція, виражена через новий набір вільних змінних має вигляд f = 326 – 22х2 – 4х4 – 7х5 – 5х7, f(α3) = 326 > f(α2) = 216. Нарешті всі оцінки не додатні. Згідно з теоремою 1 на цьому симплекс – метод завершує роботу. Якщо знайти новий опорний розв’язок, у якому будь – яка вільна змінна х2, х4, х5 або х7 стане основною (замість вільної у α3), а тим самим додатною, то значення цільової функції f зменшиться. Отже α3 є оптимальним розв’язком задачі лінійного програмування у канонічній формі. Щодо початкової задачі, то відкидаємо три останні додані змінні. Відповідь її така. Для виготовлення найбільшої кількості продукції при даних запасах сировини необхідно застосовувати на протязі 18 годин перший спосіб виробництва та на протязі 11 годин – четвертий. В результаті буде виготовлено 326 одиниць продукції.
Нарешті сформулюємо симплекс – метод у загальному вигляді.
1. Звести задачу лінійного програмування до канонічної форми (далі будемо вважати, що задача дана у формі (3) ). Записати її симплекс – таблицю.
2. Знайти деякий початковий опорний розв’язок задачі (3), привести симплекс – таблицю до базису цього розв’язку, зокрема обчислити оцінки δj всіх його основних змінних.
3. Згідно з ознакою оптимальності (теорема 1), якщо всі оцінки δj ≤ 0, то цей розв’язок є оптимальним і на цьому симплекс – метод завершує роботу. Якщо ж серед оцінок є додатні, то виконується процедура його поліпшення, яка і є кроком симплекс – метода.
1) Вибираємо довільну додатну оцінку, скажімо δs . Тим самим обрані змінна хs і стовпець з номером s симплекс – таблиці.
2) Якщо всі елементи стовпця s, окрім самої оцінки δs > 0, недодатні, то цільова функція не обмежена зверху (умова необмеженості цільової функції, теорема 2), тобто оптимального розв’язку задачі (3) не існує і на цьому симплекс – метод припиняє роботу.
3) Якщо у стовпці s є додатні елементи, то серед відношень вільних членів di до відповідних додатних елементів ais стовпця s обираємо найменше
Θ =
;
Θ
(4)
для деякого рядка з номером k. Умову (4) на рядок k називають умовою допустимості.
4) На перетині обраних рядка k і стовпця s ведучий елемент аks наступного жорданова перетворення. Поділивши рядок k на ведучий елемент аks, дістанемо одиницю у стовпці s і Θ у стовпці вільних членів. Отриманий рядок віднімемо від кожного іншого рядка і, помноживши на аis , від рядка цільової функції, помноживши на δs .
5) В результаті маємо симплекс – таблицю з новим набором основних змінних, який включає хs (іншими словами з новим базисом). Якщо Θ > 0 (а так і буде напевно, якщо початковий опорний розв’язок є невиродженим), то отримуємо поліпшений опорний розв’язок, із збільшеним значенням цільової функції. Якщо Θ = 0, то отримуємо новий набір основних змінних (тобто новий базис) з тим самим опорним розв’язком.
6) На цьому крок симплекс – методу завершується. Треба повернутись до пункту 3 і розпочати наступний крок з аналізу оцінок змінних.
Скінченність симплекс – методу. Якщо задача лінійного програмування у канонічній формі не має вироджених опорних розв’язків, то через скінченну кількість кроків буде отриманий оптимальний розв’язок. Справді, на кожному кроці дістаємо поліпшений опорний розв’язок, а загалом їх кількість скінченна.
При розв’язуванні задачі, яка має вироджені опорні розв’язки, може так трапитись, що при переході до нового набору основних змінних того ж самого опорного розв’язку ми повернемось до початкового набору, тобто процес зациклиться. Для запобігання цього треба уточнити правило переходу. Наприклад, це можна зробити так. Серед оцінок базису δj > 0 вибираємо оцінку з найменшим номером. Якщо k, при якому Θ = = не єдине, то обираємо k з найменшим номером. Слідкуємо, щоби при подальших переходах ці номери завжди тільки збільшувались: це унеможливить зациклювання.
Нарешті
доведемо, що умова допустимості (4) є
необхідною і достатньою для того, щоби
отриманий в результаті жорданова
перетворення опорний розв’язок виявився
допустимим. Справді, нове значення
вільної змінної
після жорданова перетворення
дорівнює
=
.
Якщо аis
≤ 0, то
≥ 0, оскільки
di
≥ 0, dk
≥ 0, аks
> 0. Якщо ж аis
> 0, то
=
≥ 0, оскільки аis
> 0, а
≥ 0 за умови допустимості.
Навпаки,
якщо
≥ 0 на всіх рядках, то звідси
≥ 0 на всіх тих рядках і, де аis
> 0.
Отже
= Θ =
,
тобто виконується умова допустимості.