我试图找到一种解决线性不等式系统的方法,例如:
c>0
y+c<0
x+c>0
x+y+c<0
w+c>0
w+y+c>0
w+x+c>0
w+x+y+c<0
我没有找到快速计算方法来解决它们。我尝试过使用wolfram alpha。它适用于某些套装,但不适用于其他套装。此外,我也尝试使用matlab的求解函数来解决这些系统,但没有运气。对此事有任何帮助将非常感激。
答案 0 :(得分:1)
一般来说,对于确定不足的系统存在无限的解决方案。但是,您可以搜索适应问题的最小解决方案。在这种情况下,您可以按如下方式进行:
您首先将问题矢量化
x = [c y x w].';
M = [1 0 0 0
1 1 0 0
1 1 1 0
1 0 0 1
1 1 0 1
1 0 1 1
1 1 1 1];
y = [ 1 -1 1 -1 1 1 1 -1].';
您可以根据需要设置y
的值。他们只需要满足你的不平等条件(即y(1)>0
,y(2)<0
,......)。
现在解决欠定系统 Mx = y 。
使用M的伪逆可以找到该系统的最小解。
x = M.'(M*M.')^(-1)*y;
如果您根据自己的限制选择了y
,则此问题的解决方案也是您问题的解决方案。
如果您想要解决问题的最小解决方案,只需给y
一个epsilon房间(但是你应该计算它是分析性的。)