numpy: инвертирование верхней треугольной матрицы - PullRequest
10 голосов
/ 18 мая 2011

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

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

edit Лучшее, что я нашел на данный момент, это scipy.linalg.solve_triangular(A, np.identity(n)). Это так?

1 Ответ

6 голосов
/ 18 мая 2011

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

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

...