Alex_McAvoy

想要成为渔夫的猎手

幂法

【概述】

幂法(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$,进行迭代

感谢您对我的支持,让我继续努力分享有用的技术与知识点!