scipy.linalg.

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.]])