秩一的乘积更新为准牛顿/BFGS 的低秩更新

计算科学 线性代数 牛顿法 准牛顿
2021-12-21 08:21:32

我正在尝试提高以下迭代的速度来计算sk

Bk1=(I+sksk1T||sk1||2)...(I+s1s0T||s0||2)B01sk+1=Bk1rk+11+skTBk1rk+1||sk||2

如果我们计算Bk1明确地然后每个步骤大致是O(n4)计算Bk1. 相反,如果我们计算Bk1rk+1通过从右侧扩展产品,我们做到了k矩阵向量乘法是O(n3), 好了很多。

有没有办法找到sk以使用先前值的低秩更新的形式si?

1个回答

您可以使用Sherman-Morrison 公式和其他一些技巧来做到这一点,详细信息从 Kelley 的第 124 页开始,线性和非线性方程的迭代方法