numpy: инвертирование верхней треугольной матрицы

В numpy / scipy , каков канонический способ вычисления инверсии верхней треугольной матрицы?

Матрица хранится как массив 2D numpy с нулевыми субдиагональными элементами, и результат также должен быть сохранен как 2D-массив.

Лучшее, что я нашел до сих пор, это scipy.linalg.solve_triangular(A, np.identity(n)) . Это оно?

Фактически, это не обычная процедура инверсии. scipy.linalg.solve – это канонический способ решения матрично-векторного или матрично-матричного уравнения, и ему может быть дана явная информация о структуре матрицы, которую он будет использовать для выбора правильной подпрограммы (возможно, эквивалент BLAS3 dtrsm в этом случае).

LAPACK включает в себя doptri для этой цели, а scipy.linalg представляет собой открытый интерфейс лапка «C». Если обратная матрица действительно то, что вы хотите, тогда вы можете попробовать ее использовать.