Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Лінійне програмування

Автор:   •  Май 23, 2019  •  Лабораторная работа  •  385 Слов (2 Страниц)  •  286 Просмотры

Страница 1 из 2

Міністерство освіти і науки України

Національний університет «Львівська політехніка»

Кафедра  СШІ

[pic 1]

Лабораторної роботи № 2

на тему:«Лінійне програмування»

з дисципліни:«Математичні методи дослідження операції»

Виконала:

студентка групи КН-210

Гелетій С.В.

Прийняла: асистент

Пелещишин О.П.

Львів 2019

 Завдання 1.4.

F = +[pic 2][pic 3]

[pic 4]

  1. Для побудови графіків у програмі потрібно ввести матрицю відповідно до умови.

[pic 5]

[pic 6]

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

  1. Побудуємо далі вектор нормалі і перпендикуляр до неї. Для цього вводимо коефіцієнти, які стоять в функції F біля x1 і x2.

[pic 7]

[pic 8]

  1. Далі вводимо дві прямі, що перетинаються і утворюють точку. Дані лінії обираємо такі, які потрібні за умовою завдання, тобто max чи min.

[pic 9]

[pic 10]

  1. В даній задачі наша функція прямує до max і тому у нас буде ось такий результат.

[pic 11]

  1. Щоб перевірити, чи правильно програма визначає наш 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);

...

Скачать:   txt (4 Kb)   pdf (691.7 Kb)   docx (836.9 Kb)  
Продолжить читать еще 1 страницу »
Доступно только на Essays.club