在椭圆方程的有限差分离散化过程中,在二维域的所有边缘应用Neumann边界条件后,我会得到一个大稀疏矩阵。我需要找到它的转置空间以在两侧施加一致性条件。对于50X50和100X100的计算域,我能够利用Mathematica和MATLAB的NullSpace和null命令来处理可用的32GB RAM。但是如果计算域是500X250(一般情况下的数量级),存储大小为(500X250)X(500X250)的矩阵所需的RAM为125 GB,这是非常禁止的。我使用稀疏矩阵来存储这个超级矩阵,因此不再有空间限制。但我无法在其上使用“null”命令,因为该命令仅适用于完整矩阵。MATLAB建议在稀疏矩阵上使用"SVDS"命令。SVDS(A)只给出前6个奇异值和奇异向量。还有另一个命令SVDS(A,k,sigma),它会给出围绕标量奇异值"sigma"的"k"个奇异值和向量。当我将sigma=0时,以查找对应于“零”值的奇异向量,即空间基础向量时,会出现错误,指出"sigma"太接近矩阵的特征值。我的矩阵是奇异的,因此它的一个本征值为“零”。我应该如何避免这个错误?或者有没有更好的方法来处理手头的工具。我手边都有MATLAB和Mathematica。感谢您提前的帮助和建议。
最好的 Trinath
最好的 Trinath