一、问题分析及算法描述 1
问题的提出: (1)用幂法、反幂法求矩阵A = [aij]20×20的按摸最大和最小特征值,并求出相应的特征向量
其中 aij = {sin(0
2j) ᵅ ≠ ᵅ1
5 cos(i + 1
2j) ᵅ = ᵅ 要求:迭代精度达到10−12
(2)用带双步位移的 QR 法求上述的全部特征值,并求出每一个实特征值相应的特征向量
算法的描述: (1) 幂法 幂法主要用于计算矩阵的按摸为最大的特征值和相应的特征向量
其迭代格式为: { 任取非零向量u0 = (h1(0),⋯ ,hn(0))T|hr(k−1)| = max1≤j≤n|hr(k−1)| y⃑ k−1=u⃑ k−1|hr(k−1)| u⃑ k = Ay⃑ k−1= (h1(k),⋯ ,hn(k))T βk = sgn (hr(k−1)) hr(k) (k = 1,2, ⋯ ) 终止迭代的控制选用≤ε
幂法的使用条件为n × n实矩阵 A 具有 n 个线性无关的特征向量x1,x2,⋯ ,xn,其相应的特征值λ1,λ2, ⋯ ,λn满足不等式 |λ1| > |λ2| ≥ |λ3| ≥ ⋯ ≥ |λn| 或 λ1 = λ2 = ⋯ = λm |λ1| > |λm+1| ≥ |λm+2| ≥ ⋯ ≥ |λn| 幂法收敛速度与比值|λ2λ1|或|λm+1λ1|有关,比值越小,收敛速度越快
(2) 反幂法 反幂法用于计算n× n实矩阵 A 按摸最小的特征值,其迭代格式为: { 任取非零向量u0 ∈ Rn ηk−1 = √u⃑ k−1Tu⃑ k−1 y⃑ k−1 = u⃑ k−1 ηk−1⁄ Au⃑ k = y⃑ k−1 βk = y⃑ k−1u⃑ k (k = 1,2,⋯ ) 每迭代一次都要求解一次线性方程组Au⃑ k = y⃑ k−1
当 k 足够大时,λn ≈1βk,y⃑