Python эквивалент Matrix ::chol и Matrix ::solve в R?

#python #r #matrix #linear-algebra #sparse-matrix

#python #r #матрица #линейная алгебра #разреженная матрица

Вопрос:

В R я делаю следующее:

 L = ... # some sparse matrix L
chol_factor = Matrix::chol(L)

b = # some vector
z = Matrix::solve(chol_factor, b)
  

где solve будет разумно эффективно вычислять вещи с помощью коэффициента Холецкого. Я использовал scipy.sparse большую часть своего кода, но, похоже, не существует доступной реализации декомпозиции Холецкого или способа эффективного решения с использованием фактора. Есть ли эквивалентный способ сделать это в python?

Ответ №1:

Это может быть сделано с помощью разреженной LU-декомпозиции scipy.

 import numpy as np
from scipy.sparse import linalg as sla

L = # some sparse matrix 
lu = sla.splu(L)

b = # some vector
z = lu.solve(b)