Lapack 是否有一个例程,给定对称和, 计算对称矩阵(同时准确地保持对称性)?
有这个三角形的例程就足够了, 因为这里的第一步当然是计算分解(LU 或 LDL,根据是否也是对称的)。
动机:我认为这对这个问题很有用,特别是如果有人按照我的答案第二部分中的建议分解表达式。
Lapack 是否有一个例程,给定对称和, 计算对称矩阵(同时准确地保持对称性)?
有这个三角形的例程就足够了, 因为这里的第一步当然是计算分解(LU 或 LDL,根据是否也是对称的)。
动机:我认为这对这个问题很有用,特别是如果有人按照我的答案第二部分中的建议分解表达式。
不幸的是,我不认为有一个很好的方法可以做到这一点,至少没有一些努力。
在这种情况下是非奇异的,指出所需的矩阵可能很有用是对称 Schur 补码的倒数. 我发现 BLAS/LAPACK 对形成像这样的矩阵有更好的支持比一个喜欢,所以计算可能是有利可图的首先,然后应用保持对称性的反演程序?这个想法的效用取决于条件和.
如果你足够幸运除了对称之外是正定的,您可以使用 [potrf] 来 Cholesky 因子/覆盖. 然后. 使用 [trsm],您可以覆盖, 然后用 [syrk] 计算进入临时(或只是覆盖)。如果具有完整的列秩,则也是正定的,并且所需的输出可以使用 [potrf] 后跟 [potri] 来计算。的对称性,和在 API 级别明确强制执行,因为所有 [syrk]、[potrf] 和 [potri] 都只对单个三角形进行操作(假定对面三角形匹配)。
什么时候可逆但不确定,你可以遵循相同的基本思想,但计算由于旋转的考虑,更多地涉及。如果您也想查看该过程,只需发表评论,我会将其添加为编辑。