gpt4 book ai didi

matlab - 在 MATLAB 中查找大型稀疏矩阵的零空间

转载 作者:太空宇宙 更新时间:2023-11-03 20:07:05 25 4
gpt4 key购买 nike

在椭圆方程的有限差分离散化过程中和 Neumann BCs 在二维域各个方面的应用我有一个很大的稀疏矩阵。我需要找到它的转置的零空间来强制执行双方的一致性条件。对于 50X50 的计算域和 100X100 我可以使用 32 GB 的可用 RAM 来做到这一点Mathematica 和 MATLAB 分别具有 NullSpace 和 null 的可用全矩阵命令。

如果计算域为 500X250(即我通常拥有的顺序)存储所需的 RAM大小为 (500X250)X(500X250) 的矩阵为 125 GB,非常高。我使用稀疏矩阵来存储这个 super 矩阵,我不再有空间限制。但我不能对此使用“null”命令,因为它仅适用于完整矩阵。MATLAB 建议在稀疏矩阵上使用“SVDS”命令。SVDS(A) 仅给出前 6 个奇异值和奇异向量。有另一个命令 SVDS(A,k,sigma) 给出“k”奇异值和围绕“sigma”标量奇异值的向量。当我使用 sigma=0 以找到对应于“零”值的奇异向量时,这将是来自零空间基础的向量我得到一个错误,即“sigma”太接近矩阵的特征值。

我的矩阵是奇异的,因此它的特征值之一是“零”。我该如何避免这个错误?或者有没有更好的方法来使用手头的工具来做到这一点。我手头有 MATLAB 和 Mathematica。

在此先感谢您的帮助和建议。

最佳特里纳特

最佳答案

我想您可以尝试进行某种分解。

http://www.mathworks.co.uk/matlabcentral/fileexchange/11120-null-space-of-a-sparse-matrix

你试过吗?

或者可能是这个?

http://www.mathworks.co.uk/matlabcentral/newsreader/view_thread/249467

我相信它们应该有效,但我自己还没有尝试过。另一种方法是进行 QR 分解(如果 k 是矩阵的秩,这将为您提供前 k 个独立列的排列。然后从 k+1 到 n 的向量将为您的 null 提供基础空格)。

希望这对您有所帮助。

干杯,

GL

关于matlab - 在 MATLAB 中查找大型稀疏矩阵的零空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18486101/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com