Solving a system of linear inequalities
6 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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 commentaire
Torsten
le 27 Juil 2016
Choose
x1 = x2 = x3 =...= x7 = 1
Then
Fx >= 1 (componentwise)
is satisfied.
Best wishes
Torsten.
Réponses (1)
Bjorn Gustavsson
le 27 Juil 2016
Modifié(e) : John D'Errico
le 27 Juil 2016
...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 commentaires
John D'Errico
le 27 Juil 2016
Modifié(e) : John D'Errico
le 27 Juil 2016
The last [0 1] in your assignment of D was given as [01], with no space. So a pretty minor typo.
Edward Szymkowiak
le 29 Mar 2018
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
Voir également
Catégories
En savoir plus sur Linear Algebra dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!