I have a system of linear inequalities / equalities solved in Matlab, and I use linprog . Since some of the inequalities are strict, I use a very small costant eps to get a strict inclusion, as described here
The solve function below solves the system after providing a value for eps .
function pj=solve(eps) %Inequalities %x(1)-x(5)-x(9)-x(10)-x(11)-x(15)-x(16)-x(17)-x(19)<=0; %x(2)-x(6)-x(9)-x(12)-x(13)-x(15)-x(17)-x(18)-x(19)<=0; %x(3)-x(7)-x(10)-x(12)-x(14)-x(16)-x(17)-x(18)-x(19)<=0; %x(4)-x(8)-x(11)-x(13)-x(14)-x(15)-x(16)-x(18)-x(19)<=0; %x(1)+x(2)-x(5)-x(9)-x(10)-x(11)-x(15)-x(16)-x(17)-x(19)-... % x(6)-x(12)-x(13)-x(18)<=0; %x(1)+x(3)-x(5)-x(9)-x(10)-x(11)-x(15)-x(16)-x(17)-x(19)-... % x(7)-x(12)-x(14)-x(18)<=0; %x(1)+x(4)-x(5)-x(9)-x(10)-x(11)-x(15)-x(16)-x(17)-x(19)-... % x(8)-x(13)-x(14)-x(18)<=0; %x(2)+x(3)-x(6)-x(9)-x(12)-x(13)-x(15)-x(17)-x(18)-x(19)-... % x(7)-x(10)-x(14)-x(16)<=0; %x(2)+x(4)-x(6)-x(9)-x(12)-x(13)-x(15)-x(17)-x(18)-x(19)-... % x(8)-x(11)-x(14)-x(16)<=0; %x(3)+x(4)-x(7)-x(10)-x(12)-x(14)-x(16)-x(17)-x(18)-x(19)-... % x(8)-x(11)-x(13)-x(15)<=0; %x(1)+x(2)+x(3)-x(5)-x(9)-x(10)-x(11)-x(15)-x(16)-x(17)-x(19)-... % x(6)-x(12)-x(13)-x(18)-... % x(7)-x(14)<=0; %x(1)+x(2)+x(4)-x(5)-x(9)-x(10)-x(11)-x(15)-x(16)-x(17)-x(19)-... % x(6)-x(12)-x(13)-x(18)-... % x(8)-x(14)<=0; %x(1)+x(3)+x(4)-x(5)-x(9)-x(10)-x(11)-x(15)-x(16)-x(17)-x(19)-... % x(7)-x(12)-x(14)-x(18)-... % x(8)-x(13)<=0; %x(2)+x(3)+x(4)-x(6)-x(9)-x(12)-x(13)-x(15)-x(17)-x(18)-x(19)-... % x(7)-x(10)-x(14)-x(16)-... % x(8)-x(11)<=0; %Equalities %x(1)+x(2)+x(3)+x(4)=1; %x(5)+x(6)+x(7)+x(8)+x(9)+x(10)+x(11)+x(12)+x(13)+x(14)+x(15)+x(16)+x(17)+x(18)+x(19)=1; %I also want each component of x to be different from 1 and 0 (strictly included between 1 and 0 given the equalities constraints) %x(1)>0 ---> x(1)>=eps ---> -x(1)<=-eps %... %x(19)>0 %x(1)<1 ---> x(1)<=1-eps %... %x(19)<1 %52 inequalities (14+19+19) %2 equalities %19 unknowns A=[1 0 0 0 -1 0 0 0 -1 -1 -1 0 0 0 -1 -1 -1 0 -1;... 0 1 0 0 0 -1 0 0 -1 0 0 -1 -1 0 -1 0 -1 -1 -1;... 0 0 1 0 0 0 -1 0 0 -1 0 -1 0 -1 0 -1 -1 -1 -1;... 0 0 0 1 0 0 0 -1 0 0 -1 0 -1 -1 -1 -1 0 -1 -1;... 1 1 0 0 -1 -1 0 0 -1 -1 -1 -1 -1 0 -1 -1 -1 -1 -1;... 1 0 1 0 -1 0 -1 0 -1 -1 -1 -1 0 -1 -1 -1 -1 -1 -1;... 1 0 0 1 -1 0 0 -1 -1 -1 -1 0 -1 -1 -1 -1 -1 -1 -1;... 0 1 1 0 0 -1 -1 0 -1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1;... 0 1 0 1 0 -1 0 -1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 -1;... 0 0 1 1 0 0 -1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1;... 1 1 1 0 -1 -1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1;... 1 1 0 1 -1 -1 0 -1 -1 -1 -1 -1 -1 0 -1 -1 -1 -1 -1;... 1 0 1 1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1;... 0 1 1 1 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1;... -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;... 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;... 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;... 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;... 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0;... 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0;... 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0;... 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0;... 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0;... 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0;... 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0;... 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0;... 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0;... 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0;... 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0;... 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0;... 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0;... 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0;... 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1;... 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;... 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;... 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;... 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;... 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0;... 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0;... 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0;... 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0;... 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0;... 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0;... 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0;... 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0;... 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0;... 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0;... 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0;... 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0;... 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0;... 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0;... 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1]; %52x19 b=[zeros(1,14) -eps*ones(1,19) (1-eps)*ones(1,19)]; %1x52 Aeq=[1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;... 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]; %2x19 beq=[1 1]; %1x2 f=zeros(1,19); %1x19 x=linprog(f,A,b,Aeq,beq); if ~isempty(x) pj=x; else pj=NaN; end
What I believe (but I donβt know how to show it analytically) is that the inequalities / equalities that I introduced into the linprogr algorithm inside the solve function are such that the solution that Matlab produces satisfies another inequality like indicated below:
clear rng default %solve system p1=solve(unifrnd(0,0.05)); %solve system p2=solve(unifrnd(0,0.05)); %solve system p3=solve(unifrnd(0,0.05)); if ~isnan(p1) & ~isnan(p2) & ~isnan(p3) %#ok<AND2> %LHS lhs=(p1(2)+p1(3)+p1(4))*1*1+... p1(1)*(p2(1)+p2(4))*1+... p1(1)*p2(2)*(p3(2)+p3(3)+p3(4))+... p1(1)*p2(3)*(p3(1)+p3(2)+p3(3)); %RHS rhs=(1-(p1(5)+p1(9)+p1(10)+p1(11)+p1(15)+p1(16)+p1(17)+p1(19)))*... 1*... 1+... ... + (p1(5)+p1(9)+p1(10)+p1(11)+p1(15)+p1(16)+p1(17)+p1(19))*... (p2(5)+p2(8)+p2(11))*... 1+... ... + (p1(5)+p1(9)+p1(10)+p1(11)+p1(15)+p1(16)+p1(17)+p1(19))*... (p2(7)+p2(10)+p2(14)+p2(16))*... ((p3(5)+p3(9)+p3(10)+p3(17))+(p3(6)+p3(7)+p3(12)))+... ... + (p1(5)+p1(9)+p1(10)+p1(11)+p1(15)+p1(16)+p1(17)+p1(19))*... (p2(6)+p2(9)+p2(13)+p2(15))*... ((p3(8)+p3(13)+p3(14)+p3(18))+(p3(6)+p3(7)+p3(12)))+... ... + (p1(5)+p1(9)+p1(10)+p1(11)+p1(15)+p1(16)+p1(17)+p1(19))*... (p2(12)+p2(17)+p2(19))*... (p3(6)+p3(7)+p3(12)); check=(lhs>=rhs); %I expect check to be 1 else end
I believe that solutions p1,p2,p3 will deliver check=1 .
Question As mentioned above, I do not know how to show this analytically; is there any way to give a satisfactory quantitative argument? Or can you kill my faith and provide delivery solutions p1,p2,p3 delivery check=0 ?
logical-operators matlab linear-equation
user3285148
source share