在MATLAB上查找矩阵的m个线性独立列

时间:2018-10-02 17:09:32

标签: matlab linear-programming polyhedra

让我们有一个线性系统Ax <= b。为了找到该多面体集合的顶点,我们需要选择m个线性独立的A列,并使用相应的变量求解系统。如何使用MATLAB生成全部 m个线性独立的列?然后,我将找到我拥有的多面体的所有顶点。

我能想到的是:生成所有(n,m)个子集组合。逐一检查等级。只要等级为= m,就应采用这些解决方案,因为它们具有完整的m等级。有没有更有效的方法?

1 个答案:

答案 0 :(得分:1)

要查找线性独立的列,可以使用eigqr

对于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