疎行列がscipy.sparse.rand
で生成された場合、それは特異である可能性があります。実際、以下のコードではエラー"RuntimeError: superlu failure (singular matrix?) at line 100 in file scipy/sparse/linalg/dsolve/SuperLU/SRC/dsnode_bmod.c"
が発生します。Pythonで特異でない疎行列を生成
dim = 20000
ratio = 0.000133
A = scipy.sparse.rand(dim,dim,ratio)
inv_sparse = scipy.sparse.linalg.inv(A)
非単数スパース行列を生成する方法はありますか?
私が実際にやりたいことは、パフォーマンス(処理時間)をscipy.sparse.linalg.inv
とnp.linalg.inv
と比較することです。だから、私は単数ではないランダムな疎な行列を生成する必要があります。
コメントはこちらhttp://math.stackexchange.com/questions/449396/getting-non-singular-invertible-matrix-from-a-singular-oneあなたは行列式をチェックして反転...またはそれらを生成して例外を処理する...多分非特異的であることが知られている事前に事例を生成するかもしれない – tenCupMaximum
2つ以上の行または列がすべてゼロであるため特異であるか?密度が十分に低い場合は可能です。 – hpaulj
'sparse.eye(A.shape [0])'を追加してみてください。 – hpaulj