logm#
- scipy.linalg.logm(A, disp=<object object>)[源]#
计算矩阵对数。
矩阵对数是 expm 的逆:expm(logm(A)) == A
本文档假定数组参数具有指定的“核心”形状。但是,此函数的数组参数可能在核心形状前附加额外的“批处理”维度。在这种情况下,数组被视为低维切片的批处理;详情请参阅批处理线性运算。
- 参数:
- A(N, N) array_like
要计算对数的矩阵
- disp布尔值,可选
如果结果中的误差估计较大,则发出警告而不是返回估计误差。(默认值:True)
自 1.16.0 版本起已弃用:disp 参数已弃用,并将在 SciPy 1.18.0 中移除。先前返回的误差估计可以计算为
norm(expm(logm(A)) - A, 1) / norm(A, 1)
。
- 返回:
- logm(N, N) ndarray
A 的矩阵对数
- errest浮点数
(如果 disp == False)
估计误差的 1-范数,||err||_1 / ||A||_1
参考文献
[1]Awad H. Al-Mohy and Nicholas J. Higham (2012) “Improved Inverse Scaling and Squaring Algorithms for the Matrix Logarithm.” SIAM Journal on Scientific Computing, 34 (4). C152-C169. ISSN 1095-7197
[2]Nicholas J. Higham (2008) “Functions of Matrices: Theory and Computation” ISBN 978-0-898716-46-7
[3]Nicholas J. Higham and Lijing lin (2011) “A Schur-Pade Algorithm for Fractional Powers of a Matrix.” SIAM Journal on Matrix Analysis and Applications, 32 (3). pp. 1056-1078. ISSN 0895-4798
示例
>>> import numpy as np >>> from scipy.linalg import logm, expm >>> a = np.array([[1.0, 3.0], [1.0, 4.0]]) >>> b = logm(a) >>> b array([[-1.02571087, 2.05142174], [ 0.68380725, 1.02571087]]) >>> expm(b) # Verify expm(logm(a)) returns a array([[ 1., 3.], [ 1., 4.]])