МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
Кафедра автоматизованих систем управління
Лабораторна робота №1-2
з дисципліни “Математичні методи дослідження операцій”
на тему
«Постановка задачі лінійного програмування та її розв’язання графічним методом»
Мета роботи: набуття навиків побудови математичної моделі задачі лінійного програмування, вивчення графічного методу для знаходження розв’язку системи нерівностей, навчитися використовувати графічний метод застосовуючи готові пакети програм ( MS Exel, MathCad та ін. ) і на основі отриманих знань створити власну програму на одній із вже вивчених мов програмування.
1. Короткі теоретичні відомості:
Суть графічного методу розв’язання системи лінійних нерівностей.
Задача знаходження розв'язку системи лінійних нерівностей відіграє важливу роль у розв'язуванні багатьох задач математичного програмування, а не лише лінійного. Ця задача має і самостійний інтерес.
Розглянемо спочатку такий приклад. Нехай дано систему нерівностей:
(2)
Геометрично кожну нерівність системи (2) можна тлумачити як деяку півплощину, обмежену прямою, рівняння якої можна дістати з відповідної нерівності, змінивши знак нерівності знаком рівності. Через di(x1, x2) (і =1, 2, ..., 6) позначено відхилення довільної точки з координатами x1, x2 від відповідної прямої. Так, відхилення точки з координатами х1=3, х2 = 8 від прямої d1(x1, x2) = -1х1 - 1х2 + 11 = 0 становить d1(3, 8) = -1*3 - 1*8 + 11 = 0, тобто точка (3; 8) лежить на цій прямій; аналогічно знаходимо відхилення точки (3; 8) від прямої d2(x1, x2), яке становить -3; від прямої d3(x1, x2) становить 15 і т.д.
У точці з координатами (x1; x2) нерівність, наприклад, d1(x1, x2) = -1х1 - 1х2 + 11 = 0, виконується, якщо відхилення такої точки від прямої d1(x1, x2) = -1х1 - 1х2 + 11 = 0 невід'ємне.
Рис.6.
На Рис. 6 зображено множину точок W (її заштриховано), у кожній точці якої винонуються всі нерівності системи (2). Отже, множина W є множиною розв'язків системи нерівностей (2). Якщо точка х належить множині W розв'язків системи нерівностей (2), то відхилення цієї точки від усіх прямих, які обмежують множину W, будуть невід'ємними. А якщо точка не належить W, то принаймі одна з нерівностей не справджуватиметься і координати цієї точки не задовольнятимуть систему нерівностей, які визначають множину W. Очевидно, W є опуклим многокутником.
Отже, якщо всі відхилення деякої точки від прямих, що обмежують множину W, невід'ємні, то набір координат такої точки є одним із розв'язків даної системи нерівностей. Такий розв'язок називатимемо допустимим. Точку, що відповідає допустимому розв'язку, називатимемо допустимою.
Як бачимо, у двовимірному просторі задачу можна розв'язати графічним способом, побудувавши множину розв'язків для кожної нерівності і взявши переріз таких множин. Якщо цим перерізом є порожня множина, то система нерівностей несумісна.
Опис програм MS Exel і MathCad.
Програма MS Exel.
MS Excel - є програмою для розрахунків за допомогою електронних таблиць. Головна область її застосування - виконання розрахунків, як в бізнесі так і у повсякденному житті. Excel має велику кількість вбудованих функцій, різні засоби обробки даних, багато сервісних засобів, мета яких полегшити роботу користувачеві.
При завантаженні Excel автоматично відкривається нова пуста робоча книга. Робоча книга складається з 16 робочих таблиць (розмір кожної 256 колонок та 16384 рядки).Розглянемо вікно програми Excel.
Перша панель у вікні Excel - панель заголовку. Вона показує ім’я програми та ім’я файлу. Ліворуч знаходиться кнопка системного меню, праворуч - кнопки зміни розміру вікна. Друга панель - панель меню. Вона містить у собі спадні меню, яки використовують для вибору різних команд Excel.
File (файл) - дозволяє оперувати файлами, тобто створення нової робочої книги, відкриття вже існуючої, запис, закриття файлу, пошук, встановлення параметрів сторінок для роздруку робочих листів, керування друком. З цієї команди меню можна завершити роботу з Excel.
Edit (редактування) - дозволяє проводити різні операції з даними: переносити, копіювати та знищувати, а також оперувати робочими листами.
View (вигляд) - відповідає за зовнішній вигляд екрану та документу Excel. Дозволяє переглянути результати роботи користувача різними способами. У цьому режимі можна також встановити або знищити панелі інструментів.
Insert (вставка) - дозволяє додавати до таблиць додаткові комірки, колонки, рядки, а також вставляти нові листи, різні об’єкти, малюнки, діаграми тощо.
Format (формат) - дозволяє встановлювати потрібні для користувача формати даних в комірках, регулювати ширину колонок, висоту рядків.
Tools (інструменти) - дозволяє змінити параметри програмних установок, використати макроси, а також виконує перевірку орфографії.
Data (дані) - дозволяє маніпулювати даними таблиць, як базою даних.
Window (вікно) – оскільки Excel зберігає структуру Windows, тому дозволяє працювати з декількома текстовими файлами, ця команда меню відповідає за показ всіх потрібних документів одночасно та дозволяє впорядковувати вікна перегляду.
Help (допомога) - всі програми Windows оснащені потужною довідковою системою. Програма Help дозволяє отримати довідку по тому чи іншому питанню.
Наступні два рядки - піктографічне меню. По замовчуванню встановлені панелі:
Стандартна
Форматування
За бажанням, користувач може встановити будь-які піктографічні меню. Піктографічне меню встановлюється при допомозі команди View=>Toolbars. У діалоговому вікні Toolbars слід вибрати ті панелі, які необхідно показати. Піктографічне меню вводять для того, щоб можна було викликати функції, що частіше виконуються. Кожна кнопка піктографічного меню відповідає за якусь команду.
Excel має наступні панелі піктографічного меню:
Standart - піктографічне меню стандартних засобів надає користувачу команди, за допомогою яких виконується маніпулювання стандартними можливостями системи (створення, загрузка, збереження, друк, вихід з програми Excel).
Formatting - піктографічне меню форматування надає користувачеві змогу скористатись командами форматування (оформлення) комірок таблиці.
Tip Wizard - піктографічне меню майстра підказок допомагає оптимізувати робочі кроки починаючого користувача.
Chart - піктографічне меню побудови графіків незамінне при роботі з діловою графікою.
Drawing - піктографічне меню малювання надає широкий асортимент засобів для створення нескладних малюнків.
Microsoft - піктографічне меню надає можливість працювати зі всіма програмами Microsoft Office в межах механізму OLE (перенесення об’єктів з однієї програми в іншу).
Stop Recording - піктографічне меню зупинки запису макрокоманди вміщує одну піктограму. Воно використовується для того, щоб закінчити запис послідовностей команд, які автоматично перетворюються в макрокоманди.
Full Screen - піктографічне меню розширення розмірів таблиці до розмірів екрану вміщує одну піктограму, при натисканні на яку таблиця буде представлена у нормальному представленні.
Querry and Pivot - піктографічне меню потрібно для виклику засобів роботи з базою даних.
Visual Basic - піктографічне меню вміщує піктограми для створення та відлагодження програм користувача на вбудованій мові Visual Basic.
Під рядками піктографічних панелей розташований рядок формул. З лівого краю рядку відображається інформація про місце знаходження курсору або про величину виділеної області. З правого краю відображається інформація, яка вводиться у комірку. По середині знаходяться три кнопки, які можна побачити при вводі інформації.
Ліва з кнопок <Cancel> використовується для відмови від введеної інформації.
Середня кнопка <Enter> підтверджує ввід інформації.
Права кнопка <Function Wisard> потрібна для роботи із вбудованими функціями.
Нижній рядок на екрані - статусний. З лівого краю висвічується інформація для користувача про те, що він може або повинен зробити для завершення команди. Праворуч розташовані індикатори режимів клавіатури (CAPS - для Caps Lock та NUM - для Num Lock) та системи у цілому.
Посередині екрану знаходиться вікно документу нової робочої книги. Верхній та лівий рядки, що оточують документ, є заголовками колонок та рядків. Тому кожна комірка має свою адресу. Ліворуч від документу знаходиться вертикальна полоса прокрутки. Знизу знаходяться кнопки прокрутки вказівників таблиць, вказівники таблиць та горизонтальна полоса прокрутки документу. На перетині горизонтальної та вертикалої стрічок прокрутки є кнопка зміни розміру, яка міняє розмір та конфігурацію вікна документу.
Excel зберігає всі властивості Windows, тобто програма Excel може працювати з декількома документами, тим більше робоча таблиця це не єдиний тип документу, що використовується в Excel. Додатково можна дістати діаграми та макроси. У вікні Excel кожен з цих типів документів має власне вікно.
Вікно змінить свій розмір. Для впорядкування показу декількох вікон на екрані скористуйтесь командою Window=>Arrange. У програмі Excel можна одночасно відкрити декілька дочірніх вікон і розмістити їх за власним бажанням. Крім того можна розділити вікно на декілька підвікон. Для цього необхідно виконати команду Window=>Split. На екрані з’являється перехрестя, яке поділяє вікно на 4 панелі. Для повернення до нормального стану вікна виконують команду Window=>Remove Split (знищити розділення).
Для зручності роботи користувача Excel як і Windows має контекстне меню. Воно містить у собі всі операції, які часто виконуються для активного об’єкту у конкретній ситуації. Для виклику контекстного меню необхідно навести курсор миші на потрібний об’єкт і натиснути праву кнопку миші.
Для отримання довідки в конкретній ситуації необхідно натиснути клавішу F1, або натиснути відповідну праву кнопку на стандартному піктографічному меню. Дістати довідку по питанню не залежному від ситуації можна за допомогою команди меню Help:
Contens (вміст) - відкриє зміст всієї довідкової інформації.
Using Microsoft Excel (використання) - надає користувачеві покрокові інструкції при ознайомленні з роботою Excel.
Examples and Demos (приклади та інструкції) - демонструє роботу Excel на узагальнених прикладах.
Reference Information (довідкова інформація) - відповідає на загальні питання і надає довідкову інформацію по термінології, командах, гарячих клавішах та вбудованих функціях.
Programming With Visual Basic - надає можливість роботи з повним довідником по мові VBA.
Technical Support (технічна підтримка) - показує користувачу, де і як можна дістати технічну підтримку фірми MSOffice, якщо виникнуть проблеми з Excel.
Search for Help on (пошук довідки про) - допоможе відшукати пояснення окремих термінів.
Index - організовує пошук термінів, команд та вбудованих функцій в алфавітному порядку.
Lotus 1-2-3 - дозволяє дістати довідку по цій програмі.
Multiplan - дозволяє отримати довідку по програмі Multiplan.
Якщо виникає потреба роздрукувати якій-небудь розділ довідки виберіть команду File=>Print Topic. Прінтер має бути у стані готовності.
Можна переписати довідкову інформацію у текстовий редактор або у документ Excel. Виберіть команду Edit=>Copy (у вікні Help). У діалоговому вікні Copy, необхідно виділити потрібний текст і вибрати команду Copy. Інформація буде розміщена у буфері Clipboard. Розмістити її можна за допомогою команди Edit=>Paste потрібного редактору.
Excel використовує робочу книгу, яка складається з 16 великих робочих таблиць. Кожна з 16 таблиць в робочий книзі розділена на колонки та рядки, має рамку для найменування колонок літерами, а рядків - цифрами. Вся інформація розміщується в комірках, яки утворюються на перетині колонки і рядка. Кожна комірка дозволяє проводити обчислення над числовими значеннями, а також редактування і форматування тексту. Електронні таблиці зберігають як формули так і значення обчислені за цими формулами.
Таким чином, Excel - це програма призначена для створення будь-якого документу, який може вміщувати текстові та числові дані і дозволяє проводити розрахунки. Оскільки можна створювати формули у динаміці, обчислення автоматично відновлюються при зміні відповідних змінних в інших комірках таблиці.
Для вводу інформації в робочу таблицю потрібно вибрати комірку і почати вводити інформацію. Всі введені символи з’являться у двох місцях :
у вибраній комірці
на панелі формул, яка знаходиться зверху робочого поля.
На панелі формул з’являються кнопки
( - Cancel
( - Enter
fx - Function Wizard
Після вводу інформації натисніть “Enter” на панелі формул, <Enter> на клавіатурі або одну з клавіш управління курсором на клавіатурі.
Дані в Excel поділяються на 3 типи:
Текст
Числові значення
Формули
Текст складається з букв, знаків пунктуації і цифр. Текстові дані в Excel автоматично вирівнюються по лівому краю комірки. Якщо текст не поміщається в комірку, він розтікається по сусідніх комірках, при умові , що вони є вільними. Якщо в сусідній комірці є які-небудь значення, тоді текст буде відображений в обрізаному вигляді.
Числові значення бувають двох типів
кількісні величини
дати
Якщо Excel сприйняла значення як числове, тоді буде вирівнювання по правому краю комірки. Excel визначає, чи введена дата і час в вигляді тексту або числа по формату, який вибирає користувач.
Формули. Введення формул в комірку починається із знака “=“. Формули є прості і складні.
Форматування комірок.
Для форматування комірок існує команда у командному меню Format=> Cells, завдяки якій можна накласти на відмічений блок різні типи форматування. Діалогове вікно Format Cells вміщує 6 позицій для вибору :
Number - дозволяє вибрати потрібний числовий формат.
Font - дозволяє проводити більшість необхідних змін шрифту. Вміщує в себе багаточисленні опції (шрифти, стилі шрифтів, ефекти, зміна кольору шрифту).
Alignement - вибір розміщення елементу відносно границь комірки, автоперенос тексту, зміна орієнтації тексту.
Border - потрібна для оформлення виділеного блоку лініями, встановлення потрібної товщини ліній та їх колір.
Patterns - застосовується для встановлення нового кольору фону відмічених комірок.
Вибір ширини для колонок є однією з важливих операцій при форматуванні робочої таблиці. Змінити ширину колонок можна наступними способами:
Вибрати команду Format=>Columns=>AutoFit.
Встановити вказівник миші на рамку, що оточує зверху робочий документ, на праву межу колонки. Двічі натисніть клавішею. Ширина колонки автоматично вирівняється по найдовшому записі у колонці.
Встановити вказівник миші на рамці, на правій межі колонки, Натисніть і не відпускаючі клавіші миші перетягніть межу колонки на потрібну ширину.
Можна скористатись командою Format=>Columns=>Width. У діалоговому вікні Columns Width (ширина колонки) необхідно ввести кількість знаків, що будуть відображені у колонці.
Якщо необхідно повернути стандартну ширину колонок виберіть команду Format=>Columns=>Standart Width.
Аналогічно, можна форматувати висоту рядків за допомогою команди Format=>Row.
Деколи в користувача є частина інформації, яка з різних причин не має бути відображена на екрані. Для цього у Excel передбачена можливість зробити потрібні рядки або колонки невидимими.Виділіть потрібні колонки або рядки. Натисніть правою кнопкою миші для появи контекстного меню. Виберіть команду Hide і виділені колонки або рядки зникають з екрану (але вони не зникають з документу). На рамці, що оточує документ нумерація колонок або рядків не змінюється, тобто якщо прихована колонка В, тоді на екрані після колонки А буде колонка С. Для відміни приховування необхідно виділити оточуючі заховану інформацію колонки або рядки і за допомогою контекстного меню вибрати команду Inhide. Аналогічні команди знаходяться у командному меню Window.
Для покращення роботи з інформацією використовують класичні команди:
Cut (вирізати)
Copy (скопіювати)
Paste (вставити)
Ці команди можна виконати за допомогою:
Командного меню Edit
Піктографічного меню
Контекстного меню
Клавіатури (відповідно <Ctrl-X>, <Ctrl-C>, <Ctrl-V>)
В разі невірного кроку використовують команду Undo (з меню Edit або з піктографічного меню). Команда Undo повертає програму на крок назад, до виконання невірної команди. Якщо потрібно якийсь крок повторити, використовують команду Redo.
Техніка “drag-and-drop” (перетягнути і відпустити) використовується для переміщення відміченого блоку у нове місце таблиці. Для переміщення потрібно зафіксувати курсор миші на одній з меж відміченого блоку і, утримуючі кнопку миші, пересунути блок на нове місце. Ця операція аналогічна виконанню команди Cut і Paste. Якщо потрібно копіювання блоку, тоді всю процедуру необхідно робити при натиснутій клавіші <Ctrl>.
Для копіювання стилю форматування використовують інструмент Format Painter з панелі стандартного інструментарію. Ця кнопка дозволяє перейняти тип форматування з активної комірки і застосувати його до відмічених комірок на робочому листі. Зробіть активною комірку з потрібним типом форматування і натисніть на кнопці Format Painter. Курсор набуває вигляд потовщеного хреста з пензликом праворуч. Наведіть цім курсором на потрібну комірку (при потребі не відпускаючи клавішу миші виділіть потрібний блок) і відпустіть клавішу миші. Всі відмічені комірки змінять тип форматування на заданий.
Деколи користувач хоче скопіювати лише деякі атрибути відміченого інтервалу. Для цього існує команда Edit=>Paste Spеcial (або Paste Special з контекстного меню). При виконанні цієї команди відкривається діалогове вікно Paste Special у якому слід активізувати потрібні опції.
Iснує 2 способи для знищення інформації:
Очищення вмісту комірок без знищення їх з робочої таблиці.
Знищення комірок з їх вмістом. Для очищення комірок використовують команду Edit=>Clear і одну з підкоманд
Contens (Вміст)
All (все)
Formats (формати)
Notes (примітки)
Для знищення комірок разом із вмістом використовують команду Edit=>Delete. Так як Excel не може лишити пусті місця замість комірок, що знищуються у діалоговому вікні Delete треба встановити одну з опцій:
Shift Cells Left - cусідні колонки зсунуться ліворуч.
Shift Cells Up - колонки зсуватимутись догори.
Entire Columns - знищити всю колонку з виділеним блоком.
Entire Row - знищаться всі рядки виділеного блоку.
Якщо потрібно знищити всю колонку або рядок, необхідно її відмітити за допомогою натискання курсором на заголовку рядка або колонки. Виберіть команду Edit=>Delete і виділені рядок або колонка будуть знищені.
Операції вставлення нових комірок, рядків або колонок аналогічні до операцій знищення. Виберіть блок комірок, на місці яких мають з’явитись нові комірки і виконайте команду Insert=>Cells, Insert=>Row, Insert=>Columns. У діалоговому вікні Insert активізуйте одну з опцій:
Shift Cells Rignt - для зсуву існуючих комірок праворуч.
Shift Cells Down - для зсуву існуючих комірок донизу.
Entire Row - вставити цілий рядок.
Entire Columns - вставити цілу колонку.
Робоча таблиця в Excel займає дуже багато місця. Але дісплей комп’ютера дозволяє одночасно бачити тільки невелику частку робочої таблиці. Тому для зручності перегляду інформації існує команда View=>Zoom або спадне меню Zoom на панелі стандартного інструментарію. Команда Zoom має вмонтовані коефіцієнти зміни масштабу.
Дуже часто користувачу необхідно вводити послідовності :
чисел
дат
тексту
Для полегшення роботи Excel має програмний засіб AutoFill. Введіть перше значення в комірку. Для того, щоб був правильно визначений інтервал введіть друге значення в сусідню комірку. Відмітьте область вводу. Наведіть курсор на нижній правий кут області. Курсор змінить вигляд на товстий хрестик. Натисніть ліву кнопку миші і протягніть маркер Автозаповнювача на потрібний інтервал комірок. Після відпускання миші Excel заповнить відмічену область відповідними значеннями.
Робота з діловою графікою.
Excel дозволяє створювати наочні діаграми для графічного представлення чисельних залежностей у робочих таблицях. Після розміщення даних у робочій таблиці, для створення діаграми необхідно показати Excel, яку інформацію використати, який тип графіку потрібний і де його треба розташувати. Це можна зробити за допомогою Chart Wizard (експерт по функціях), який складається з п’ятьох кроків.
Перед викликом Chart Wizard необхідно вибрати інтервал комірок, в яких знаходиться інформація потрібна для діаграми. Таблиця має бути стандартною та суцільною. Для створення графіку:
Натисніть на інструменті Chart Wizard на панелі стандартного інструментарію.
Курсором, який змінить свій вигляд необхідно відмітити місце розташування та розмір діаграми. Якщо діаграму необхідно розмістити на іншому робочому листі, натисніть на потрібному корінці листа і виділить на ньому потрібні контури.
Після визначення контурів діаграми висвічується діалогове вікно Chart Wizard. Вікно має 5 кнопок:
Help (довідка) - користувач може отримати вичерпну інформацію по питанню, пов’язаному з даним кроком.
Cancel (відміна) - відміняє застосування Chart Wizard.
Back (крок назад) - використовується при корекції діаграми, не виходячи з діалогового вікна Chart Wizard.
Next (наступний крок) - необхідно натиснути для просування вперід на крок.
Finish (завершити) - натискується при виході з діалогового вікна Chart Wizard, або на кроці після якого буде вже введено ніякої інформації.
На першому кроці користувач має вказати інтервал комірок потрібної таблиці. Якщо комірки були відмічені, тоді у полі Range (інтервал) інтервал буде вже висвічений. При потребі його можна замінити.
Діалогове вікно кроку 2 допоможе вибрати тип діаграми:
Гістограма, лінійна - порівнюють значення для одного або більше набору даних.
Кругова, кільцева, радар - показує співвідношення частин одного цілого.
Графік - потрібна для відслідкування тенденції розвитку або співвідношення між значеннями за деякий період часу ( по осі Х відкладають час).
Площі, поверхні - показує суми, що зростають.
Крапкова - потрібна для кореляції (співпадіння) між кількома наборами даних.
Діалогове вікно кроку 3 надасть різні варіації вибраного типу діаграми.
У діалоговому вікні кроку 4 Chart Wizard покаже вигляд вибраної діаграми. У полі Data Series in (ряди даних) небхідно вказати, що потрібні дані, за якими будується діаграма знаходяться у:
Rows (рядках)
Columns (колонках)
В діалоговому кроку 5 необхідно ввести у поля:
Chart Title - назву діаграми.
Add a Legend - чи додавати до діаграми пояснення.
Axis Titles - заголовки вісей.
Сategory X - вісь Х - категорії.
Value Y - вісь Y - значення.
Після проходження всіх кроків необхідно натиснути кнопку Finish.
З’являється піктографічна панель інструментів Chart. Діаграма розміщується у вибраних контурах. Розмір діаграми можна змінити. Зафіксуйте курсор миші на одній з точок, що оточують графік, і перетягніть у потрібний бік. Діаграму можна перемістити у інше місце. Наведіть курсор на діаграму, натисніть ліву кнопку миші, і не відпускаючи клавіші потягніть у потрібний бік цілу картинку. Якщо діаграму необхідно перенести на інший робочий лист, тоді необхідно скористатись буфером Clipboard (операції Cut та Copy).
Після створення діаграми, для внесення змін використовують інструментарій піктографічної панелі Chart, в якій є наступні кнопки:
Chart Type (тип діаграми) - у спадному списку можна вибрати новий тип діаграми.
Horisontal Gredlines (горизонтальна сітка) - встановлює або забирає лінії сітки для значень осі Y.
Legend (позначення) - додає до діаграми пояснення до кожного кольору.
Chart Wizard - висвічує діалогове вікно Chart Wizard, яке складається з двох кроків.
Перший крок надає можливість змінити інтервал комірок.
Другий крок дозволить поміняти ряди даних.
У створеній діаграмі можна внести зміни у певні області діаграми. Можна поміняти шрифт або перенести позначення в інше місце.
Після подвійного натиску на діаграмі, з’являється рамка фрейму. Тепер одним натиском на об’єкті можна його виділити, і за допомогою контекстного меню, редактувати об’єкт за своїм бажанням.
Програма MathCad.
Є багато версій програми. Нас влаштовує будь-яка. Після запуску програми отримаємо традиційне Windows вікно з головним меню, панелями інструментів, робочим полем і рядком стану.
У робочому полі червоним хрестиком позначене місце, де створюватимемо блоки. Розрізняють три типи блоків: 1) текстовий блок, куди можна вводити будь-який текст і куди традиційно вводять умову задачі і коментарі; 2) математичний блок, куди вводяться математичні вирази і де генеруються результати; 3) блок, що містить графік.
Програма автоматично розпізнає типи блоків. У математичний блок вводятьчисловий, алгебраїчний чи інщий математичний вираз, зміннні та команди. Блоки спочатку є невирівняними, їх вирівнюють за допомогою команд вирівнювання у горизонтальному чи вертикальному напрямках. Обчислення виконуються в математичних блоках у робочому полі з ліва-направо і зверху-вниз. Блоки можна переміщати.
Правила, які потрібно запам’ятати.
Щоб надати значення змінній, слід натиснути на клавішу із символом двокрапки (:). На екрані ця дія позначається символом присвоння(:=).
Щоб отримати результат обчислень числового чи іншого виразу, слід натиснути на клавішу =.
Щоб виконати символьне переповнення ( визначитм похідну, первісну, розклачти вираз на множники чи в ряд тощо) треба натиснути на комбінацію клавіш Ctrl+крапка лат. На екрані дія символьних обчислень позначається стрілкою.
Щоб ввести символ = в сенсі «рівно», наприклад, в рівнянні, треба натиснути Ctrl+=
Розрізняють прості змінні (х:=3) і змінні діапазони, наприклад, х1:=1, 1.5..4. Тут змінна х отримає значення 3, а змінна х1 – значення 1, 1.5, 2, 2.5, 3, 3.5, 4. Якщо крок зміни параметра діапазону 1, то пишуть коротко: х1:=1..4.
Вирази складаються з чисел, змінних і функцій, з’єднаних символами операцій: ^ - піднесення до степеня, *,/,+, - тощо.
Якщо над виразом потрібно виконати декілька дій, варто створити функцію користувача, наприклад, f(x):=x^2 – 5x + 6.
Програма намагається самостійно розпізнати, де поставити символ множення. Зазвичай це крапка, але може бути й інший символ. Порядок виконання арифметичних операцій можна змінити за допомогою круглих дужок. Символьні операції є на панелі інструментів Матаналіз ( диференціювати, інтегрувати, обчислити границю, суму чи добуток) та Символи.
Спочатку вводять символьну операцію, яка відповідає змісту задачі, а потім заповнюють її шаблон, замінюючи маркери на елементи формули. Якщо формула передбачає числовий результат, то можна відразу виконати команду обчислення =.
Якщо треба отримати символьний результат, то виконуюють команду «символьне дорівнює» Ctrl+крапка.
Певну складність для початківця створює процес заповнення шаблону команди. Під час введення команди курсор вводу має вигляд синього кута, який вказує на точку введення, тобто на місце куди вводитимуть символ. Точку вваду можна замінити за допомогою клавіш зі стрілками. Щоб навчитися правильно вибирати точку вводу, потрібно якнайбільше експерментувати з клавішами-стрілками. Неправильно створені формули слід вибирати, вилучати і починати процес створення спочатку.
Є універсальний спосіб розв’язування рівняння чи нерівностей за допомогою блоку команди given-find. Спочатку записують службове слова given, далі – блоки рівнянь чи нерівностей. Наприклад, x2 + y2 = 25 x + y = 9 і слово find із зазначенням що саме треба знайти: find(x,y)=. Зауважимо, що в системі рівнянь символи = є символами відношення, їх слід вводити комбінацією клавіш Ctrl+=. А в команді find символ = є звичною командою обчислення.
2. Хід роботи
2.1. Постановка задачі.
2.2. Розв’язання задачі лінійного програмування графічним методом без використання пакетів програм.
2.3. Розв’язання з допомогою MS Excel 2007.
2.4. Розв’язання з допомогою MathCad.
2.5. Розв’язання з допомогою власної програми написаної на мові С.
2.1. Постановка задачі
Розв’язати задачу лінійного програмування графічним методом і методом симплекс-таблиць (номер завдання відповідає двом останнім цифрам залікової книжки студента, крім цифр 00 – які відповідають завданню під номером100)
Варіант 92
F(x1,x2) = 4x1 + 2x2 max ;
x1+ 2x2 5,
2x1 + 4x2 16,
6x1 + x2 6,
x1+ 3x2 9,
x1 0,x2 0.
2.2. Розв’язання без використання пакетів програм.
Побудуємо область допустимих рішень, тобто вирішимо графічно систему нерівностей. Для цього побудуємо кожну пряму і визначимо півплощини, задані нерівностями (півплощини позначені штрихом).
Перетином півплощини буде область,координати точок якої задовольняють умові нерівностей системи обмежень задачі.Позначимо межі області багатокутника рішень.
Розглянемо цільову функцію задачі F = 4x1 +2 x2 → max.Побудуємо пряму, що відповідає значенню функції F = 0: F = 4x1 +2 x2 = 0. Будемо рухати цю пряму паралельним чином. Оскільки нас цікавить максимальне рішення, тому рухаємо пряму до останнього торкання позначеної області. На графіку ця пряма позначена пунктирною лінією.
Область допустимих рішень являє собою багатокутник.ПрямаF(x)= const перетинає область в точці E. Так як точка E отримана в результаті перетину прямих (5) і (2), то її координати задовольняють рівнянням цих прямих:x2 = 02x1 +4 x2 ≤ 16Вирішивши систему рівнянь, отримаємо: x1 = 8, x2 = 0Звідки знайдемо максимальне значення цільової функції:F (X) = 4 * 8 + 2 * 0 = 32
2.3. Розв’язання з допомогою MS Excel 2007
Графічний метод розв'язку задачі
4x+2y -> max
x+2y>=5
<- 1
2x+4y<=16
<- 2
6x+y<=6
<- 3
x+3y<=9
<- 4
X
x>=0
y>=0
0
5
0
8
0
1
0
9
Точки перетину
Цільова функція
A
B
ax
ay
1
2
5
X
Y
4
2
6
1
6
0
0
0
0
2
4
A
X,Y
1
0
4
-0,09091
0,18182
0,63636
0,63636
2,18182
6,909091
0,545455
-0,0909
2,18182
0,52941
1
4,117647
0,52941
2,82353
7,764706
5
0
20
A
B
8
0
32
2
4
16
1
3
9
A
X,Y
1,5
-2
6
-0,5
1
1
A
B
6
1
6
1
3
9
A
X,Y
0,176471
-0,0588
0,52941
-0,05882
0,35294
2,82353
A
B
1
2
5
0
1
0
A
X,Y
1
-2
5
0
1
0
A
B
2
4
16
0
1
0
A
X,Y
0,5
-2
8
0
1
0
Із значень цільової функції ми можемо побачити, що максимальне варіант розв’язання поданий вище (зроблений без використання програм) є вірним.
2.4. Розв’язання за допомогою програми MathCad
Записуємо умову:
Умова:
F(x1,x2) = 4x1 + 2x2 max ;
x1+ 2x2 5,
2x1 + 4x2 16,
6x1 + x2 6,
x1+ 3x2 9,
x1 0,x2 0.
Перетворення:
x2 = (5 – x1)/2
x2 = (8 – x1)/2;
x2 = 6 –6 x1;
х2=(9-х1)/3
Графіки обмежуючих прямих:
Визначаємо точки перетину прямих :
Обчислюємо значення цільової функції в крайніх точках:
Отже, максимальне значення цільова функція досягає в точці з координатами (0;8) і воно становить 32.
Розв’язання за допомогою власної програми.
Програма написана мовою С++
Лістинг
#include "stdafx.h"
#include <conio.h>
#include <stdio.h>
#include <iostream>
using namespace std;
typedef struct XY
{
double x;
double y;
}pntXY;
int main (void)
{
//const unsigned MAX = 100;
pntXY points[100];
pntXY maxPointer, minPointer;
double max = 0, min;
double a, b;
double valueF;
int counter;
setlocale (LC_ALL, ".1251");
int i;
printf("Введiть коефiцiенти при цiльовiй функцiї: ");
scanf_s ("%lf%lf",&a,&b);
printf("Введiть кiлькiсть точок обмеження: ");
scanf_s("%d",&counter);
printf("Послiдовно введiть цi точки: \n");
getchar();
for (i = 0; i < counter; i++)
{
scanf_s("%lf%lf",&points[i].x,&points[i].y);
getchar();
}
min = a * points[0].x + b * points[0].y;
minPointer.x = points[0].x;
minPointer.y = points[0].y;
for (i=0 ; i<counter; i++)
{
if ((valueF = a * points[i].x + b * points[i].y) > max)
{
max = valueF;
maxPointer.x = points[i].x;
maxPointer.y = points[i].y;
}
if (valueF > min)
{
min = valueF;
minPointer.x = points[i].x;
minPointer.y = points[i].y;
}
}
cout <<"\nМаксимальне значення цільової функції знаходиться в точці ("<<minPointer.x<<","<<minPointer.y<<") і дорівнює "<<min;
system("pause");
return 0;
}
Cріншот виконання:
Висновок: Виконуючи дану лабораторну роботу я навчився розв’язувати задачу лінійного програмування графічним методом використовуючи для цього пакети готових програм, а також написав свою програму, яка виконує дане завдання.