Matlab 如何绘制不等式

Matlab 如何绘制不等式,matlab,Matlab,我想绘制以下不等式: y

我想绘制以下不等式: y 假设第一个满意,我想画出两个都满意的区域。
p1和p2可以在[0,1]范围内变化


我将感谢任何帮助

试试这个:红色区域是两个不等式都满足的地方

[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')
[X,Y]=meshgrid(0:0.01:1,0:0.01:1);%在0和1之间创建点栅格
p1=0.1;p2=0.2;%选择一些参数
ineq1=Y替代解决方案(与Sam Robert的类似)将使用:

[X,Y]=meshgrid((0:999)/1000,(0:999)/1000);
p=rand(2,1);%#在这个例子中,p=[0.1,0.2]
ineq1=Y
这就是结果:

红色区域(如图例中所述)表示满足两个不等式的位置

[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')

请注意,第二个和第三个
contourf
调用只是为了举例说明,以显示哪里只满足一个不等式。

我认为这种方法很容易理解。制作曲面打印并将其旋转到俯视图

[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')
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
v=-5:0.1:5;
p1=0.1;
p2=0.2;
[x,y]=网格网格(v);

ineq1=Y您可能想解释
colors=…
行背后的“魔力”。对这些颜色的解释是,每个不等式实际上是一个0和1的二进制矩阵,表示满足和不满足的位置<代码>颜色
是它们的和,当两个不等式都满足时等于2,当其中只有一个不等式满足时等于1,当没有不等式满足时等于0<代码>散点
为每个值指定不同的颜色,
2
获取红色(在默认的colormap中,红色被指定为最大值)。此解决方案只适用于不等式。网格网格参数的含义是什么?如何使它适合我的不等式,不管它们是什么?@TomášZato也许你没有正确地使用我的解。meshgrid应该创建一个X和Y值的二维矩阵作为不等式的输入。是的,我确实没有正确使用你的解。有了它,我所能看到的只是一张空白的图表。当我将网格编辑为
meshgrid(-100:100),(-100:100))我可以看到和你一样好的图,但是。@TomášZato我想你得到的是一个空图,因为在我的例子中,
meshgrid
只产生正坐标,而你的不等式由负值满足。我只能推测你得到了“混乱”的标记,因为你的不平等没有得到正确的实现/规范化(你没有分享你的实现,所以我不能说它哪里出了问题)。什么是错误的?MATLAB表示:未定义的函数或变量“t”