因此,我一直在努力寻找能够解决一组联立方程的代码,并且还能处理无限解的可能性,即奇异矩阵。从我在C中遇到的所有示例代码中的高斯消除,当在行减少的一个步骤中除以零时出现问题。当然必须有一些数字方法来解决这个问题。
答案 0 :(得分:2)
高斯消元[1]不适用于奇异矩阵。正如你在数字上注意到的那样,这通常会导致零或其他一些问题。如果您怀疑要对角化的矩阵可能是单数(或在数值上接近单数),您应该检查奇异值分解(SVD),它可以为您提供逆矩阵或接近的矩阵。如果你想了解如何以及为什么,一个很好的资源是Numerical Recipes [1]或GSL [2]。
[1] http://www.haoli.org/nr/bookcpdf.html(第2.1章)
[2] http://www.gnu.org/software/gsl/