矩形矩阵的 QR 分解,其中 n > m 在 scipy/numpy 中



我有一个m × n的矩形矩阵a,其中n> m。给定a的秩r <= m,通过约简QR分解得到m × r维的矩阵Q和r × n维的矩阵r。Q的列是a范围的标准正交基。R将是上三角形,但呈阶梯状。R中具有枢轴的列对应于a中的独立列

当我从numpy应用qr函数时。Linalg(在scipy中也有这个函数的一个版本。线性,这似乎是相同的),它返回矩阵Q具有m x m维,R具有m x n维,即使矩阵A的秩小于m。这似乎是"完整"QR分解,其中Q的列是Re^m的标准正交基。是否有可能通过函数qr在numpy. linear;scipy. linear中返回的这个R矩阵来识别A的独立列?

检查R的对角元素是否为非零:

import numpy as np
min_tol = 1e-9
A = np.array([[1,2,3],[4,3,2],[1,1,1]])
print("Matrix rank of: {}".format(np.linalg.matrix_rank(A)))
Q,R = np.linalg.qr(A)
indep = np.where(np.abs(R.diagonal()) >  min_tol)[0]
print(A[:, indep])
print("Independent columns are: {}".format(indep))

参见此处:如何在协方差矩阵中找到退化的行/列

相关内容

  • 没有找到相关文章

最新更新