给定矩阵 A,是否可以方便地获得矩阵等价中出现的可逆矩阵 P 和 Q,并用 numpy 或 scipy 满足 A=P[I_r,0;0,0]Q?
也许你可以做一个奇异值分解(SVD),然后将奇异值乘以一个酉矩阵。
请参阅 http://en.wikipedia.org/wiki/Singular_value_decomposition SVD 的定义
基本上你会得到一个酉矩阵,一个对角矩阵和另一个酉矩阵。对角矩阵具有等于秩 (A) 的非零元素数。
在python代码中,它是
P, S, Q = numpy.linalg.svd(A)
for i, row in enumerate(Q):
row *= S[i]
请参阅有关numpy.linalg.svd http://docs.scipy.org/doc/numpy/reference/generated/numpy.linalg.svd.html
P,Q然后成为你想要的。但请记住,这种分解没有独特的方式。