Методи синтезу та оптимізації
Автор: zennarchi • Март 12, 2022 • Контрольная работа • 1,361 Слов (6 Страниц) • 248 Просмотры
Міністерство освіти і науки України
Національний університет «Львівська політехніка»
Кафедра систем
автоматизованого проектування
Методи синтезу та оптимізації
Звіт до контрольної роботи №1
Варіант – 19
Виконав:
Студент гр. КН-41з
Павлюк А.О.
Прийняв:
Соколовський. Я.І.
Львів – 2021
Завдання № 1
Знаходження екстремальних точок функції однієї змінної.
Код програми(js):
let EPSILON = 0.01;
function func(x) {
return x/8 - 30 * x**2 - 0.25 * x**4;
}
function bisection(a, b) {
if (func(a) * func(b) >= 0) {
console.log("Wrong interval!");
return;
}
let c = a;
while (b - a >= EPSILON) {
c = (a + b) / 2;
if (func(c) == 0.0) break;
else if (func(c) * func(a) < 0) b = c;
else a = c;
}
console.log("The value of " + "root is : " + c.toFixed(4));
}
let aValue = -1,
bValue = 0.5;
bisection(aValue, bValue);
Результат виконання:
Завдання № 2
Використовуючи симплекс-метод, розв’язати наступну задачу лінійного програмування:
Код програми:
import pulp
x1 = pulp.LpVariable("D1", cat='Integer', lowBound=0)
x2 = pulp.LpVariable("D2", cat='Integer', lowBound=0)
x3 = pulp.LpVariable("D3", cat='Integer', lowBound=0)
prob = pulp.LpProblem('0', pulp.LpMinimize)
prob += 2*x1 + 6*x2 + 1.5*x3
prob += 2*x1 + 6*x2 + 5*x3 <= 1200
prob += x1 <= 55
prob += x2 <= 100
prob += x3 <= 150
prob += x1 >= 0
prob += x2 >= 0
prob += x3 >= 0
status = prob.solve()
for variable in prob.variables():
print(variable, "=", variable.varValue)
print ("Результат:")
print (pulp.value(prob.objective))
Результат виконання:
Завдання № 3
Розв’язати транспортну задачу:
Код програми:
import pulp
x11 = pulp.LpVariable("a1b1",lowBound=0)
x12 = pulp.LpVariable("a1b2",lowBound=0)
x13 = pulp.LpVariable("a1b3",lowBound=0)
x14 = pulp.LpVariable("a1b4",lowBound=0)
x21 = pulp.LpVariable("a2b1",lowBound=0)
x22 = pulp.LpVariable("a2b2",lowBound=0)
x23 = pulp.LpVariable("a2b3",lowBound=0)
x24 = pulp.LpVariable("a2b4",lowBound=0)
x31 = pulp.LpVariable("a3b1",lowBound=0)
x32 = pulp.LpVariable("a3b2",lowBound=0)
x33 = pulp.LpVariable("a3b3",lowBound=0)
x34 = pulp.LpVariable("a3b4",lowBound=0)
prob = pulp.LpProblem('0', pulp.LpMinimize)
prob += 9*x11 + 10*x12 + 11*x13 + 15*x14 + \
11*x21 + 12*x22 + 8*x23 + 10*x24 + \
12*x31 + 13*x32 + 13*x33 + 10*x34
prob += x11 + x12 + x13 + x14 == 10
prob += x21 + x22 + x23 + x24 == 20
prob += x31 + x32 + x33 + x34 == 30
prob += x11 + x21 + x31 == 11
prob += x12 + x22 + x32 == 12
prob += x13 + x23 + x33 == 22
prob += x14 + x24 + x34 == 15
status = prob.solve()
for variable in prob.variables():
if variable.varValue > 0:
print (variable,
...