我有一个(n x n)对称矩阵A和一个(n X 1)向量B,基本上,我只需要求解x的Ax =b,问题是A可能是大质量的。所以我在寻找在C++中解线性方程的最有效的算法。我查看了特征库。显然它有一种奇异值分解方法,但有人告诉我它很慢。求解x=inverse(A)*b似乎也是次优的。uBLAS更快吗?有没有更有效的方法?谢谢。
编辑:矩阵A是正定的,不是稀疏的。
我需要在一个列表中solve超过上千个矩阵。但是,我得到了错误Lapack routine dgesv: system is exactly singular。我的问题是,我的输入数据是非奇异矩阵,但是在对这些矩阵进行计算之后,其中一些得到了奇异。但是,一个包含数据子集的可重复的示例是不可能的,因为它会很长(我已经尝试过了)。这里是我问题的一个基本例子(A是经过一些计算后的矩阵,R是我需要做的下一个计算):
A=matrix(c(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0
numpy.linalg.linalg.LinAlgError: Matrix is singular.那我现在该怎么办?,第79行,在cph.fit(X,'T',event=‘label’)文件surv_model.py第165行,在fit step_size=step_size中)文件"/usr/local/lib/python2.7/dist-packages/lifelines
所以,我正在创建一个线性方程组计算器。我希望用户输入系统中的方程式数量和每个方程式中的变量数量,然后返回求解的变量。Notebook中运行这段代码时,我得到了这个错误: ---------------------------------------------------------------------------
C:\ProgramData\Anaconda3\lib\site-packages\numpy\linalg\linalg.py in _raise_linalg