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