我一直在尝试使用LU-Decomposition开发一个程序来解决方程矩阵A的系统Ax = b。但是,我意识到这种分解并不总是存在(一种方法是告诉我是否需要行交换操作,然后存在)。但是,我从许多来源看到,这是计算Ax = b的解决方案的一种很好的方法。
我的问题是:有多少人遇到没有LU分解的矩阵?如果有人遇到这样的矩阵,他应该如何处理呢?为了以防万一,他应该创建一个单独的方法,如高斯消除吗?
请给我一些见解。提前致谢。
注意:我正在尝试使用此信息来解决A ^ TAx = A ^ Tb,即使用最小二乘法找到数学模型。
取自维基百科最简洁的形式
任何方阵$ A $都允许LUP分解。如果$ A $是可逆的,那么当且仅当其所有主要主要未成年人都非零时,它才允许LU(或LDU)因子分解。如果$ A $是$ k $等级的奇异矩阵,那么如果第一个$ k $领先的主要未成年人非零,则它允许LU分解,尽管反之亦然。
我没有完全编写的实现,但这看起来很复杂。我认为,根据你的矩阵,存在更简单的数值方案,可以减少你的解决方案。
至于经常如何碰到这样的?好吧,没有人知道你做了什么,所以这是不可能回答的。如果遇到这种情况,请切换到另一个方案。
我在实践中经常使用的是Gauss-Seidel。实际上维基百科有一个完全书面的方案。
当且仅当矩阵的所有主要主要未成年人都是非零时,LU分解才存在。
根据您的实际问题,您正在解决:
A^TAx=A^T
A^TA
是一个方形对称矩阵。我们可以将矩阵对角化为:A = R^-1 D R
,你可以随时重新排列它以找到x
。您需要非零的特征值才能工作。
当(并且仅当)矩阵不具有零特征值时,(正方形)矩阵是可逆的。
我认为通过高斯消除反转它可能是最好的解决方案。