软件包似乎更喜欢使用 Cholesky 分解的上三角部分,例如,参见cholupdate. 为什么是这样?用下三角 Cholesky 分解来表示协方差矩阵似乎更自然。例如,,其中是下三角 Cholesky 分解,是标准正态法线向量,将为您提供来自多元正态分布的样本。上三角部分有什么用?
为什么使用上三角 Cholesky?
机器算法验证
胆汁分解
2022-03-29 04:20:15
2个回答
传统上,在大多数“世界”(文献)中,Cholesky 因子是下三角形的约定是最常见的,即。
在 MATLAB 和 Octave 等(R's chol)中,Cholesky 因子被定义为上三角形,即。这个约定是 MATLAB 从 LINPACK 继承而来的,因为 MATLAB 最初是 LINPACK 和 EISPACK 的前端。
LINPACK 选择了当时(1970 年代)将 Cholesky 因子定义为上三角的不寻常惯例,这是因为它与 QR 分解的一致性,其中 R 是上三角(参见http://www.28 页的脚注。 netlib.org/utk/people/JackDongarra/PAPERS/Chapter2-LINPACK.pdf)。
LINPACK 的后继者 LAPACK 没有上三角与下三角的默认值,并让用户指定要使用的约定。
无论哪种方式都有效。请注意。重要的是以与惯例相称的方式使用 Cholesky 因子。
这真的是一个偏好问题。还将为您提供来自多元正态的相同样本。为什么?我会把这个留给你做练习。
对我来说,上 Cholesky 分解更自然因为我更习惯于“jik”算法,它的名称来自嵌套循环中索引的顺序。
请记住,该函数正在实现一个算法。因此,如果他们编写了 Cholesky 'jik' 算法,他们将首先返回上因子,因为该算法会返回上因子。如果明确要求较低的因素,那么他们将进行额外的计算(转置较高的因素)。
如果你喜欢更低的,那就去吧!