我试图在Python中解决线性不等式系统。 我的线性系统看起来像这样:
我尝试使用 NumPy ,但linalg.solve(a,b)是为等式(=)设计的,我有不等式(>)。 我已经考虑过将变量添加到我的问题中,将不等式转换为等式:
x4和x5> 0
但是我不知道我将会遇到多少限制,而且我不知道linalg.solve是否只给变量带来严格的正值。
我也会研究 SciPy linprog。
我可以添加像x1 + x2 + x3这样的目标函数,这将是一个问题。 但是对于linprog,我只有< = 0的不等式,但我想排除值0.如果我可以有< 0
我希望我的问题很明确。 我已向谷歌寻求帮助,但一无所获。我想我错过了一些东西,因为我不能成为唯一有这个问题的人。 谢谢你的帮助。
答案 0 :(得分:0)
我建议引入一个公差来定义你可以接近零的距离,也许可以迭代公差值
即。重写
wb.sheets[ws].api.Visible = False
as
3 * x1 + 2 * x2 + 4 * x3 > 0
x1 + 4 * x2 + 7 * x3 > 0
现在,您可以使用spicy.linprog来解决这个问题。
其中3 * x1 + 2 * x2 + 4 * x3 >= t
x1 + 4 * x2 + 7 * x3 >= t
。
也许t > 0
可以接受为起点。
然后迭代t >= 0.01
在某些时候,您的解决方案可能会以低于您的精度要求开始变化。
希望这有帮助。