matrix_power

paddle.linalg. matrix_power ( x, n, name=None ) [源代码]

计算一个或一批方阵的 n 次幂。

\(X\) 为一个或一批方阵,\(n\) 为幂次,则公式为:

\[Out = X ^ {n}\]

特别地,

  • 如果 n > 0 , 则返回计算 n 次幂后的一个或一批矩阵。

  • 如果 n = 0 , 则返回一个或一批单位矩阵。

  • 如果 n < 0 , 则返回每个矩阵的逆(若矩阵可逆)的 abs(n) 次幂。

参数

  • x (Tensor) : 输入的欲进行 n 次幂运算的一个或一批方阵, 类型为 Tensor。 x 的形状应为 [*, M, M], 其中 * 为零或更大的批次维度, 数据类型为float32, float64。

  • n (int) : 输入的幂次, 类型为 int。 它可以是任意整数。

  • name (str,可选) - 具体用法请参见 Name ,一般无需设置,默认值为None。

返回:

  • Tensor, 这个(或这批)矩阵 x 经过 n 次幂运算后的结果, 数据类型和输入 x 的一致。

代码示例

import paddle

x = paddle.to_tensor([[1, 2, 3],
                      [1, 4, 9],
                      [1, 8, 27]], dtype='float64')
print(paddle.linalg.matrix_power(x, 2))
# [[6.  , 34. , 102.],
#  [14. , 90. , 282.],
#  [36. , 250., 804.]]

print(paddle.linalg.matrix_power(x, 0))
# [[1., 0., 0.],
#  [0., 1., 0.],
#  [0., 0., 1.]]

print(paddle.linalg.matrix_power(x, -2))
# [[ 12.91666667, -12.75000000,  2.83333333 ],
#  [-7.66666667 ,  8.         , -1.83333333 ],
#  [ 1.80555556 , -1.91666667 ,  0.44444444 ]]