matrix_power¶
计算一个或一批方阵的 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))
Tensor(shape=[3, 3], dtype=float64, place=Place(cpu), stop_gradient=True,
[[6.  , 34. , 102.],
 [14. , 90. , 282.],
 [36. , 250., 804.]])
>>> print(paddle.linalg.matrix_power(x, 0))
Tensor(shape=[3, 3], dtype=float64, place=Place(cpu), stop_gradient=True,
[[1., 0., 0.],
 [0., 1., 0.],
 [0., 0., 1.]])
>>> print(paddle.linalg.matrix_power(x, -2))
Tensor(shape=[3, 3], dtype=float64, place=Place(cpu), stop_gradient=True,
[[ 12.91666667, -12.75000000,  2.83333333 ],
 [-7.66666667 ,  8.         , -1.83333333 ],
 [ 1.80555556 , -1.91666667 ,  0.44444444 ]])