Python中的矩阵和逆矩阵
对于我正在做的项目,我使用NetworkX adj_matrix()函数将我使用NetworkX创建的图形分解为邻接矩阵。然而,我遇到的一个问题是,当我试图找到矩阵的逆矩阵时,我分解的每个图都会给我以下错误Python中的矩阵和逆矩阵,python,matrix,networkx,matrix-inverse,Python,Matrix,Networkx,Matrix Inverse,对于我正在做的项目,我使用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 _getP
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
我试着从5个不同的图中生成邻接矩阵,当我试图找到邻接矩阵的逆矩阵时,它们都产生了相同的错误。我提出的问题是,是否有办法从NetworkX图形到矩阵。从这里开始,我最好的行动方案是什么?我意识到还有其他关于矩阵逆的问题,但我的问题有点受到限制,因为我需要图邻接矩阵 您是否需要一种方法来生成邻接矩阵非奇异的图?networkx或numpy的错误并不在于生成的图形具有没有逆的邻接矩阵。邻接矩阵是。在这个问题上有很多不同的观点;我不确定对应的图是否有任何简单的特征。一种实用的方法是捕获代码中的LinalError异常(尝试…除非…),并在邻接矩阵不可逆时发出警告(否则继续执行计算)。我不知道networkx是如何生成邻接矩阵的,但绝对没有理由让它可逆。例如,考虑完整的图(所有节点都相互连接),它的相容矩阵是满的,并且矩阵具有明显的0作为特征值(只要节点的数目是>2,当然…)。或有N个节点且无边的图,其邻接矩阵为0 你想做什么?我不必考虑邻接矩阵的倒数,但经常是对某些(小)x值的<代码> i -x a < /代码>的逆。它的反面是 (I - x A) ^(-1) = I + xA + x^2 A2 + ... (I-xA)^(-1)=I+xA+x^2a2+。。。
这对于x的某个值是可逆的(事实上,我认为只要| x |