假设您有一个满秩NxM
矩阵A
,其中M>N
. C_i
如果我们用(用维度)表示列Nx1
,那么我们可以将矩阵写为
A = [C_1, C_2, ..., C_M]
如何获得原始矩阵的第一个线性独立列A
,以便可以构造一个新NxN
矩阵B
,该矩阵是具有非零行列式的可逆矩阵。
B = [C_i1, C_i2, ..., C_iN]
如何{i1, i2, ..., iN}
在 matlab 或 python numpy 中找到索引?这可以使用奇异值分解来完成吗?代码片段将非常受欢迎。
编辑:为了更具体,请考虑以下 python 代码
from numpy import *
from numpy.linalg.linalg import det
M = [[3, 0, 0, 0, 0],
[0, 0, 1, 0, 0],
[0, 0, 0, 0, 1],
[0, 2, 0, 0, 0]]
M = array(M)
I = [0,1,2,4]
assert(abs(det(M[:,I])) > 1e-8)
因此,给定一个矩阵 M,需要找到一组N
线性独立的列向量的索引。