凸集:找到Ax = b的A和b矩阵点的凸集。
32视图(30天)
显示旧的评论
背景:
我想从点在地图上创建凸集。例如,如果我有一些点区分土地和水在一个港口和创建一个凸集。然后我会用凸集解决optimaztion问题。
具体的:
有一个通用的方法找到的a和b矩阵方程
一个
x
=
b
凸集的点在哪里?
说我有下面的凸集与分:
P =
0 0
1.0000 - -1.0000
1.5000 - -0.5000
1.5000 - 0.5000
1.0000 - 1.0000
0 0
我怎么能提取矩阵A和b,这样我可以让一个ineqalities opimization问题?
![](http://www.tatmou.com/matlabcentral/answers/uploaded_files/1159873/image.png)
我已经创建了一个凸集与= [1,0;1,0;1,1;1、1/2);和b = [300200300600] ';这给了我下面的凸集:
![](http://www.tatmou.com/matlabcentral/answers/uploaded_files/1159878/image.png)
但有可能解决它吗?
感激任何帮助!
谢谢
0评论
接受的答案
约翰D 'Errico
2022年10月17日
编辑:约翰D 'Errico
2022年10月17日
@Matt J
有一组工具来处理这些对象。
vert2lcon,他有实用程序,它可以将一组多面体的顶点为一组线性约束。
更多的答案(2)
马特·J
2023年5月14日18:58
如果你只需要解决二维情况下,那么您可以使用:
函数[A, b] = vert2ineq2D (A)
%发现2 d凸多边形的表达为一组线性不等式
%的顶点
%
% [A, b] = vert2ineq2D (A)
%
%:
%
%:Nx2矩阵谁行多边形顶点坐标。行必须
%必须命令,以便相邻的行对应于相邻的顶点
%(这将非常的三角形)。
%
%:
%
% [A, b]:资料片向量和Nx2矩阵,这样* x < = b当且仅当x是一个点
%在多边形
%
%
%的例子:检测一个点是否在三角形
%
% % % %数据
%顶点= [0 0;1 0;0 1];%三角形的顶点
% p1 = (5; .25);%一个点在三角形内部
% p2 =(5; 15年);%点外的三角形
%
% [A, b] = vert2ineq2D(顶点);
%
% > > (A * p1 < = b) %测试如果p1是三角形。
%
% ans =
%
% 1
%
% > > (A * p2 < = b) %测试如果p2三角形。
%
% ans =
%
% 0
重心=意味着(a)。';
R = [0 1;1 0];
= diff ([; (: 1)]) * R;
b =总和(a . * 2);
2 = (A *重心> = b);
(二)= b - b (ii);
(二世:)=——(二世:);