Лінійне програмування
Автор: Sofia10_17 • Май 23, 2019 • Лабораторная работа • 385 Слов (2 Страниц) • 328 Просмотры
Міністерство освіти і науки України
Національний університет «Львівська політехніка»
Кафедра СШІ
[pic 1]
Лабораторної роботи № 2
на тему:«Лінійне програмування»
з дисципліни:«Математичні методи дослідження операції»
Виконала:
студентка групи КН-210
Гелетій С.В.
Прийняла: асистент
Пелещишин О.П.
Львів 2019
Завдання 1.4.
F = +[pic 2][pic 3]
[pic 4]
- Для побудови графіків у програмі потрібно ввести матрицю відповідно до умови.
[pic 5]
[pic 6]
На даному малюнку видно, що область допустимих значень знаходиться в заштрихованій області.
- Побудуємо далі вектор нормалі і перпендикуляр до неї. Для цього вводимо коефіцієнти, які стоять в функції F біля x1 і x2.
[pic 7]
[pic 8]
- Далі вводимо дві прямі, що перетинаються і утворюють точку. Дані лінії обираємо такі, які потрібні за умовою завдання, тобто max чи min.
[pic 9]
[pic 10]
- В даній задачі наша функція прямує до max і тому у нас буде ось такий результат.
[pic 11]
- Щоб перевірити, чи правильно програма визначає наш max, я розв’язала її також математично
[pic 12]
Як бачимо, дані співпадають, отже програма реалізована правильно.
Код програми
pkg load geometry;
#Введемо кількість рівнянь, які задані в системі
n = input('Number of equations: ');
A = zeros(n,2);
b = zeros(1,n);
L = zeros(1,2);
x = -10:1:10;
#При введені даних потрібно враховувати також знак, який стоїть перед змінною
for i = 1:n
for j = 1:2
fprintf('Enter the matrix element %d %d ', i, j);
A(i, j) = input('');
end
fprintf('Enter the result %d ', i);
b(i) = input('');
end
funcs = cell(n,1);
#Виведення графіків
for i = 1:n
y = (-1*A(i,1)*x + b(i))/A(i,2);
plot(x,y);
...