如果我们已经知道 A(t) 的 SVD,是否有办法在时间 t + delta(t) 时有效地更新时变矩阵 A(t) 的奇异值分解 (SVD)?假设两个时间步长之间的矩阵变化很小。
我正在寻找一种根据矩阵中的微小变化有效更新现有 SVD 的方法,而不是在每个时间步完全重新计算 SVD。
不。您可以将 SVD 视为沿数据方差最大的轴进行旋转。您可能认为 A 中的小增量只会轻微影响方差,并对分解产生轻微影响。但一些小的改变可能会产生一组完全不同的向量。它们仍然会跨越一个非常相似的空间,但向量会完全不同,这样“第五特征向量”就与 A(t) 处的特征向量非常不同。
您可能试图在实时控制过程中节省计算量。您是否考虑过保持特征向量不变,或者每第 100 个时间步更新它们,并简单地将数据 A(t+1) 的投影更新到先前的基组上?不确定这是否与您的应用程序相关。祝你好运!