本文简要介绍 python 语言中 scipy.linalg.expm
的用法。
用法:
scipy.linalg.expm(A)#
计算数组的矩阵指数。
- A: ndarray
最后两个维度的输入是正方形
(..., n, n)
。
- eA: ndarray
所得矩阵指数具有与
A
相同的形状
参数 ::
返回 ::
注意:
实现[1]中给出的算法,该算法本质上是一个 Pade 近似,其变量顺序是根据数组数据决定的。
对于大小为
n
的输入,在最坏情况下内存使用量的顺序为8*(n**2)
。如果输入数据不是实数和复数数据类型的单精度和双精度,则将其复制到新数组。对于
n >= 400
的情况,精确的 1-范数计算成本与 1-范数估计持平,从那时起,[2] 中给出的估计方案用于决定近似阶数。参考:
[1]Awad H. Al-Mohy 和 Nicholas J. Higham,(2009),“一种新的矩阵指数缩放和平方算法”,SIAM J. Matrix Anal。应用。 31(3):970-989,DOI:10.1137/09074721X
[2]Nicholas J. Higham 和 Francoise Tisseur (2000),“矩阵 1-范数估计的块算法,及其在 1-范数伪谱中的应用。” SIAM J. 矩阵肛门。应用。 21(4):1185-1201,DOI:10.1137/S0895479899356080
例子:
>>> import numpy as np >>> from scipy.linalg import expm, sinm, cosm
公式 exp(0) = 1 的矩阵版本:
>>> expm(np.zeros((3, 2, 2))) array([[[1., 0.], [0., 1.]], [[1., 0.], [0., 1.]], [[1., 0.], [0., 1.]]])
欧拉恒等式 (exp(i*theta) = cos(theta) + i*sin(theta)) 应用于矩阵:
>>> a = np.array([[1.0, 2.0], [-1.0, 3.0]]) >>> expm(1j*a) array([[ 0.42645930+1.89217551j, -2.13721484-0.97811252j], [ 1.06860742+0.48905626j, -1.71075555+0.91406299j]]) >>> cosm(a) + 1j*sinm(a) array([[ 0.42645930+1.89217551j, -2.13721484-0.97811252j], [ 1.06860742+0.48905626j, -1.71075555+0.91406299j]])
相关用法
- Python SciPy linalg.expm_multiply用法及代码示例
- Python SciPy linalg.expm_frechet用法及代码示例
- Python SciPy linalg.expm_cond用法及代码示例
- Python SciPy linalg.eigvalsh_tridiagonal用法及代码示例
- Python SciPy linalg.eig_banded用法及代码示例
- Python SciPy linalg.eigvalsh用法及代码示例
- Python SciPy linalg.eigh_tridiagonal用法及代码示例
- Python SciPy linalg.eig用法及代码示例
- Python SciPy linalg.eigh用法及代码示例
- Python SciPy linalg.eigs用法及代码示例
- Python SciPy linalg.eigvals用法及代码示例
- Python SciPy linalg.eigvals_banded用法及代码示例
- Python SciPy linalg.eigsh用法及代码示例
- Python SciPy linalg.cdf2rdf用法及代码示例
- Python SciPy linalg.LaplacianNd用法及代码示例
- Python SciPy linalg.solve_circulant用法及代码示例
- Python SciPy linalg.polar用法及代码示例
- Python SciPy linalg.clarkson_woodruff_transform用法及代码示例
- Python SciPy linalg.rsf2csf用法及代码示例
- Python SciPy linalg.hessenberg用法及代码示例
- Python SciPy linalg.tril用法及代码示例
- Python SciPy linalg.triu用法及代码示例
- Python SciPy linalg.svd用法及代码示例
- Python SciPy linalg.ishermitian用法及代码示例
- Python SciPy linalg.invhilbert用法及代码示例
注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.linalg.expm。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。