编写线性规划的通用程序(标准形式的问题)写一个调用主程序,举例调用该通用程序;
时间: 2023-05-28 12:04:11 浏览: 51
以下是一个通用程序,用于求解标准形式的线性规划问题:
```python
import numpy as np
from scipy.optimize import linprog
def solve_lp(c, A, b):
"""
解决线性规划问题的通用函数
:param c: 目标函数系数,长度为n的一维数组
:param A: 系数矩阵,大小为m×n的二维数组
:param b: 约束条件,长度为m的一维数组
:return: 最优解x和最优目标函数值
"""
res = linprog(c, A_ub=A, b_ub=b)
x = res.x
obj = res.fun
return x, obj
```
在调用该通用程序时,需要提供目标函数系数c、系数矩阵A和约束条件b。下面是一个例子,用于最小化目标函数f(x) = -x1 - 2x2,满足以下约束条件:
```
x1 + x2 <= 5
2x1 + x2 >= 4
x1, x2 >= 0
```
代码如下:
```python
c = np.array([-1, -2])
A = np.array([[1, 1], [-2, -1]])
b = np.array([5, -4])
x, obj = solve_lp(c, A, b)
print("最优解:", x)
print("最优目标函数值:", obj)
```
输出结果为:
```
最优解: [2.5 2.5]
最优目标函数值: -5.0
```
这说明,在满足约束条件的情况下,目标函数f(x) = -x1 - 2x2 的最小值为-5,当x1 = 2.5, x2 = 2.5 时取得最小值。