На самом деле, проблема, которую я имею, заключается в решении однородной системы линейных уравнений 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