Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- clc
- clear all
- close all
- A=[2,1;
- 3,3;
- 2,0;
- 1,0;
- 0,1];
- B=[ 10;
- 24;
- 8;
- 0;
- 0];
- Z=[-1;-1;-1;1;1];
- F= [ 300,200];
- %2x+1y<=10;
- %3x+3y<=24;
- %2x+0y<=8;
- %F= 300*x+200*y = MAX;
- m=length(B);
- k=1;
- for i=1:m-1
- AT(1,:)=A(i,:);
- BT(1,1)=B(i,:);
- for j=i+1:m
- AT(2,:)=A(j,:);
- BT(2,1)=B(j,:);
- R=AT\BT;
- if(sum(isnan(R))+sum(isinf(R)))==0
- T(k,:)=R';
- k=k+1;
- end
- T
- end
- end
- te=0;
- kk=0;
- f=0;
- n=1;
- for i=1:size(T,1)
- f=0;
- for j=1:5
- if Z(j)==-1
- if A(j,1)*T(i,1)+A(j,2)*T(i,2)<=B(j)
- f=f+1;
- end
- end
- if Z(j)==0
- if A(j,1)*T(i,1)+A(j,2)*T(i,2)==B(j)
- f=f+1;
- end
- end
- if Z(j)==1
- if A(j,1)*T(i,1)+A(j,2)*T(i,2)>=B(j)
- f=f+1;
- end
- end
- end
- if f==5
- T1(n,:)=T(i,:);
- n=n+1;
- end
- end
- T1
- hold on
- x=min(T(:,1))-1:0.01:max(T(:,2))+1;
- for i=1:f
- if A(i,2) ~= 0
- y=(B(i)-A(i,1)*x)/A(i,2);
- plot(x,y)
- else
- y=(B(i))/A(i,1)*ones(length(x),1);
- plot(y,x)
- end
- end
- temp1=convhull(T1(:,1),T1(:,2));
- fill(T1(temp1,1),T1(temp1,2),'r');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement