单纯形法求解线性问题python代码
时间: 2023-09-21 13:11:39 浏览: 46
以下是使用Python实现单纯形法求解线性问题的代码:
```
import numpy as np
def simplex_method(A, b, c):
m, n = A.shape
B = np.eye(m)
N = np.eye(n)
x = np.zeros(n)
z = 0
while True:
B_inv = np.linalg.inv(B)
N_B = np.dot(N, B_inv)
c_B = np.dot(c, B_inv)
delta = np.dot(c_B, A) - c
s = np.argmax(delta)
if delta[s] <= 0:
return x, z
d = np.dot(B_inv, A[:, s])
if np.all(d <= 0):
return "Unbounded"
theta = np.min(b / d[d > 0])
i = np.argmin(b / d)
x_B = np.dot(B_inv, b)
x[i] = theta
z += theta * delta[s]
B[:, i] = A[:, s]
N[:, s] = N_B[:, i]
b[i] = 0
b -= d * theta
```
如果您有任何问题,请随时问我。