切换科目
重点科目
主要科目
次要科目
科数网
首页
刷题
学习
VIP会员
赞助
组卷
集合
教材
VIP
写作
游客,
登录
注册
在线学习
数值分析
第二篇 线性方程组的数值解法与特征值估计
幂法
最后
更新:
2026-06-17 19:41
查看:
5
次
纠错
评论(0)
课件
开VIP
幂法
4.2 幂法 在许多实际问题中,矩阵按模最大的特征值起着重要的作用,因此在计算矩阵特征值时,往往只需要计算按模最大的特征值,而并不需要求矩阵的所有特征值.如大型结构的振动系统中,往往要计算振动系统的最低频率(或前几个最低频率)及相应的振型,相应的数学问题便为求解矩阵的按模最大或前几个按模最大特征值及相应的特征向量,或称为求主特征值问题.此外,正如在前面关于线性方程组迭代法的收敛性分析中所看到的,矩阵的谱半径即矩阵的按模最大的特征值是讨论矩阵迭代法是否收敛的重要指标.所以本节讨论求实方阵的按模最大特征值的常用迭代法:幂法. 4.2.1 幂法的基本思想 幂法是用于求大型稀疏矩阵 $A$ 按模最大特征值及其特征向量的一种迭代方法,其特点是公式简单,易于上机实现,且并行性好.其基本思想是:先任取非零初始向量 $x^{(0)}$ ,然后作迭代序列 $$ \begin{equation*} x^{(k+1)}=A x^{(k)}, \quad k=0,1, \cdots, \tag{4.3} \end{equation*} $$ 当 $k$ 增大时,$x^{(k)}$ 各分量将呈现规律性变化:按模最大的特征向量会愈来愈突出,从而可求出方阵 $A$ 的按模最大特征值及其特征向量.下面首先看一个计算实例. 例 4.2 设矩阵 $$ A=\left(\begin{array}{ll} 1 & 2 \\ 2 & 1 \end{array}\right), $$ 用特征方程容易求得 $A$ 的两个特征值为 $$ \lambda_1=-1, \quad \lambda_2=3 . $$ 下面用幂法来计算,取初始向量 $x^{(0)}=(1,0)^{\mathrm{T}}$ ,计算向量序列 $$ x^{(k+1)}=A x^{(k)}, \quad k=1,2, \cdots, $$ 具体结果如表 4.1 所示.   考察两个相邻向量对应分量之比 $$ \begin{array}{lllll} \frac{x_1^{(2)}}{x_1^{(1)}}=5, & \frac{x_1^{(3)}}{x_1^{(2)}}=2.6, & \frac{x_1^{(4)}}{x_1^{(3)}}=3.154, & \frac{x_1^{(5)}}{x_1^{(4)}}=2.951, & \frac{x_1^{(6)}}{x_1^{(5)}}=3.016, \\ \frac{x_2^{(2)}}{x_2^{(1)}}=2, & \frac{x_2^{(3)}}{x_2^{(3)}}=3.5, & \frac{x_2^{(4)}}{x_2^{(3)}}=2.994, & \frac{x_2^{(5)}}{x_2^{(4)}}=3.05, & \frac{x_2^{(6)}}{x_2^{(5)}}=2.983, \\ & \frac{x_2^{(7)}}{x_2^{(6)}}=3.005 . \end{array} $$ 由上面计算看出,两相邻向量对应分量之比值,随 $k$ 的增大而趋向于一个固定值 3 (图 4.2),而这个值恰好就是矩阵 $A$ 的按模最大的特征值.这一现象是否具有普遍性?下面进行具体分析.  4.2.2 幂法的计算公式 为方便起见,设矩阵 $A$ 的所有特征值可按模的大小排列如下: $$ \left|\lambda_1\right|>\left|\lambda_2\right| \geqslant \cdots \geqslant\left|\lambda_n\right|, $$ 相应的线性无关的特征向量分别为 $u_1, u_2, \cdots, u_n$ ,这些特征向量可作为 $n$ 维向量空间的一组基.从而对任意的非零初始向量 $x^{(0)}=\left(x_1^{(0)}, x_1^{(0)}, \cdots, x_n^{(0)}\right)^{\mathrm{T}} \neq 0$ ,首先将 $x^{(0)}$表示为 $$ x^{(0)}=a_1 u_1+a_2 u_2+\cdots+a_n u_n . $$ 作迭代序列 $$ x^{(k+1)}=A x^{(k)}, \quad k=0,1, \cdots, $$ 则 $$ \begin{gathered} x^{(1)}=A x^{(0)}=a_1 \lambda_1 u_1+a_2 \lambda_2 u_2+\cdots+a_n \lambda_n u_n, \\ \cdots \cdots, \\ x^{(k)}=A x^{(k-1)}=a_1 \lambda_1^k u_1+a_2 \lambda_2^k u_2+\cdots+a_n \lambda_n^k u_n . \end{gathered} $$ 对于上面的计算结果 $x^{(k)}$ ,下面分三种情况讨论。 情形 1 若 $\lambda_1$ 为实根,且 $\left|\lambda_1\right|>\left|\lambda_2\right|$ 。当 $a_1 \neq 0, k$ 充分大时,则有 $$ x^{(k)} \approx a_1 \lambda_1^k u_1, \quad x^{(k+1)} \approx a_1 \lambda_1^{k+1} u_1=\lambda_1 x^{(k)}, $$ 所以 $$ \begin{equation*} \lambda_1 \approx \frac{x_i^{(k+1)}}{x_i^{(k)}}, \quad u_1 \approx x^{(k)} . \tag{4.4} \end{equation*} $$ 情形 2 若 $\lambda_1$ 为实根,且 $\lambda_1=-\lambda_2,\left|\lambda_2\right|>\left|\lambda_3\right|$ .当 $a_1, a_2$ 不为 $0, k$ 充分大时,则有 $$ \begin{cases}\lambda_1 \approx\left(\frac{x_i^{(k+2)}}{x_i^{(k)}}\right)^{1 / 2}, & u_1 \approx x^{(k+1)}+\lambda_1 x^{(k)}, \tag{4.5}\\ \lambda_2 \approx-\left(\frac{x_i^{(k+2)}}{x_i^{(k)}}\right)^{1 / 2}, & u_2 \approx x^{(k+1)}+\lambda_2 x^{(k)} .\end{cases} $$ 情形 3 若 $\lambda_1=u+\mathrm{i} v, \lambda_2=u-\mathrm{i} v,\left|\lambda_2\right|>\left|\lambda_3\right|$ 。当 $k$ 充分大时,则令 $$ -\left(\lambda_1+\lambda_2\right)=p, \quad \lambda_1 \lambda_2=q, $$ 有 $$ \begin{equation*} x^{(k+2)}+p x^{(k+1)}+q x^{(k)} \approx 0 \tag{4.6} \end{equation*} $$ 式(4.6)是以 $p, q$ 为变量,以 $x^{(k+2)}, x^{(k+1)}, x^{(k)}$ 的几个分量为系数的矛盾方程组。可用最小二乘法解矛盾方程组(4.6),求出 $p, q$ ,然后再解一元二次方程 $$ x^2+p x+q=0 $$ 可得两个根,它们便是 $\lambda_1, \lambda_2$ 的近似值.进一步,可得特征向量的计算 $$ \left\{\begin{array}{l} u_1 \approx x^{(k+1)}-\lambda_2 x^{(k)}, \tag{4.7}\\ u_2 \approx x^{(k+1)}-\lambda_1 x^{(k)} . \end{array}\right. $$ 在实际应用幂法时,可根据迭代向量各分量的变化情况来判定属于哪种情况。若迭代向量各分量单调变化,且有关系式 $x^{(k+1)} \approx c x^{(k)}$ ,则属于第 1 种情况;若迭代向量分量变化不单调,但有关系式 $x^{(k+2)} \approx c x^{(k)}$ ,则属于第 2 种情况;若迭代向量各分量变化不规则,但有关系式 $x^{(k+2)}+p x^{(k+1)}+q x^{(k)} \approx 0$ ,则属于第 3 种情况. 4.2.3 幂法的实际计算公式 当 $k \rightarrow \infty$ 时,若 $\left|\lambda_1\right|>1$ ,则 $x$ 的分量会趋于无穷大;若 $\left|\lambda_1\right|<1$ ,则 $x$ 的分量会趋于零,导致直接采用幂法计算特征值会使计算机出现上溢或下溢现象。为了防止溢出,可采用如下规范化的幂法迭代公式: $$ \begin{cases}x_i^k=\sum_{j=1}^n a_{i j} y_j^{(k-1)}, & i=1,2, \cdots, n, \tag{4.8}\\ y_i^{(k)}=x_i^{(k)} / m_k, & \\ m_k=\left\|x^{(k)}\right\|_{\infty}=\max _i\left|x_i^{(k)}\right|, & k=1,2, \cdots,\end{cases} $$ 其中 $y_0=(1,1, \cdots, 1)^{\mathrm{T}}$ .从而当 $k \rightarrow \infty$ 时, $$ y^{(k)} \rightarrow \frac{u_1}{\left\|u_1\right\|_{\infty}} . $$ 这说明归一化向量序列 $\left\{y^{(k)}\right\}$ 收敛于按模最大的特征值所对应的特征向量.因此,当 $k$ 充分大时,$\left\{y^{(k)}\right\}$ 就是特征向量 $u_1$ 的近似值. 例 4.3 用幂法求矩阵 $$ A=\left(\begin{array}{ccc} 2 & -1 & 0 \\ -1 & 2 & -1 \\ 0 & -1 & 2 \end{array}\right) $$ 的按模最大特征值和相应的特征向量 $\left(\varepsilon=10^{-4}\right)$ . 解 取 $x_0=(1,1,1)^{\mathrm{T}}$ ,用幂法迭代公式 $$ \left\{\begin{array}{l} m_k=\max _i\left|x_i^{(k)}\right|=\left\|x^{(k)}\right\|, \\ y_i^{(k)}=x_i^{(k)} / m_k, \quad k=1,2, \cdots, \\ x^{(k+1)}=A y^{(k)} . \end{array}\right. $$ 计算结果如表 4.2 所示.  所以 $\lambda_1 \approx m_6 \approx 3.4146, u_1 \approx y^{(6)}=(0.7071,-1,0.7071)^{\mathrm{T}}$ .事实上,矩阵 $A$ 的最大特征值为 $\lambda_1=2+\sqrt{2}$ ,其对应的特征向量 $u_1=\left(\frac{\sqrt{2}}{2},-1, \frac{\sqrt{2}}{2}\right)^{\mathrm{T}}$ ,所以计算结果还是比较好的. 4.2.4 幂法的加速 1.原点平移法 设 $\lambda_i(i=1,2, \cdots, n)$ 为矩阵 $A \in \mathbf{R}^{n \times n}$ 的 $n$ 个特征值,且当 $$ \left|\lambda_1\right|>\left|\lambda_2\right| \geqslant \cdots \geqslant\left|\lambda_n\right| $$ 时,幂法的收敛速度由 $r=\frac{\left|\lambda_2\right|}{\left|\lambda_1\right|}$ 决定,若 $r \ll 1$ ,则收敛速度较快.但是当 $\lambda_1 \approx \lambda_2$ 时,幂法的收敛速度比较慢.为提高收敛速度或改善 $r \approx 1$ 的状况,可以采取原点平移的方法. 由矩阵论知,若 $\lambda$ 为 $A$ 的特征值,则 $\lambda-a$ 为 $A-a I$ 的特征值,且特征向量相同.若 $\lambda_1-a$ 为 $A-a I$ 的最大模特征值,且 $$ \begin{equation*} \left|\frac{\lambda_k-a}{\lambda_1-a}\right|<\left|\frac{\lambda_2}{\lambda_1}\right|, \quad k=2,3, \cdots, \tag{4.9} \end{equation*} $$ 则对 $A-a I$ 计算 $\lambda_1-a$ 及对应的特征向量比对 $A$ 计算收敛得快,此即为原点平移法. 计算 $\lambda_1-a$ 及特征向量的迭代公式 $$ \left\{\begin{array}{l} y^{(k)}=\frac{x^{(k)}}{\max \left(x^{(k)}\right)} \tag{4.10}\\ x^{(k+1)}=(A-a I) y^{(k)} \end{array}\right. $$ 特征向量:$y^{(k)} \rightarrow \frac{u_1}{\max \left(u_1\right)}$ ,这里的 $u_1$ 是最大特征值对应的特征向量. $\max \left(x^{(k)}\right) \rightarrow \lambda_1-a \Rightarrow a+\max \left(x^{(k)}\right) \rightarrow \lambda_1$ . 原点平移法是一个矩阵变换过程,变换简单且不破坏原矩阵的稀疏性。但由于预先不知道特征值的分布,所以就一般矩阵而言,选取满足式(4.9)的 $a$ 较为困难,应用起来也有一定困难,通常对特征值的分布有一个大略估计,设定一个参数 $\lambda_0$ 进行试算,当所取 $\lambda_0$ 对迭代有明显加速效应以后再进行确定计算. 例4.4 计算矩阵 $A$ 按模取最大的特征值。 $$ A=\left(\begin{array}{ccc} 1.0 & 1.0 & 0.5 \\ 1.0 & 1.0 & 0.25 \\ 0.5 & 0.25 & 2.0 \end{array}\right) . $$ 解 先用规范化的幂法计算,得表 4.3.  按模取最大的特征值 $\lambda_1$ 及特征向量 $u_1$ 为(8位有效数字) $$ \lambda_1=2.5362258, \quad u_1=(0.74822116,0.64966116,1)^{\mathrm{T}} . $$ 用规范化的幂法进行计算,相应近似值为 $$ \lambda_1 \approx \max \left(x^{(20)}\right)=2.5365323, \quad u_1 \approx y^{(20)}=(0.7482,0.6497,1)^{\mathrm{T}} . $$ 如果采用原点平移的加速法求解,取 $\lambda_0=0.75$ ,矩阵 $B=A-\lambda_0 I$ ,即 $$ B=\left(\begin{array}{ccc} 0.25 & 1 & 0.5 \\ 1 & 0.25 & 0.25 \\ 0.5 & 0.25 & 1.25 \end{array}\right) . $$ 对矩阵 $B$ 应用规范化幂法公式结果见表 4.4.  从表 4.3 和表 4.4 可以看出 $$ \lambda_1=\tilde{\lambda}_1+\lambda_0 \approx 2.5365914 . $$ 此结果与未加速的规范化幂法公式计算结果相比,收敛速度要快得多. 在已经求出主特征值 $\lambda_1$ 及特征向量 $u_1$ 以后,可将原矩阵进行修改,使修改后的矩阵按模最大特征值是原矩阵的按模次大特征值,再用幂法去求按模次大特征值及特征向量,此方法称为降阶过程.有时候可以利用该方法来逐个计算其他的特征值和特征向量. 2.特征值的艾特肯加速法 基本思想:对于一个给定的矩阵,若幂法是收敛的,则经过若干步迭代后,有近似关系 $$ \begin{equation*} \frac{\max \left(x^{(k+2)}\right)-\lambda_1}{\max \left(x^{(k+1)}\right)-\lambda_1} \approx \frac{\max \left(x^{(k+1)}\right)-\lambda_1}{\max \left(x^{(k)}\right)-\lambda_1}\left(\approx \frac{\lambda_2}{\lambda_1}\right) . \tag{4.11} \end{equation*} $$ 从上式解出 $\lambda_1$ ,有 $$ \begin{align*} \lambda_1 & \approx \frac{\max \left(x^{(k+2)}\right)-\max \left(x^{(k)}\right)-\left[\max \left(x^{(k+1)}\right)\right]^2}{\max \left(x^{(k+2)}\right)-2 \max \left(x^{(k+1)}\right)+\max \left(x^{(k)}\right)} \\ & =\max \left(x^{(k+2)}\right)-\frac{\left[\max \left(x^{(k+2)}\right)-\max \left(x^{(k+1)}\right)\right]^2}{\max \left(x^{(k+2)}\right)-2 \max \left(x^{(k+1)}\right)+\max \left(x^{(k)}\right)} \triangleq \lambda_1^{(k+1)} . \tag{4.12} \end{align*} $$ 使用 $\lambda_1^{(k+1)}$ 作为 $\lambda_1$ 的近似值的算法称为艾特肯(Aitken)加速法,如下所示.  例 4.5 用幂法求方阵 $A$ 的最大模特征值,并用艾特肯加速法来进行加速. $$ A=\left(\begin{array}{ccc} -4 & 14 & 0 \\ -5 & 13 & 0 \\ -1 & 0 & 2 \end{array}\right) . $$ 解 编程计算结果如表 4.5.  3.对称矩阵的瑞利商加速法 定义 4.2 设 $A$ 对称,$x \neq 0$ ,则称数 $R(x)=\frac{x^{\mathrm{T}} A x}{x^{\mathrm{T}} x}$ 为 $x$ 关于 $A$ 的瑞利(Rayleigh)商. 瑞利商加速法的基本思想:若矩阵 $A$ 为对称矩阵,则 $A$ 的所有特征值 $\lambda_1, \lambda_2, \cdots, \lambda_n$均为实数,且存在标准正交的特征向量 $u_1, u_2, \cdots, u_n$ . 为简单起见,不妨设 $\left|\lambda_1\right|>\left|\lambda_2\right| \geqslant\left|\lambda_3\right| \geqslant \cdots \geqslant\left|\lambda_n\right|$ 。设 $x^{(0)}=\sum_{i=1}^n a_i u_i, a_1 \neq 0$ ,类似前面的幂法进行计算,有 $x^{(k)}=A x^{(k-1)}=\cdots=A^k x^{(0)}=\sum_{i=1}^n \lambda_i^k a_i u_i$ ,从而有 $$ \begin{equation*} R\left(x^{(k)}\right)-\lambda_1 \approx O\left(\frac{\lambda_2}{\lambda_1}\right)^{2 k} \tag{4.13} \end{equation*} $$ 实际上,根据 4.1 节的计算,我们有 $$ x^{(k)}=A^k x^{(0)}=\lambda_1^k\left(a_1 u_1+a_2\left(\frac{\lambda_2}{\lambda_1}\right)^k u_2+\cdots+a_n\left(\frac{\lambda_n}{\lambda_1}\right)^k u_n\right) . $$ 此外,设 $$ x^{(k)}=\frac{A x^{(k-1)}}{\max \left(x^{(k-1)}\right)}=\frac{A^k x^{(0)}}{\max \left(A^{k-1} x^{(0)}\right)}, \quad x^{(k+1)}=\frac{A x^{(k)}}{\max \left(x^{(k)}\right)}=\frac{A^{k+1} x^{(0)}}{\max \left(A^k x^{(0)}\right)} . $$ 利用特征向量的正交性,有 $$ \begin{aligned} \frac{\left(A x^{(k)}, x^{(k)}\right)}{\left(x^{(k)}, x^{(k)}\right)} & =\frac{\left(A^{k+1} x^{(0)}, A^k x^{(0)}\right)}{\left(A^k x^{(0)}, A^k x^{(0)}\right)}=\frac{\sum_{i=1}^n a_i^2 \lambda_i^{2 k+1}}{\sum_{i=1}^n a_i^2 \lambda_i^{2 k}} \\ & =\lambda_1+O\left(\frac{\lambda_2}{\lambda_1}\right)^{2 k} \end{aligned} $$ 于是我们有如下的瑞利商加速法: $$ \left\{\begin{array}{l} y^{(k)}=\frac{x^{(k)}}{\max \left(x^{(k)}\right)}, \tag{4.14}\\ x^{(k+1)}=A y^{(k)}, \\ R\left(y^{(k)}\right)=\frac{\left(y^{(k)}\right)^{\mathrm{T}} x^{(k+1)}}{\left(y^{(k)}\right)^{\mathrm{T}}\left(y^{(k)}\right)} . \end{array}\right. $$ 当 $k$ 充分大时, $$ R\left(y^{(k)}\right) \rightarrow \lambda_1, \quad y^{(k)} \rightarrow \frac{u_1}{\max \left(u_1\right)} $$ 注(1)每一轮瑞利商迭代都采取了将计算后的向量 $x^{(k)}$ 进行标准化的方法,这样能够保证计算的稳定性。对于对称实矩阵来说,瑞利商加速法一般比艾特肯加速法要快。 (2)有了 $R\left(x^{(k)}\right), R\left(x^{(k+1)}\right), R\left(x^{(k+2)}\right)$ 的值,可再用艾特肯加速法得到 $\lambda_1$ 的一个更好的近似值.因为 $$ \frac{R\left(x^{(k+2)}\right)-\lambda_1}{R\left(x^{(k+1)}\right)-\lambda_1} \approx \frac{R\left(x^{(k+1)}\right)-\lambda_1}{R\left(x^{(k)}\right)-\lambda_1}, $$ 所以 $$ \lambda_1 \approx R\left(x^{(k+2)}\right)-\frac{\left[R\left(x^{(k+2)}\right)-R\left(x^{(k+1)}\right)\right]^2}{R\left(x^{(k+2)}\right)-2 R\left(x^{(k+1)}\right)+R\left(x^{(k)}\right)}=\lambda_1^{(k+2)} . $$ 例 4.6 设 $A=\left(\begin{array}{lll}1 & 2 & 1 \\ 2 & 3 & 1 \\ 1 & 1 & 3\end{array}\right)$ ,用瑞利商加速法求 $A$ 的最大模特征值及特征向量,并与幂法相比较。 解 编程计算结果如表 4.6. 
科数题库(单机版)
会议室预约系统(book)
今日还可看
0
篇 未注册用户每天查看4篇,
注册
用户每天8篇,
开通VIP
会员无限制查看。
免费注册
《高等数学》难点解析
高数教程
泰勒公式
切线与法线
切平面与法平面
驻点·拐点·极值点·零点
间断点
渐进线
瑕积分
欧拉方程
伯努利方程
Abel 收敛定理
偏导数的几何意义
偏导数的几何意义
梯度
数量场与向量场
多元函数极值
拉格朗日算子
通量与散度
环流量与旋度
格林公式
高斯公式
斯托克斯公式
三大公式比较
傅里叶级数
极坐标微元
点法式方程
变上限定积分
X型计算面积
Y型计算面积
微分的意义
渐近线
间断点
y''+py'+qy=f(x)方程
高斯
黎曼
傅里叶变换(复数)
拉普拉斯变换(复数)
《线性代数》难点解析
线代教程
近世代数对数学的整体思考
线性的意义
矩阵乘法(列视角)
矩阵乘法(行视角)
矩阵左乘
矩阵右乘
逆矩阵求解方程组
阶梯形矩阵的求法
方程组解的判定
四阶行列式的计算
线性变换的意义
线性空间
向量组的等价
线性空间的几何意义
基础解系的求法
施密特正交化
特征值与特征向量的意义
矩阵相似的几何意义
矩阵可对角化的理解
秩的意义(向量版)
秩的意义(方程版)
二次型的意义
《概率论与数理统计》难点解析
概率教程
置信区间与上a分位数
概率中的“取”与“放”
贝叶斯公式
全概率公式
泊松分布
指数分布
伽玛分布
二维密度图的意义
卷积的意义
相关系数的意义
k阶矩是与矩母函数
卡方分布的作用
单正态区间估计理解
假设检验理解
切比雪夫不等式
中心极限定理
上一篇:
特征值的估计
下一篇:
反幂法
本文对您是否有用?
有用
(
0
)
无用
(
0
)
赞助:
知乎 Mathhub
启明星
商务合作
赞助本站
科数网
是专业的数学网站,为您提供题库与教程 版权所有 禁止镜像
部分内容采用AI辅助生成,请注意识别
如果页面无法显示请联系 18155261033 或 983506039@qq.com