Работа вам нужна срочно. Не волнуйтесь, уложимся!
- 22423 авторов готовы помочь тебе.
- 2402 онлайн
Реши с помощью Python

Дано линейное оптимизационное задание:
Функция цели:
F = 5x_1 + 4x_2 - 3x_3 + 4x_4 + 2x_5
Ограничения:
 \begin{cases} x_1 + 2x_2 + 3x_3 - x_4 - 2x_5 = 26, \ 2x_1 + 5x_2 + 3x_3 + 2x_4 - 3x_5 = 62, \ 2x_1 + 6x_2 + 5x_3 + x_4 - 3x_5 = 66, \ x_j \geq 0, \quad j = \overline{1,5}. \end{cases} 
Решим задачу с помощью Python, используя библиотеку scipy.optimize.
from scipy.optimize import linprog
# Коэффициенты целевой функции (коэффициенты при x)
c = [-5, -4, 3, -4, -2]  # Так как scipy.optimize.minimize минимизирует, берем отрицательные коэффициенты
# Коэффициенты ограничений
A_eq = [
    [1, 2, 3, -1, -2],
    [2, 5, 3, 2, -3],
    [2, 6, 5, 1, -3]
]
# Правая часть ограничений
b_eq = [26, 62, 66]
# Границы переменных (все переменные неотрицательные)
x_bounds = [(0, None)] * 5
# Решение задачи
res = linprog(c, A_eq=A_eq, b_eq=b_eq, bounds=x_bounds, method='highs')
# Вывод результатов
if res.success:
    print("Оптимальное решение найдено:")
    print("Значения переменных:", res.x)
    print("Оптимальное значение F:", -res.fun)  # Берем с минусом, так как минимизировали -F
else:
    print("Решение не найдено.")linprog выполняет минимизацию, мы берем отрицательные коэффициенты.linprog с методом highs.Этот код найдет оптимальное решение задачи линейного программирования.