mindspore.ops.geqrf

mindspore.ops.geqrf(input)[源代码]

将矩阵分解为正交矩阵 Q 和上三角矩阵 R 的乘积。该过程称为QR分解: \(A = QR\)

QR 矩阵都存储在同一个输出Tensor y 中。 R 的元素存储在对角线及上方。隐式定义矩阵 Q 的基本反射器(或户主向量)存储在对角线下方。

此函数返回两个Tensor(y, tau)。

参数:
  • input (Tensor) - shape为 \((*, m, n)\) ,输入矩阵维度必须为大于等于两维,支持dtype为float32、float64、complex64、complex128。

返回:
  • y (Tensor) - shape为 \((*, m, n)\) ,与 input 具有相同的dtype。

  • tau (Tensor) - shape为 \((*, p)\) ,并且 \(p = min(m, n)\) ,与 input 具有相同的dtype。

异常:
  • TypeError - 如果 input 不是一个Tensor。

  • TypeError - 如果 input 的dtype不是float32、float64、complex64、complext128中的一个。

  • ValueError - 如果 input 的维度小于2。

支持平台:

Ascend GPU CPU

样例:

>>> input_x = Tensor(np.array([[-2.0, -1.0], [1.0, 2.0]]).astype(np.float32))
>>> y, tau = ops.geqrf(input_x)
>>> print(y)
[[ 2.236068   1.7888544]
 [-0.236068   1.3416407]]
>>> print(tau)
[1.8944271 0.       ]