matrix_exp¶
计算方阵的矩阵指数。
         \[exp(A) = \sum_{n=0}^\infty A^n/n!\]
       
 
       输入的张量 x 应该是方阵,比如 (*, M, M) ,矩阵指数通过比例平方法的帕德近似计算而来。
[1] Nicholas J. Higham, The scaling and squaring method for the matrix exponential revisited.
参数¶
x (Tensor) - 输入张量,形状应该为
(*, M, M),*表示 0 或多个维度。数据类型为:float32,float64。
name (str,可选) - 具体用法请参见 Name,一般无需设置,默认值为 None。
返回¶
Tensor,与 x 的类型和形状相同。
代码示例¶
>>> import paddle
>>> mat_a = paddle.empty((2, 2, 2))
>>> mat_a[0, :, :] = paddle.eye(2, 2)
>>> mat_a[1, :, :] = 2 * paddle.eye(2, 2)
>>> print(mat_a)
Tensor(shape=[2, 2, 2], dtype=float32, place=Place(cpu), stop_gradient=True,
[[[1., 0.],
  [0., 1.]],
 [[2., 0.],
  [0., 2.]]])
>>> out = paddle.linalg.matrix_exp(mat_a)
>>> print(out)
Tensor(shape=[2, 2, 2], dtype=float32, place=Place(cpu), stop_gradient=True,
[[[2.71828198, 0.        ],
  [0.        , 2.71828198]],
 [[7.38905621, 0.        ],
  [0.        , 7.38905621]]])
>>> import math
>>> mat_a = paddle.to_tensor([[0, math.pi/3], [-math.pi/3, 0]])
>>> out = paddle.linalg.matrix_exp(mat_a)
>>> print(out)
Tensor(shape=[2, 2], dtype=float32, place=Place(cpu), stop_gradient=True,
[[ 0.49999994,  0.86602545],
 [-0.86602551,  0.50000000]])