logm#
- scipy.linalg.logm(A, disp=<object object>)[Quelle]#
Matrixlogarithmus berechnen.
Der Matrixlogarithmus ist die Umkehrung von expm: expm(logm(A)) == A
Die Dokumentation wurde unter der Annahme verfasst, dass die Array-Argumente bestimmte „Kern“-Formen haben. Array-Argumente dieser Funktion können jedoch zusätzliche „Batch“-Dimensionen vorangestellt haben. In diesem Fall wird das Array als Stapel von niedrigdimensionalen Schnitten behandelt; siehe Gestapelte lineare Operationen für Details.
- Parameter:
- A(N, N) array_like
Matrix, deren Logarithmus ausgewertet werden soll
- dispbool, optional
Warnung ausgeben, wenn der geschätzte Fehler im Ergebnis groß ist, anstatt den geschätzten Fehler zurückzugeben. (Standard: True)
Veraltet seit Version 1.16.0: Das Argument disp ist veraltet und wird in SciPy 1.18.0 entfernt. Die zuvor zurückgegebene Fehlerschätzung kann berechnet werden als
norm(expm(logm(A)) - A, 1) / norm(A, 1).
- Rückgabe:
- logm(N, N) ndarray
Matrixlogarithmus von A
- errestfloat
(wenn disp == False)
1-Norm des geschätzten Fehlers, ||err||_1 / ||A||_1
Referenzen
[1]Awad H. Al-Mohy und 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 und Lijing lin (2011) „A Schur-Pade Algorithm for Fractional Powers of a Matrix.“ SIAM Journal on Matrix Analysis and Applications, 32 (3). S. 1056-1078. ISSN 0895-4798
Beispiele
>>> 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.]])