问题描述
我以这种形式获得了许多半空间不等式:ax+by+cz>=d
或 ax+by+cz<=d
。我想找到这些半空间的交集。
例如,假设我有 5 个半空格:2x+3y-4z<=1
、-x+2y+z<=5
、2x+5y-2z>=-4
、-x-y-z<=-1
、z>=0
。可以看到左图的图(是平面的形式),我要的是右图。
这是我当前的 Matlab 代码。矩阵P的每一行,代表a,b,c,d,
和符号函数。符号函数是 0
如果 ax+by+cz1 如果 ax+by+cz>=d。
clear;close all;clc;
P=[2 3 -4 1 0; -1 2 1 5 0; 2 5 -2 -4 1; -1 -1 -1 -1 0; 0 0 1 0 1];
n=size(P,1);
[x y] = meshgrid(-10:0.1:10);
for i=1:n
z=(1/P(i,3)).*(P(i,4)-P(i,1)*x-P(i,2)*y);
surf(x,y,z,'Linestyle','none');
hold on
end
输出如下:
我的主要问题是我只能绘制平面,而不能绘制半空间。如何将等式变为不等式并绘制许多半空间的交集?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)