scipy.linalg.

logm#

scipy.linalg.logm(A, disp= object>)[источник]#

Вычисление логарифма матрицы.

Матричный логарифм является обратным к expm: expm(logm(A)) == A

Документация написана в предположении, что аргументы-массивы имеют указанные «основные» формы. Однако аргументы-массивы этой функции могут иметь дополнительные «пакетные» измерения, добавленные перед основной формой. В этом случае массив обрабатывается как пакет низкоразмерных срезов; см. Пакетные линейные операции подробности.

Параметры:
A(N, N) array_like

Матрица, логарифм которой вычисляется

dispbool, необязательно

Выдавать предупреждение, если ошибка в результате оценивается как большая, вместо возврата оцененной ошибки. (По умолчанию: True)

Устарело с версии 1.16.0: The disp аргумент устарел и будет удален в SciPy 1.18.0. Ранее возвращаемая оценка ошибки может быть вычислена как norm(expm(logm(A)) - A, 1) / norm(A, 1).

Возвращает:
logm(N, N) ndarray

Логарифм матрицы от A

ошибкаfloat

(если disp == False)

1-норма оценённой ошибки, ||err||_1 / ||A||_1

Ссылки

[1]

Awad H. Al-Mohy и Nicholas J. Higham (2012) "Улучшенные алгоритмы обратного масштабирования и возведения в квадрат для логарифма матрицы." SIAM Journal on Scientific Computing, 34 (4). C152-C169. ISSN 1095-7197

[2]

Николас Дж. Хайэм (2008) «Функции матриц: теория и вычисления» ISBN 978-0-898716-46-7

[3]

Николас Дж. Хайэм и Лицзин Лин (2011) «Алгоритм Шура-Паде для дробных степеней матрицы.» SIAM Journal on Matrix Analysis and Applications, 32 (3). стр. 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.]])