分析n维凸多面体

找到顶点或(在)平等形式的凸多面体R ^ n (n不是超级大)。同时,计算其十字路口和工会。

5.7 k下载

更新2021年3月21日

查看许可协议

这个提交的文件包含一组分析n维凸多面体。它适用于相当低维N——基本上足够低,顶点和方面列举使用MATLAB的convhulln()命令是容易掌握的。现在,它也仅限于有限的多面体(即。多面体)。有界凸多面体可以被表示为一个有限集的凸包顶点V(我:)或通过使用线性约束等式和不等式,
* x < = b,
Aeq * x =说真的

在这里,一个和Aeq麦根PxN矩阵而b和beq mx₁和Px1列向量,分别。(在)平等代表表达了多面体是两个区域的交集。一个地区是一个坚实的n维形状,所描述的不平等,而另一个是可能低维子空间,所描述的平等。上面的截图说明了这一点,显示3 d三角形可以表示成一个四面体的交集(固体形状R ^ 3)和一个平面。
包包含两种表示之间的转换的工具(见VERT2LCON和LCON2VERT)以及在十字路口和工会的多面体的形式(见intersectionHull和unionHull)。

包是灵感来自迈克尔Kleder vert2con和con2vert功能,这仅限于在R ^ N N维多面体拥有零卷。因此,例如,他们不能处理一个三角形漂浮在R ^ 3描绘在上面的截图。尽管一个三角形非零卷(即。、区)在R ^ 2 0 R ^ 3卷。扩展了这个包封面一般有界的多面体。注意:然而,当使用线性约束数据,b, Aeq,说真的代表一个给定的多面体,重要的是不平等* x < = b仍然是选择与一个地区的非零n维体积。零容积多面体捕获通过添加等式约束Aeq * x =说真的。


例子:

考虑定义的三维多面体x + y + z = 1, x > = 0, y > = 0, z > = 0。等价约束/平等可以从已知的顶点获得通过,


> > [A, b, Aeq beq] = vert2lcon(眼(3))

一个=

0.4082 -0.8165 0.4082
0.4082 0.4082 -0.8165
-0.8165 0.4082 0.4082


b =

0.4082
0.4082
0.4082


Aeq =

0.5774 0.5774 0.5774


说真的=

0.5774

相反,顶点可以做得到的,

> > V = lcon2vert (A, b, Aeq, beq)

V =

1.0000 0.0000 0.0000
0.0000 0.0000 1.0000
-0.0000 1.0000 0.0000

当一个多面体的内部点是已知的先验,一个可以用QLCON2VERT,更快的版本LCON2VERT利用已知点避开一些计算密集型步骤。

引用作为

马特·J (2023)。分析n维凸多面体(//www.tianjin-qmedu.com/matlabcentral/fileexchange/30892-analyze-n-dimensional-convex-polyhedra), MATLAB中央文件交换。检索

MATLAB版本兼容性
创建R2010b
兼容任何释放
平台的兼容性
窗户 macOS Linux
类别
找到更多的在边界地区帮助中心MATLAB的答案

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!
版本 发表 发布说明
1.9.0.2

描述性的文本编辑

1.9.0.1

编辑的描述性文本。

1.9.0.0

Bug修复——等式约束的情况下系统Aeq * x =说真的有一个独特的解决方案是处理不当

1.8.0.0

小的语法和拼写编辑描述页面。
*添加intersectionHull unionHull,工具计算多面体工会和十字路口
*添加separateBounds()和addBounds(),公用事业从形式转换为线性约束和所使用的优化工具箱。

1.7.0.0

添加截图

1.6.0.0

*改善lcon2vert错误检查
*一些改进/更快的搜索条件添加到lcon2vert。
*添加qlcon2vert,更快的版本的lcon2vert跳过某些检查和预先计算

1.5.0.0

如果lcon2vert未能找到一个初始内点的许多迭代alg它使用后,它将退出与V = []。

1.4.0.0

各种各样的bug修复和改进的鲁棒性。这些地址失败案例发现最近由用户。

1.3.0.0

* lcon2vert进一步的鲁棒性
*提高除草vert2lcon非唯一约束的输出
*输出,Aeq vert2lcon现在将有规范化的行。

1.2.0.0

改善CON2VERT子程序的可靠性,在性能方面和错误报告。

1.1.0.0

添加LCON2VERT VERT2CON的逆

1.0.0.0