Меня интересует решение линейной системы вида AX=B
, где A
и B
- разреженные матрицы.
Используя scipy.sparse
, я бы обычно go об этом с
X = scipy.sparse.linalg.spsolve(A, B)
Однако в моем приложении я хочу решить эту систему несколько раз, для разных B
.
Типичный подход предполагает хранение факторизации A
и использование связанный solve
метод. Например, использование scipy.sparse.linalg.splu
A_inv = splu(A)
for B_i in Bs:
X_i = A_inv.solve(B_i)
Но, похоже, ни scipy.sparse.linalg.splu
, ни scipy.sparse.linalg.factorize
не поддерживают RHS, которые являются разреженными матрицами.
Помимо преобразования B
в плотную матрицу, есть ли в python какие-либо другие разреженные пакеты линейной алгебры, которые позволяют эту функцию?