maxframe.tensor.linalg.qr#
- maxframe.tensor.linalg.qr(a, method='tsqr')[源代码]#
计算矩阵的 QR 分解。
将矩阵 a 分解为 qr,其中 q 是正交矩阵,r 是上三角矩阵。
- 参数:
a (array_like, shape (M, N)) -- 待分解的矩阵。
method ({'tsqr', 'sfqr'}, optional) -- 计算 QR 分解的方法,默认为 tsqr。TSQR 参见:A. Benson, D. Gleich, 和 J. Demmel. Direct QR factorizations for tall-and-skinny matrices in MapReduce architectures. IEEE International Conference on Big Data, 2013. http://arxiv.org/abs/1301.1071。FSQR 是适用于宽而矮矩阵的 QR 分解:A = [A1, A2, A3, ...],A1 可分解为 A1 = Q1 * R1,对于 A = Q * R,Q = Q1,R = [R1, R2, R3, ...],其中 A2 = Q1 * R2,A3 = Q1 * R3,...
- 返回:
q (Tensor of float or complex, optional) -- 列向量正交的矩阵。当 mode = 'complete' 时,结果是根据 a 是否为实数/复数决定的正交/酉矩阵。此时行列式可能是 +/- 1。
r (Tensor of float or complex, optional) -- 上三角矩阵。
- 抛出:
LinAlgError -- 如果分解失败。
备注
有关 QR 分解的更多信息,请参见:http://en.wikipedia.org/wiki/QR_factorization
示例
>>> import maxframe.tensor as mt
>>> a = mt.random.randn(9, 6) >>> q, r = mt.linalg.qr(a) >>> mt.allclose(a, mt.dot(q, r)).execute() # a does equal qr True