Есть ли способ найти пустое пространство большой разреженной матрицы в Python? - PullRequest
0 голосов
/ 07 мая 2019

На самом деле, проблема, которую я имею, заключается в решении однородной системы линейных уравнений Ax = 0, где A является большим и разреженным, в то время как некоторые элементы вектора решения x ограничиваются конкретными значениями. Это эквивалентно нахождению нулевого пространства A, что, как я предполагаю, является более распространенной проблемой. Таким образом, чтобы достичь этого, я пытаюсь вычислить решение для Ax = 0, используя некоторые решатели, предоставляемые scipy.sparse, но это возвращает только тривиальный результат 0.

До сих пор я пытался решить эту проблему с помощью решателя наименьших квадратов из scipy.sparse, и до этого я изучал еще одну публикацию stackoverflow, в которой была проблема, аналогичная предыдущей, которую я описал выше, но этот человек работал с нормальным массивом NumPy. К сожалению, я не могу найти этот пост больше и не знаю, будет ли он работать с матрицами scipy.sparse в любом случае.

A = sparse.rand(10000, 5000, format="csc")
b = csr_matrix((10000, 1), dtype=np.float64).toarray()   
b = b.reshape((-1,))
x = linalg.lsqr(A, b)

Возвращает The exact solution is x = 0

...