我试图找到稀疏矩阵(大小为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
有人能提出一个可能的解决方案吗?
任何帮助将不胜感激。
1条答案
按热度按时间ykejflvf1#
其原因可能是由于机床精度的原因,特征值很小,但不为零,所以会成为奇异矩阵。