我确信这个问题之前已经被问过,但经过数小时的搜索后,我无法找到明确的答案。
手头的问题是解决线性系统:有约束:
目前我应用 SVD 来获得一组跨越矩阵零空间的向量。用于零奇异值的阈值是 max(1e-12, 1e-15 x ),其中是最大奇异值。从这些中,我搜索一个基向量,其中的所有分量都具有相同的符号。这显然是次优的,因为将错过任何作为零空间向量线性组合的解决方案,但我不确定如何解决由此产生的不等式系统(可能是线性规划)。
然而,更重要的是处理舍入误差的问题。SVD 方法适用于小矩阵,但随着它们尺寸的增加(当前为 64x64),它似乎会导致向量不在零空间中,或者当我验证它们是解决方案时会出现巨大的舍入误差。下面我绘制了将候选解插入方程的结果的最大绝对值与矩阵的条件数和秩的关系。对于较低等级的 A,这个问题变得更糟。
的值用于计算矩阵和解的函数,这也可以通过寻找正零空间向量的昂贵替代方法来获得。这是可能的,因为 x 被归一化为可以通过蒙特卡罗模拟获得的概率向量。然后使用这些概率来计算单个值,该值是和的函数。绿色点与蒙特卡洛模拟一致,红色点不符合。
我确信对于这种大小的矩阵,必须有某种方法来解决这个问题。一般来说,我的矩阵大约是 90% 的零,所以稀疏矩阵方法可能是合适的,特别是当我增加矩阵的大小时,稀疏度会增加。
我想要一些关于如何处理这里提出的问题的建议,主要是准确计算零空间向量的问题,其次是解决不等式的线性系统以及稀疏方法是否有帮助。

