Pythonで行列と逆行列
-
12-09-2019 - |
質問
私がやっているプロジェクトで、私はNetworkXのadj_matrix()関数を使用して、隣接行列にNetworkXを使用して作成したグラフを分解する。しかし、私が遭遇した問題の一つは、私は行列の逆行列を見つけようとするとき、私は分解し、すべて単一のグラフは私に次のエラーを与えることです。
str: Traceback (most recent call last):
File "C:\eclipse\plugins\org.python.pydev.debug_1.4.7.2843\pysrc\pydevd_resolver.py", line 179, in _getPyDictionary
attr = getattr(var, n)
File "C:\Python26\lib\site-packages\numpy\core\defmatrix.py", line 519, in getI
return asmatrix(func(self))
File "C:\Python26\lib\site-packages\numpy\linalg\linalg.py", line 355, in inv
return wrap(solve(a, identity(a.shape[0], dtype=a.dtype)))
File "C:\Python26\lib\site-packages\numpy\linalg\linalg.py", line 254, in solve
raise LinAlgError, 'Singular matrix'
LinAlgError: Singular matrix
Iは、5つの異なるグラフから隣接行列を生成しようと、私は隣接行列の逆行列を見つけることを試みたときに、それらのすべては、同じエラーを生成しました。私が提起質問は行列にNetworkXグラフから行くにはどのような方法があるかどうかです。ここからアクションの私の最高のコースは何ですか?私は逆行列を行列に関連する他の質問があり実現が、鉱山はやや私はグラフの隣接行列を必要とするという事実によって制限されています。
他のヒント
私はnetworkxが隣接行列を生成します正確にどのように知りませんが、それはinversibleであるためには絶対に理由はありません。すぐに、ノードの数はもちろんの> = 2であるように(例えば、完全グラフは(すべてのノードがすべて相互に接続されている)、そのadacencyマトリックスはものの完全で考慮し、マトリックスは固有値として明らかに0有します。 ...)。又はNノードとないエッジを持つグラフは、その隣接行列は0 ...
あなたは何をやりたいのですか?私は、隣接行列の逆を考えるが、非常に多くの場合、xの一部(小)値のためI - x A
の逆なければならなかったことはありません。その逆である。
(I - x A) ^(-1) = I + xA + x^2 A2 + ......あなたは数の考えるためである
(| X |
あなたは、隣接行列正則あるグラフを生成するための方法を求めていますか?それはあなたが生成されたグラフが逆ではありません隣接行列を持っていることをnetworkx年代やnumpyの年代の過失ではありません。