四、矩阵特征值与特征向量的计算

1 幂法和反幂法

1.1 幂法

幂法主要用于求矩阵的按模[1]最大的特征值与相应的特征向量。它是通过迭代产生向量序列,由此计算特征值和特征向量。

n × n n\times n n×n阶实矩阵 A A A的特征值 λ i   ( i = 1 , 2 , … , n ) \lambda_i\ (i=1,2,\dots,n) λi (i=1,2,,n)满足:

∣ λ 1 ∣ > ∣ λ 2 ∣ ≥ ⋯ ≥ ∣ λ n ∣ |\lambda_1|>|\lambda_2|\ge\cdots\ge|\lambda_n| λ1>λ2λn

且与 λ i ( i = 1 , 2 , … , n ) \lambda_i(i=1,2,\dots,n) λi(i=1,2,,n)相应的特征向量 u 1 , u 2 , … , u n u_1,u_2,\dots,u_n u1,u2,,un线性无关。(?为什么线性无关)

给定初始向量 x ( 0 ) ≠ 0 x^{(0)}\ne0 x(0)=0,由迭代公式

x ( k + 1 ) = A x ( k ) ( k = 0 , 1 , 2 , …   ) ( 4 − 1 ) x^{(k+1)}=Ax^{(k)}\quad(k=0,1,2,\dots)\quad\quad\quad\quad\quad(4-1) x(k+1)=Ax(k)(k=0,1,2,)(41)

产生向量序列 { x ( k ) } \{x^{(k)}\} {x(k)},可以证明,当 k k k充分大时,有 λ i ≈ x i ( k + 1 ) / x i ( k ) \lambda_i\approx x_i^{(k+1)}/x_i^{(k)} λixi(k+1)/xi(k),相应的特征向量为 x ( k + 1 ) x^{(k+1)} x(k+1)

为简便起见,不妨设 ∥ u i ∥ = 1   ( i = 1 , 2 , … , n ) \Vert u_i\Vert=1\ (i=1,2,\dots,n) ui=1 (i=1,2,,n)。因为 u i u_i ui线性无关(线性无关的概念),故必存在n个不全为零的数 α i   ( i = 1 , 2 , … , n ) \alpha_i\ (i=1,2,\dots,n) αi (i=1,2,,n),使得 x ( 0 ) = ∑ i = 1 n α i u i x^{(0)}=\sum\limits_{i=1}^n\alpha_iu_i x(0)=i=1nαiui。由式(4-1)得:

x ( k + 1 ) = A x ( k ) = A K + 1 x ( 0 ) = ∑ i = 1 n A k + 1 ( α i u i ) x^{(k+1)}=Ax^{(k)}=A^{K+1}x^{(0)}=\sum\limits_{i=1}^nA^{k+1}(\alpha_iu_i) x(k+1)=Ax(k)=AK+1x(0)=i=1nAk+1(αiui)

即:

x ( k + 1 ) = λ 1 k + 1 [ α 1 u 1 + ( λ 2 λ 1 ) α 2 u 2 + ⋯ + ( λ n λ 1 ) α n u n ] ( 4 − 2 ) x^{(k+1)}=\lambda_1^{k+1}[\alpha_1u_1+(\frac{\lambda_2}{\lambda_1})\alpha_2u_2+\cdots+(\frac{\lambda_n}{\lambda_1})\alpha_nu_n]\quad\quad\quad\quad\quad(4-2) x(k+1)=λ1k+1[α1u1+(λ1λ2)α2u2++(λ1λn)αnun](42)

α i ≠ 0 \alpha_i\ne0 αi=0,由 ∣ λ 1 ∣ > ∣ λ i ∣   ( i = 2 , 3 , … , n ) |\lambda_1|>|\lambda_i|\ (i=2,3,\dots,n) λ1>λi (i=2,3,,n)得:

lim ⁡ k → ∞ ( λ i λ 1 ) k + 1 α i u i = 0 \lim\limits_{k\to\infty}(\frac{\lambda_i}{\lambda_1})^{k+1}\alpha_iu_i=0 klim(λ1λi)k+1αiui=0

于是:

lim ⁡ k → ∞ ∑ i = 2 n ( λ i λ 1 ) α i u i = 0 \lim\limits_{k\to\infty}\sum\limits_{i=2}^n(\frac{\lambda_i}{\lambda_1})\alpha_iu_i=0 klimi=2n(λ1λi)αiui=0

故只要k充分大,就有:

x ( k + 1 ) = λ 1 k + 1 [ α 1 u 1 + ∑ i = 2 n ( λ i λ 1 ) α i u i ] ≈ λ 1 k + 1 α 1 u 1 ( 4 − 3 ) x^{(k+1)}=\lambda_1^{k+1}[\alpha_1u_1+\sum\limits_{i=2}^n(\frac{\lambda_i}{\lambda_1})\alpha_iu_i]\approx\lambda_1^{k+1}\alpha_1u_1\quad\quad\quad\quad(4-3) x(k+1)=λ1k+1[α1u1+i=2n(λ1λi)αiui]λ1k+1α1u1(43)

因此,可把 x ( k + 1 ) x^{(k+1)} x(k+1)作为与 λ 1 \lambda_1 λ1相应的特征向量的近似。由式:

x ( k + 1 ) ≈ λ 1 k + 1 α 1 u 1 , x ( k ) ≈ λ 1 k α 1 u 1 x^{(k+1)}\approx\lambda_1^{k+1}\alpha_1u_1,\quad x^{(k)}\approx\lambda_1^k\alpha_1u_1 x(k+1)λ1k+1α1u1,x(k)λ1kα1u1

此时我们可以得出:

λ 1 ≈ x i ( k + 1 ) x i ( k ) ( i = 1 , 2 , … , n ) ( 4 − 4 ) \lambda_1\approx\frac{x_i^{(k+1)}}{x_i^{(k)}}\quad(i=1,2,\dots,n)\quad\quad\quad\quad\quad\quad(4-4) λ1xi(k)xi(k+1)(i=1,2,,n)(44)

其中 x i ( k ) x^{(k)}_i xi(k) x ( k ) x^{(k)} x(k)的第i个分量。按式(4-1)和式(4-4)计算矩阵 A A A按模最大的特征值与相应的特征向量的方法称为幂法。

需要说明的是,如果 x ( 0 ) x^{(0)} x(0)的选取恰恰使得 α 1 = 0 \alpha_1=0 α1=0,幂法计算仍能进行。因为计算过程中舍入误差的影响,迭代若干次后,必然会产生一个向量 x ( k ) x^{(k)} x(k),它在 u 1 u_1 u1方向上的分量不为零。这样,以后的计算就满足所设条件。另外需要注意的一点是,因为 x ( k ) ≈ λ 1 k α 1 u 1 x^{(k)}\approx\lambda_1^k\alpha_1u_1 x(k)λ1kα1u1,计算过程中可能会出现溢出( ∣ λ 1 ∣ > 1 |\lambda_1|>1 λ1>1)或成为0( ∣ λ 1 ∣ < 1 |\lambda_1|<1 λ1<1)的情形。为避免这一情形的出现,实际计算时每次迭代所求的的向量都要归一化。因此,幂法实际使用的计算公式是:

{ y ( k ) = x ( k ) x r ( k ) ,   ∣ x r ( k ) ∣ = max ⁡ 1 ≤ i ≤ n ∣ x i ( k ) ∣ ( k = 0 , 1 , 2 , …   ) x ( k + 1 ) = A y ( k ) λ 1 ≈ x r ( k + 1 ) ( 4 − 5 ) \begin{cases}y^{(k)}=\frac{x^{(k)}}{x_r^{(k)}},\ |x_r^{(k)}|=\max\limits_{1\le i\le n}|x_i^{(k)}|\quad(k=0,1,2,\dots)\\x^{(k+1)}=Ay^{(k)}\\\lambda_1\approx x_r^{(k+1)}\\\end{cases}\quad\quad\quad\quad\quad(4-5) y(k)=xr(k)x(k), xr(k)=1inmaxxi(k)(k=0,1,2,)x(k+1)=Ay(k)λ1xr(k+1)(45)

待补充 92

1.2 幂法的加速

因为幂法的收敛条件是线性的,而且依赖于收敛因子 ∣ λ 2 / λ 1 ∣ |\lambda_2/\lambda_1| λ2/λ1,当收敛因子接近于1时,幂法收敛很慢。幂法的加速有许多方法,下面介绍其中两种。

原点移位法

容易看出,矩阵 A A A A − λ 0 I A-\lambda_0I Aλ0I的特征值有以下关系:若 λ i \lambda_i λi A A A的特征值,则 λ i − λ 0 \lambda_i-\lambda_0 λiλ0就是 A − λ 0 I A-\lambda_0I Aλ0I的特征值,而且相应的特征向量不变。如果对矩阵 A − λ 0 I A-\lambda_0I Aλ0I按式(4-1)计算,则有:

x k + 1 = ( A − λ 0 I ) x ( k ) = ( λ 1 − λ 0 ) k + 1 [ α 1 u 1 + ( ( λ 2 − λ 0 ) ( λ 1 − λ 0 ) ) α 2 u 2 + ⋯ + ( ( λ n − λ 0 ) ( λ 1 − λ 0 ) ) α n u n ] x^{k+1}=(A-\lambda_0I)x^{(k)}\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\\=(\lambda_1-\lambda_0)^{k+1}[\alpha_1u_1+(\frac{(\lambda_2-\lambda_0)}{(\lambda_1-\lambda_0)})\alpha_2u_2+\cdots+(\frac{(\lambda_n-\lambda_0)}{(\lambda_1-\lambda_0)})\alpha_nu_n] xk+1=(Aλ0I)x(k)=(λ1λ0)k+1[α1u1+((λ1λ0)(λ2λ0))α2u2++((λ1λ0)(λnλ0))αnun]

适当选取 λ 0 \lambda_0 λ0,使得 ∣ λ 1 − λ 0 ∣ > ∣ λ i − λ 0 ∣ |\lambda_1-\lambda_0|>|\lambda_i-\lambda_0| λ1λ0>λiλ0,且:

∣ λ i − λ 0 λ 1 − λ 0 ∣ < ∣ λ 2 λ 1 ∣ ( i = 2 , 3 , … , n ) |\frac{\lambda_i-\lambda_0}{\lambda_1-\lambda_0}|<|\frac{\lambda_2}{\lambda_1}|\quad(i=2,3,\dots,n) λ1λ0λiλ0<λ1λ2(i=2,3,,n)

这样,用幂法计算 A − λ 0 I A-\lambda_0I Aλ0I的最大模特征值 λ 1 − λ 0 \lambda_1-\lambda_0 λ1λ0及相应特征向量的收敛速度比对 A A A用幂法计算要快。这种加速收敛的方法称为原点移位法。

待补充

幂法的艾特肯(Aitken)加速

如果序列 { a k } \{a_k\} {ak}线性收敛到 a a a,即:

lim ⁡ k → ∞ a k + 1 − a a k − a = c ≠ 0 \lim\limits_{k\to\infty}\frac{a_{k+1}-a}{a_k-a}=c\ne0 klimakaak+1a=c=0

则当 k k k充分大时,有

a k + 2 − a a k + 1 − a ≈ a k + 1 − a a k + 1 − a ≈ a k + 1 − a a k − a \frac{a_{k+2}-a}{a_{k+1}-a}\approx\frac{a_{k+1}-a}{a_{k+1}-a}\approx\frac{a_{k+1}-a}{a_k-a} ak+1aak+2aak+1aak+1aakaak+1a

由此可解出:

a ≈ a k + 2 a k − a k + 1 2 a k + 2 − 2 a k + 1 + a k = a k − ( a k + 1 − a k ) 2 a k + 2 − 2 a k + 1 + a k = a k ^ ( 4 − 10 ) a\approx\frac{a_{k+2}a_k-a_{k+1}^2}{a_{k+2}-2a_{k+1}+a_k}=a_k-\frac{(a_{k+1}-a_k)^2}{a_{k+2}-2a_{k+1}+a_k}=\hat{a_k}\quad\quad\quad\quad\quad(4-10) aak+22ak+1+akak+2akak+12=akak+22ak+1+ak(ak+1ak)2=ak^(410)

序列 { a k ^ } \{\hat{a_k}\} {ak^} { a k } \{a_k\} {ak}更快地收敛到 a a a,这就是Aitken加速法。将这一方法用于幂法所产生的序列 { a k } \{a_k\} {ak},可加快幂法的收敛速度。

待补充

1.3 反幂法

反幂法是计算矩阵按模最小的特征值及特征向量的方法,也是修正特征值、求相应特征向量的最有效的方法。

A A A n × n n\times n n×n 阶非奇异矩阵, λ , u \lambda,u λ,u A A A的特征值与相应的特征向量,则 A − 1 A^{-1} A1的特征值是 A A A的特征值的倒数,而相应的特征向量不变,即:

A − 1 u = 1 λ u A^{-1}u=\frac{1}{\lambda}u A1u=λ1u

因此,若对矩阵 A − 1 A^{-1} A1用幂法,即可计算出 A − 1 A^{-1} A1的按模最大的特征值,其倒数恰为 A A A的按模最小的特征值。这就是反幂法的基本思想。

因为 A − 1 A^{-1} A1的计算比较麻烦,而且往往不能保持矩阵 A A A的一些好性质(如稀疏性),因此,反幂法在实际运算时以求解方程组:

A x ( k + 1 ) = x ( k ) ( 4 − 12 ) Ax^{(k+1)}=x^{(k)}\quad\quad\quad\quad\quad\quad(4-12) Ax(k+1)=x(k)(412)

代替幂法迭代:

x ( k + 1 ) = A − 1 x ( k ) x^{(k+1)}=A^{-1}x^{(k)} x(k+1)=A1x(k)

求得 x ( k + 1 ) x^{(k+1)} x(k+1),每迭代一次要解一个线性方程组(4-12)。由于矩阵在迭代过程中不变,故可对 A A A先进行三角分解。这样,每次迭代只要解两三个三角方程组。

待补充

补充内容

[1] 假定矩阵 A A A 有 n 个线性无关的特征向量,n个特征值按模由大到小排列:
∣ λ 1 ∣ ≥ ∣ λ 2 ∣ ≥ ⋯ ≥ ∣ λ n ∣ |\lambda_1|\ge|\lambda_2|\ge\cdots\ge|\lambda_n| λ1λ2λn
那么 λ 1 \lambda_1 λ1是按模最大特征值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值