提问者:小点点

LDL型Cholesky分解的时间复杂度


Cholesky分解有两种不同的形式:

A = M * ctranspose (M)

和低密度脂蛋白形式

A = L * D * ctranspose (L)

其中ctranspose是复数转置。

我想知道每种形式的浮点运算次数。维基百科引用了一个使用Cholesky分解的纸上矩阵求逆

当有效实现时,LDL分解的复杂度与Cholesky分解相同。

文章指出Cholesky分解需要操作。但是,Wikipedia说浮点运算的数量是,我自己的计算也得到了第一种形式的浮点运算。它基本上可以归结为三角形数的和,即:

n*(n+1)*(n+2)/6.  

这就是我认为论文得到的地方。但是对于第一种形式,最内三和中的项是,它基本上是一个点积。这是2*N浮点运算的总和。因此浮动指针操作应为。如果你看LDL表,最里面的和项是。这是3*N浮点操作(2次乘法和1次加法)。因此浮点运算应为codeN3/2+O(N2)/code>。

换句话说,LDL表单需要多50%的浮点运算。我说的对吗?我认为这篇论文是错误的(尽管他们没有定义他们所说的操作的含义)。这很重要,因为我正在实现一种基于LDL形式的Choleksy分解的修改形式,我想估计算法的效率。

也许这个问题更适合https://math.stackexchange.com/


共1个答案

匿名用户

null

null