当你使用 ZGELSS 来解决这个问题时,你正在使用截断奇异值分解来规范这个极端病态的问题。的最小二乘解决方案,而是试图平衡找到一个最小化反对最小化. Ax=b∥x∥∥Ax−b∥
请注意,传递给 ZGELSS 的参数 RCOND 可用于指定应包含哪些奇异值,哪些奇异值应从解决方案的计算中排除。任何小于 RCOND*S(1) 的奇异值(S(1) 是最大的奇异值)都将被忽略。矩阵或右侧中的系数的噪声水平一无所知,所以很难说您是否使用过适量的正则化。 Ab
您似乎对使用 ZGELSS 获得的正则化解决方案感到满意,因此似乎正则化受截断 SVD 方法影响(在最小化 \| 的最小二乘解决方案中找到最小 |在与大于 RCOND*S(1)) 的奇异值相关联的奇异向量所跨越的解空间上对您来说是令人满意的。 ∥x∥∥Ax−b∥
您的问题可以重新表述为“我怎样才能有效地获得这个大型、稀疏和非常病态的线性最小二乘问题的正则化最小二乘解?”
我的建议是使用迭代方法(例如 CGLS 或 LSQR)来最小化显式正则化最小二乘问题
min∥Ax−b∥2+α2∥x∥2
其中正则化参数被调整,以使阻尼最小二乘问题得到很好的调节,并且您对得到的正则化解决方案感到满意。 α