关于奇异值分解算法的最新技术水平是什么?


12

我正在研究仅标头的矩阵库,以在尽可能简单的程序包中提供一定程度的线性代数功能,并且我试图调查当前的最新技术水平:计算a的SVD复矩阵。

我正在进行两阶段分解,即对角化,然后进行奇异值计算。现在,我正在使用Householder方法进行双角化(我相信LAPACK也使用该方法),而且我认为这与当前的方法一样好(除非有人知道算法)为了它..)。 O(N2)

奇异值的计算在我的清单上是下一个,对于执行此操作的通用算法,我有些不了解。我在这里读到,研究正在朝着一种逆迭代方法的方向发展,该方法可以保证正交性复杂性。我很想听听有关该消息或其他进展。O(N)


是否有您的仅标头矩阵库(除.h外)的文档?另外,请添加标签“ svd”。
denis

Answers:


7

对于部分svds,“随机化算法”最近变得非常流行。可以在此处下载仅标头的实现:http : //code.google.com/p/redsvd/

有关当前方法的概述,请参见:http : //arxiv.org/abs/0909.4061

对于完整的svd,我不确定您是否可以做得比Householder更出色。


听起来很有趣,我得看一下这份调查报告,谢谢!
gct 2012年

OP对稠密矩阵的算法感兴趣。我认为随机算法在那种情况下根本无法竞争。
Federico Poloni 2015年

这篇文章表明,随机方法在稠密矩阵研究上效果
很好。facebook.com/ blog / 294071574113354 / fast

@dranxo该职位上根本没有准确性比较,并且计时结果看起来也不是很细致。同样,随机算法基于投影+小规模问题的精确解。这意味着OP无论如何都将需要一种“标准方法”来解决由此产生的小规模问题。
Federico Poloni

很公平。尽管我有些困惑,为什么我们应该认为这些方法仅适用于稀疏矩阵。恰好是Joel Tropp论文的摘要:“对于密集输入矩阵,与传统算法的O(mnk)相比,随机算法需要O(mn log(k))浮点运算(触发器)。” arxiv.org/pdf/0909.4061v2.pdf
dranxo

4

在这里读到,研究正在朝着一种逆迭代方法的方向发展,该方法可以保证正交性复杂性。我很想听听有关该消息或其他进展。O(N)

(我只想发表一些评论,因为我没有时间写出详细信息,但是对于评论框来说,它显得很大。)

我相信这将是Dhillon和Parlett 的MRRR(多个相对健壮的表示形式)算法。这源于费尔南多(Fernando)的先前工作,而后者又受到吉姆·威尔金森(Jim Wilkinson)在其关于特征值问题的巨著中提出的问题的启发。获得奇异向量的“逆迭代”部分植根于Fernando“扭曲因式分解”概念,该概念利用分解矩阵到和分解。ü d ùLDLUDU

另一方面,该算法的“奇异值”部分来自(偏移的)微商商差(dqd(s))算法,该算法Fernando,ParlettDemmel和Kahan先前工作的结晶(启发) (来自Heinz Rutishauser)。

如您所知,SVD方法通常在从双角矩阵获得奇异值之前先进行双角分解。不幸的是,我对当前最好的前端对角线分解方法没有太了解。最后我检查了一下,通常的方法是从带有列旋转的QR分解开始,然后对三角形因子适当地应用正交变换,最终获得双角分解。

我了解到我对细节一无所知;访问图书馆后,我将尝试进一步充实这个答案...


矩阵为双对角线形式,先做一列然后再对一行,向下重复对角线:使用给定或Householder将列对角线归零直到对角线,然后对超对角线的行进行同样的处理。
亚当W

忽略我以前的评论,我在想三对角线形式。抱歉。双对角线化在相似度上并不是微不足道的(它实际上会显示特征值),但是您的参考文献没有做相似度,而是在做其他事情。左右乘以不同的正交矩阵。是和双对角线,可以先使用QR来完成,但在注释中不那么容易描述。如果您能进一步充实答案,我可能会很感兴趣(但由于我的研究目前正朝这个方向发展,我也可以弄清楚答案)。Ù Ù = V V = UAVUU=IVV=I
亚当W

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.