Krylov子空间与Arnoldi迭代

看师兄的代码,对于为什么预设一个矩阵是三对角的,纠结了很久,拿出纸笔写了写发现简直就是易得。由于感觉证明太过巧妙,特此记录

引子:Gram Schmitt 正交化步骤

学过线性代数的应该都知道,如果我们有一组线性无关但是不正交的向量组,我们有一套标准的方法,通过重新线性组合将其正交化,称为Gram Schimitt正交化步骤。具体的说,假定我们手上的向量组是\(\{x_1, x_2, ..., x_n\}\),我们进行如下操作:

\[
\begin{aligned}
&v_1 = x_1 / \|x_1\| \\
&i = 2, ..., n \\
&\quad v_i = x_i \\
&\quad j = 1, ..., i-1 \\
&\quad \quad v_i = v_i - v_j v_j^T v_i \\
&\quad v_i = v_i / \|v_i\|
\end{aligned}
\]

这样我们就拿到了一个正交归一的向量组\(\{v_1, v_2, ..., v_n\}\)

继续阅读