How to arrange the constraints shape to A matrix and b constants automatically ( Ax <= b)??

17 Ansichten (letzte 30 Tage)
Hi. I'm not good at MATLAB so please help me^^
I want to solve LP problem using "linprog",
so I have to make inequality constraints to A matrix and b constants. (Ax <= b)
And my inequality constraint's variables are mixed each other, so I have to arrange the constraints.
For example,
x1 + x2 <= x3 + x4 + 1 ; % constraint 1
X3 <= x1 + 10 ; % constraint 2
x2 + x4 <= 7 ; % constraint 3
In this situation, how can I make shape "Ax <= b" automatically??
It means I don't have to code one by one.
  1 Kommentar
Sanush
Sanush am 20 Okt. 2021
Rearrange your constraint
Px1 <= Qx2 + c
(P - Q - c)*(x1', x2', 1)' <= 0
% for x1 + x2 <= x3 + x4 + 1
P = x1 + x2
Q = x3 + x4 + 1
% As Ax <= b
A = P - Q
b = zeros(size(A,1),1)

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Matt J
Matt J am 2 Okt. 2021
Bearbeitet: Matt J am 2 Okt. 2021
Using the problem-based solvers, you do not have to build things in matrix form, e.g.,
x=optimvar('x',4,'LowerBound',0,'UpperBound',20);
con(1)=x(1) + x(2) <= x(3) + x(4) + 1 ; % constraint 1
con(2)=x(3) <= x(1) + 10 ; % constraint 2
con(3)=x(2) + x(4) <= 7 ; % constraint 3
sol=solve( optimproblem('Objective',-sum(x),'Constraints',con) )
Solving problem using linprog. Optimal solution found.
sol = struct with fields:
x: [4×1 double]
However, if you really must have the matrices, then you can use prob2matrices,
p=prob2matrices({x},'Constraints',con)
p = struct with fields:
intcon: [] lb: [4×1 double] ub: [4×1 double] Aineq: [3×4 double] bineq: [3×1 double] Aeq: [] beq: []

Weitere Antworten (1)

Chunru
Chunru am 2 Okt. 2021
% Let x = [x1; x2; x3; x4]
% x1 + x2 <= x3 + x4 + 1 ; % constraint 1
% => [1 1 -1 -1]*x <= 1
% X3 <= x1 + 10 ; % constraint 2
% => [-1 0 1 0]*x <= 10
% x2 + x4 <= 7 ; % constraint 3
% => [0 1 0 1]*x <=7
% Putting together
% [ 1 1 -1 -1] [ 1 ]
% |-1 0 1 0| * x <=|10 ]
% [ 0 1 0 1] [ 7 ]
%
% Therefore, you can specify A and b as follows
A = [1 1 -1 -1; -1 0 1 0; 0 1 0 1];
b = [1; 10; 7];
  2 Kommentare
연승 김
연승 김 am 2 Okt. 2021
I understant what you mean, but my queation is different.
The inequality constraints make automatically by iteration,
so I want to creat A matrix automatically...
Do you understant what I mean??
I'm sorry that confusing you...
Chunru
Chunru am 2 Okt. 2021
No. I don't understand you. Can you explain with examples?

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu General Physics finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by