Mars.tensor.linalg.qr#
- mars.tensor.linalg.qr(a, method='tsqr')[来源]#
计算矩阵的QR分解。
将矩阵 a 分解为 qr,其中 q 是正交归一的,r 是上三角矩阵。
- Parameters
a (array_like, shape (M, N)) – 要被分解的矩阵。
method ({'tsqr', 'sfqr'}, 可选) –
计算qr分解的方法,默认为tsqr
TSQR的介绍见:
A. Benson, D. Gleich, 和 J. Demmel. 针对瘦长矩阵的直接QR分解在 MapReduce架构中。 IEEE国际大数据会议,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, …
- Returns
q (浮点或复数的张量,可选) – 具有正交单位列的矩阵。当模式 = ‘complete’ 时,结果是一个正交/酉矩阵,具体取决于a是实数还是复数。在这种情况下,行列式可能是 +/- 1。
r (浮点或复数的张量,可选) – 上三角矩阵。
- Raises
LinAlgError – 如果因因式分解失败。
备注
有关 qr 分解的更多信息,请参见例如: http://en.wikipedia.org/wiki/QR_factorization
示例
>>> import mars.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