Python Scipy.sparse RuntimeError:因子是完全奇异的

jjjwad0x  于 2023-04-12  发布在  Python
关注(0)|答案(1)|浏览(165)

我试图找到稀疏矩阵(大小为159990乘159990)的上下(LU)分解。

from scipy.sparse import csc_matrix, linalg as sla
interior_stiff = CSC_matrix(159990 by 159990)
LU = sla.splu(interior_stiff, options=dict(SymmetricMode=True))

该矩阵的性质包括,
1.对称的
1.对角元素是对应矩阵列中最大的。
1.非奇异矩阵
在运行代码时,我在Spyder GUI中遇到以下错误,

  File "<ipython-input-1-7243a2294501>", line 1, in <module>
    runfile('C:/temp/new_LU/Run_1_using_LU.py', wdir='C:/temp/new_LU')
  File "C:\ProgramData\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 866, in runfile
    execfile(filename, namespace)
  File "C:\ProgramData\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 102, in execfile
    exec(compile(f.read(), filename, 'exec'), namespace)
  File "C:/temp/new_LU/Run_1_using_LU.py", line 574, in <module>
    LU= sla.splu(interior_stiff,options=dict(SymmetricMode=True))
  File "C:\ProgramData\Anaconda3\lib\site-packages\scipy\sparse\linalg\dsolve\linsolve.py", line 261, in splu
    ilu=False, options=_options)
RuntimeError: Factor is exactly singular

有人能提出一个可能的解决方案吗?
任何帮助将不胜感激。

ykejflvf

ykejflvf1#

其原因可能是由于机床精度的原因,特征值很小,但不为零,所以会成为奇异矩阵。

相关问题