# 依赖: scipy import numpy as np from scipy.optimize import linprog # 最大化 3x + 5y;linprog 求最小值,因此目标系数取负 c = np.array([-3.0, -5.0]) A_ub = np.array([[1.0, 0.0], [0.0, 2.0], [3.0, 2.0]]) b_ub = np.array([4.0, 12.0, 18.0]) res = linprog(c, A_ub=A_ub, b_ub=b_ub, bounds=[(0, None), (0, None)], method='highs') assert res.success, res.message # 不可行/无界时一定要先看状态 print(f'最优值={-res.fun:.4f} 最优解={np.round(res.x, 4)}')