为矩阵的低秩更新廉价地重新计算特征值和特征向量

计算科学 线性代数 算法 特征值
2021-12-20 18:51:40

假设我有一个相关矩阵,并且我已经有了这个矩阵的特征值和特征向量。A

对于给定的向量,我想计算以下新矩阵的特征值和特征向量:v

A+vvT and AvvT

网站上的一些相关问题:

1个回答

不幸的是,我认为没有一个好的算法可以有效地做到这一点。

给定特征分解,人们很想通过引入向量投影到特征向量上,形成,然后攻击内部系统(一个对角矩阵排名第一的更新)有一些聪明的东西。Golub在这里概述了一种用于计算这种特征分解的算法,它只需要触发器。问题是,即使你拥有分解A=XDXTvu=XTvA+vvT=X(D+uuT)XTO(n2)D+uuT=YD2YT,您仍然面临撰写“最终”分解的问题,A+vvT=(XY)D2(XY)T,并明确地将“最终”特征向量制成表格XY将需要O(n3)翻牌。这破坏了做一些聪明的事情的复杂性,它渐进地不比仅仅积累更好A+vvT并使用通用/常用算法。

值得指出的是,如果你幸运的话,并且v已知是一个特征向量A, 的特征分解A+vvT很容易猜出来(所有的特征向量都是一样的,只有与v将改变)。通过一些努力,这个想法可以扩展到以下情况v是少数几个/的线性组合O(1)的原始特征向量。不幸的是,任意v可能是所有特征向量的组合A,这也破坏了一般情况下的这种攻击方式。

所以,我对这个问题持悲观态度(但很高兴被证明是错误的)。