【概述】
幂法(Power Method)主要用于近似计算矩阵的主特征值和主特征向量,即绝对值最大的特征值与其对应的特征向量,其是一种迭代方法,适用于大型稀疏矩阵
【原理】
向量序列的构造
对于 $n$ 阶矩阵 $A$,任取一初始的 $n$ 维向量 $\mathbf{x}_0$,构造一个 $n$ 维向量序列:
假设 $A$ 有 $n$ 个特征值 $\lambda_i,i=1,2,\cdots,n$,按绝对值大小排列:
对应的 $n$ 个线性无关的特征向量为:
这 $n$ 个特征向量构成 $n$ 维空间的一组基
那么可将初始向量 $\mathbf{x}_0$ 表示为 $\mathbf{u}_1,\mathbf{u}_2,\cdots,\mathbf{u}_n$ 的线性组合,即:
则有:
进一步,有:
单根情况
当矩阵 $A$ 的主特征值 $\lambda_1$ 是特征方程的单根时,由 $\mathbf{x}_k=a_1\lambda_1^k \mathbf{u}_1 + a_2\lambda_2^k \mathbf{u}_2 + \cdots + a_n\lambda_n^k \mathbf{u}_n$ 可得:
由于 $|\lambda_1|>|\lambda_j|,j=2,3,\cdots,n$,当 $k\rightarrow \infty$ 时 ,有:
其中,$\varepsilon_k$ 是当 $k\rightarrow \infty$ 时的无穷小量,即有:
那么,当 $k$ 充分大时,有:
于是主特征值可以表示为:
其中,$x_{k+1,j}$ 和 $x_{kj}$ 分别是 $\mathbf{x}_k$ 和 $\mathbf{x}_{k+1}$ 的第 $j$ 个分量,即此时主特征值可以看作是 $\mathbf{x}_{k+1}$ 和 $\mathbf{x}_k$ 的某个分量的比值
重根情况
当矩阵 $A$ 的主特征值是特征方程的重根,即
时,由 $\mathbf{x}_k=a_1\lambda_1^k \mathbf{u}_1 + a_2\lambda_2^k \mathbf{u}_2 + \cdots + a_n\lambda_n^k \mathbf{u}_n$ 可得:
由于 $|\lambda_1|=|\lambda_2|=\cdots=|\lambda_m|>|\lambda_{m+1}|\geq|\lambda_j|,j=m+2,m+3,\cdots,n$,当 $k\rightarrow \infty$ 时 ,有:
其中,$\varepsilon_k$ 是当 $k\rightarrow \infty$ 时的无穷小量,即有:
那么,当 $k$ 充分大时,有:
于是主特征值可以表示为:
其中,$x_{k+1,j}$ 和 $x_{kj}$ 分别是 $\mathbf{x}_k$ 和 $\mathbf{x}_{k+1}$ 的第 $j$ 个分量,即此时主特征值可以看作是 $\mathbf{x}_{k+1}$ 和 $\mathbf{x}_k$ 的某个分量的比值
规范化
综上所述,无论最大特征值是单根还是重根,幂法均有效
在以上定义中,随着不断的迭代,如果 $|\lambda_1|>1$,则 $\mathbf{x}_k$ 会无限增大,反之,如果 $|\lambda_1|<1$,则 $\mathbf{x}_k$ 会趋于 $0$,这样在计算机的运行中会出现造成溢出错误
因此通常会在每次迭代时进行规范化,将向量除以其无穷范数,即各向量分量的绝对值的最大值,因此可得到如下的迭代形式:
【算法流程】
输入:目标矩阵 $A$,初始精度 $\varepsilon$
输出:主特征值 $\lambda$,主特征向量 $\mathbf{v}$
算法流程:
Step 1:令 $k=1$,选择初始向量 $\mathbf{x}_0$
Step 2:迭代并规范化向量
Step 3:当 $\Vert \mathbf{x}_{k+1}-\mathbf{x}_k \Vert < \varepsilon$ 时,令 $\mathbf{v}=\mathbf{x}_k$,停止迭代
Step 4:令 $k=k+1$,进行迭代