Arnoldi 算法是通过 Gram-Schmidt 正交化过程计算 Krylov 子空间的一组基底的方法。
基本步骤[]
- 先将标准化,即
- 计算 A 范数
- 做投影
- 若,则计算结束,否则标准化
- 重新赋值,循环第二步,直到结束。
如果到第步时有,则算法将提前终止。此时必定可由线性表出。如果上述算法不提前终止,则向量(称为 Arnoldi 向量)构成的一组标准正交基。
性质[]
由 Arnoldi 过程可知, 因此
记
不难得到
这里
是
前
行前
列组成的矩阵,
如果算法在第
步终止, 即
,则有
即
是
的一个不变子空间。
算法优化[]
上述介绍的基于 Gram-Schmidt 正交化过程给出的算法不是很稳定,因此使用修正的 Gram-Schmidt 正交化过程(MGS)改进算法。这个算法是向后数值稳定的,必要时可以使用多次。
该算法仅需将原算法的第2、3步修改为
- 设定初值,计算 A 范数并不断更新迭代值,其中循环遍历。