我将有限差分法应用于 3 个耦合方程组。其中两个方程不耦合,但第三个方程与另外两个方程耦合。我注意到通过改变方程的顺序,比如说到系数矩阵变得对称。
这样做有什么好处吗?例如,就解决方案的稳定性或效率/速度而言。矩阵是高度稀疏的,如果这很重要,非零项沿着中心对角线。
我将有限差分法应用于 3 个耦合方程组。其中两个方程不耦合,但第三个方程与另外两个方程耦合。我注意到通过改变方程的顺序,比如说到系数矩阵变得对称。
这样做有什么好处吗?例如,就解决方案的稳定性或效率/速度而言。矩阵是高度稀疏的,如果这很重要,非零项沿着中心对角线。
绝对地!
首先,一些线性代数系统足够聪明,只存储矩阵的一半,这可以为你节省大量内存。但即使不是这种情况,数值线性代数中的各种算法也会利用对称性。
例如,给定一个对称矩阵,任何特征求解器都会立即知道所有特征值都是实值,并且求解方法可能会使用该事实。
很多人会想到的一个典型的东西就是方程组求解的 Krylov 子空间方法:如果你的问题是对称的,你知道你不需要像GMRES这样的非对称问题的方法,并且可以驻留在像MINRES这样的内存密集度较低的东西,或者 - 如果你的矩阵也是正定的 - CG。不过,Krylov 方法的收敛行为不受排列的影响,因此您甚至可以对未排列的系统使用对称方法。
另一个例子是矩阵的分解进入下三角部分和一个上三角部分. 如果是对称的,那么,并且您只需要存储一个因子(Cholesky 分解)。