求解涉及无序三角矩阵的系统

计算科学 线性代数
2021-12-24 08:54:02

给定一个系统Ax=b,我正在用 Java 编写一个采用三角矩阵的线性求解器A(有 500 到 3,000 行和列)和一个向量b并解决x. 但是,在A是无序的,我正在寻找解决此系统的最快方法,而无需预先安排此类行和列来进行反向替换。我已经尝试过第三方求解器,但它们对我的应用程序来说非常慢。对于这种特殊情况,你们知道的最快方法是什么?我认为LU分解不会有帮助。注:矩阵A稀疏!

1个回答

你这么说A是三角形的。这意味着您不必将其分解成任何东西。它已经在LU形成在哪里L=IU=A(反之亦然,取决于是否A是上三角形还是下三角形)。

或者,我想,如果有人没有丢掉卡片组的话。

我认为您最好的选择是有效地根据最低非零列的索引对行进行排序,从而转换为实际的上三角矩阵。排序后,从最后一行开始,然后反向替换到前一行。您可以通过在排序时进行一些替换来加快速度,但我认为您不会以这种方式看到更多的小收获。3000 个条目不需要很长时间就可以处理一个好的排序算法。