让我们有一个线性系统Ax <= b。为了找到该多面体集合的顶点,我们需要选择m个线性独立的A列,并使用相应的变量求解系统。如何使用MATLAB生成全部 m个线性独立的列?然后,我将找到我拥有的多面体的所有顶点。
我能想到的是:生成所有(n,m)个子集组合。逐一检查等级。只要等级为= m,就应采用这些解决方案,因为它们具有完整的m等级。有没有更有效的方法?
答案 0 :(得分:1)
要查找线性独立的列,可以使用eig
或qr
。
对于eig
,特征值等于零将表示非独立的列。
对于qr
,R矩阵对角线上的零将指示非独立列。
例如:
mat2 =
1 1 1
1 1 1
0 0 2
qr
给出
R =
-1.414213562373095 -1.414213562373095 -1.414213562373095
0 0 0
0 0 2.000000000000000
和eig
给出
ans =
2
0
2