Solving a system of linear inequalities

4 次查看(过去 30 天)
Dear all, I need your help to solve a system of linear inequalities. The system is as follows
Fx = [x1+x2; x1+x2+x3+x6+x7; x2+x3+x4+x6; x3+x4+x5+x7; x4+x5; x2+x3+x6; x2+x4+x7]
and Fx >= 1
given that x1,x2,...x7 can either = 0 or 1 (whole number)
How to solve x1,x2 up to x7 in MATLAB?
Thanks in advance.
Best Regards
Cassandra
  1 个评论
Torsten
Torsten 2016-7-27
Choose
x1 = x2 = x3 =...= x7 = 1
Then
Fx >= 1 (componentwise)
is satisfied.
Best wishes
Torsten.

请先登录,再进行评论。

回答(1 个)

Bjorn Gustavsson
Bjorn Gustavsson 2016-7-27
编辑:John D'Errico 2016-7-27
...or if you want all points that satisfy the conditions you could do:
D = {[0 1],[0 1],[0 1],[0 1],[0 1],[0 1],[0 1]};
[X1,X2,X3,X4,X5,X6,X7] = ndgrid(D{:});
IOK = (X1+X2>=1 & X1+X2+X3+X6+X7>=1 & X2+X3+X4+X6>=1 & X3+X4+X5+X7>=1 & X4+X5>=1 & X2+X3+X6>=1& X2+X4+X7>=1);
HTH
  4 个评论
John D'Errico
John D'Errico 2016-7-27
编辑:John D'Errico 2016-7-27
The last [0 1] in your assignment of D was given as [01], with no space. So a pretty minor typo.
Edward Szymkowiak
Edward Szymkowiak 2018-3-29
I am having trouble decoding IOK. Here is a simpler version:
D = {[0 1 ],[0 1],[0 1 ] };
[X1,X2,X3] = ndgrid(D{:});
IOK = (X1+X2+X3>0 & -X1+X2-X3>0);
Every time I add another variable the dimension of IOK increases.
Is there some code to map IOK back into a readable form telling us what values of X(n) satisfy the system for n =1 to # of variables?
Thanks

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Linear Algebra 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by