torch.linalg.matrix_exp
- torch.linalg.matrix_exp(A) → Tensor
-
计算方形矩阵的矩阵指数。
令 $\mathbb{K}$ 为 $\mathbb{R}$ 或 $\mathbb{C}$,此函数计算矩阵 $A \in \mathbb{K}^{n \times n}$ 的矩阵指数,其定义为:
$\mathrm{matrix\_exp}(A) = \sum_{k=0}^\infty \frac{1}{k!}A^k \in \mathbb{K}^{n \times n}.$如果矩阵$A$的特征值是$\lambda_i \in \mathbb{C}$,那么矩阵$\mathrm{matrix\_exp}(A)$的特征值就是$e^{\lambda_i} \in \mathbb{C}$。
支持 bfloat16、float、double、cfloat 和 cdouble 等数据类型的输入。同时支持矩阵的批量处理,如果
A
是一组矩阵,则输出将具有相同的批量维度。- 参数
-
A (Tensor) – 形状为(*, n, n)的张量,其中*表示零个或多个批次维度。
示例:
>>> A = torch.empty(2, 2, 2) >>> A[0, :, :] = torch.eye(2, 2) >>> A[1, :, :] = 2 * torch.eye(2, 2) >>> A tensor([[[1., 0.], [0., 1.]], [[2., 0.], [0., 2.]]]) >>> torch.linalg.matrix_exp(A) tensor([[[2.7183, 0.0000], [0.0000, 2.7183]], [[7.3891, 0.0000], [0.0000, 7.3891]]]) >>> import math >>> A = torch.tensor([[0, math.pi/3], [-math.pi/3, 0]]) # A is skew-symmetric >>> torch.linalg.matrix_exp(A) # matrix_exp(A) = [[cos(pi/3), sin(pi/3)], [-sin(pi/3), cos(pi/3)]] tensor([[ 0.5000, 0.8660], [-0.8660, 0.5000]])