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

2024-09-30 20:34:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个m×n的矩形矩阵a,其中n>;m。给定a的秩r<;=m,约化QR分解得到m×r维的矩阵Q和r×n维的r。Q列是A.R范围的正交基,R为上三角形,但呈阶梯状。R中带有轴的列对应于a中的独立列

当我从努比·利纳格(在中也有此函数的版本西皮·利纳格,这似乎是相同的),它返回矩阵Q的m x m维,R的m x n维,即使矩阵A的秩小于m。这似乎是“完全”QR分解,其中Q的列是Re^m的正交基。是否可以通过函数qr返回的R矩阵来识别A的独立列努比·利纳格;西皮·利纳格?在


Tags: 函数ltgt版本re矩阵qr矩形
1条回答
网友
1楼 · 发布于 2024-09-30 20:34:23

检查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))

另请参见: How to find degenerate rows/columns in a covariance matrix

相关问题 更多 >