I would like to plot the following inequalities: y < p2(1 - p1) and x < p1(1 - ( y / (1 -
An alternative solution (yet similar to Sam Robert's) would be using contourf:
[X, Y] = meshgrid((0:999) / 1000, (0:999) / 1000);
p = rand(2, 1); %# In this example p = [0.1, 0.2]
ineq1 = Y < p(2) * (1 - p(1)); %# First inequation
ineq2 = X < p(1) * (1 - (Y / (1 - p(1)))); %# Second inequation
both = ineq1 & ineq2; %# Intersection of both inequations
figure, hold on
c = 1:3; %# Contour levels
contourf(c(1) * ineq1, [c(1), c(1)], 'b') %# Fill area for first inequation
contourf(c(2) * ineq2, [c(2), c(2)], 'g') %# Fill area for second inequation
contourf(c(3) * both, [c(3), c(3)], 'r') %# Fill area for both inequations
legend('First', 'Second', 'Both')
set(gca, ... %# Fixing axes ticks
'XTickLabel', {t(get(gca, 'XTick'))}, 'YTickLabel', {t(get(gca, 'YTick'))})
and this is the result:
The red area (as mentioned in the legend) indicates where both inequations are satisfied.
Note that the second and third contourf
calls are just for illustration, to show where only one of the inequations is satisfied.
I think this method is easy to understand. Make a surface plot and rotate it to top view.
v = -5:0.1:5;
p1 = 0.1;
p2 = 0.2;
[x,y] = meshgrid(v);
ineq1 = y<p2*(1-p1);
ineq2 = x<p1*(1-(y./(1-p1)));
ineq = double(ineq1 & ineq2); % intersection of the inequalities
surf(x,y,ineq);
view(0,90) % rotate surface plot to top view
Try this: The red area is where both inequalities are satisfied.
[X,Y]=meshgrid(0:0.01:1,0:0.01:1); % Make a grid of points between 0 and 1
p1=0.1; p2=0.2; % Choose some parameters
ineq1 = Y<p2*(1-p1);
ineq2 = X<p1*(1-(Y./(1-p1)));
colors = zeros(size(X))+ineq1+ineq2;
scatter(X(:),Y(:),3,colors(:),'filled')