求矩阵特征值算法及程序简介 1.幂法 1、幂法规范化算法 (1)输入矩阵A、初始向量( 0),误差eps; (2) k 1; (3)计算V(k)A(k 1); (4)m k max(V(k)) ,m k1max( V ( k 1)); (5) (k)V(k)/m k; (6)如果m k m k 1eps,则显示特征值1和对应的特征向量x(1) ),终止; (7)k k 1, 转(3) 注:如上算法中的符号max(V )表示取向量V 中绝对值最大的分量。本算法使用了数据规范化处理技术以防止计算过程中出现益出错误。 2、规范化幂法程序 Clear[a,u,x]; a=Input[" 系数矩阵A="]; u=Input[" 初始迭代向量u(0)="]; n=Length[u]; eps=Input[" 误差精度eps ="]; nmax=Input[" 迭代允许最大次数nmax="]; fmax[x_]:=Module[{m=0,m1,m2}, Do[m1=Abs[x[[k]]]; If[m1>m,m2=x[[k]];m=m1], {k,1,Length[x]}]; m2] v=a.u; m0=fmax[u]; m1=fmax[v]; t=Abs[m1-m0]//N; k=0; While[t>eps&&k 9 矩阵特征值计算 在实际的工程计算中,经常会遇到求n 阶方阵 A 的特征值(Eigenvalue)与特征向量(Eigenvector)的问题。对于一个方阵A,如果数值λ使方程组 Ax=λx 即(A-λI n )x=0 有非零解向量(Solution Vector)x,则称λ为方阵A的特征值,而非零向量x为特征值λ所对应的特征向量,其中I n 为n阶单位矩阵。 由于根据定义直接求矩阵特征值的过程比较复杂,因此在实际计算中,往往采取一些数值方法。本章主要介绍求一般方阵绝对值最大的特征值的乘幂(Power)法、求对称方阵特征值的雅可比法和单侧旋转(One-side Rotation)法以及求一般矩阵全部特征值的QR 方法及一些相关的并行算法。 1.1 求解矩阵最大特征值的乘幂法 1.1.1 乘幂法及其串行算法 在许多实际问题中,只需要计算绝对值最大的特征值,而并不需要求矩阵的全部特征值。乘幂法是一种求矩阵绝对值最大的特征值的方法。记实方阵A的n个特征值为λi i=(1,2, …,n),且满足: │λ1 │≥│λ2 │≥│λ3 │≥…≥│λn │ 特征值λi 对应的特征向量为x i 。乘幂法的做法是:①取n维非零向量v0 作为初始向量;②对于 k=1,2, …,做如下迭代: 直至u k+1 ∞ - u k u k =Av k-1 v k = u k /║u k ║∞ <ε为止,这时v k+1 就是A的绝对值最大的特征值λ1 所对应的特征向∞ 量x1 。若v k-1 与v k 的各个分量同号且成比例,则λ1 =║u k ║∞;若v k-1 与v k 的各个分量异号且成比例,则λ1 = -║u k ║∞。若各取一次乘法和加法运算时间、一次除法运算时间、一次比较运算时间为一个单位时间,则因为一轮计算要做一次矩阵向量相乘、一次求最大元操作和一次规格化操作,所以下述乘幂法串行算法21.1 的一轮计算时间为n2+2n=O(n2 )。 算法21.1 单处理器上乘幂法求解矩阵最大特征值的算法 输入:系数矩阵A n×n ,初始向量v n×1 ,ε 输出:最大的特征值m ax Begin while (│diff│>ε) do (1)for i=1 to n do (1.1)sum=0 (1.2)for j= 1 to n do sum=sum+a[i,j]*x[j] end for 第3章 矩阵特征值与特征向量的计算 一些工程技术问题需要用数值方法求得矩阵的全部或部分特征值及相关的特征向量。 3.1 特征值的估计 较粗估计ρ(A )≤ ||A || 欲将复平面上的特征值一个个用圆盘围起来。 3.1.1盖氏图 定义3.1-1 设A = [a ij ]n ?n ,称由不等式∑≠=≤-n i j j ij ii a a z 1 所确定的复区域为A 的第i 个盖氏图, 记为G i ,i = 1,2,…,n 。 >≤-=<∑≠=}:{1n i j j ij ii i a a z z G 定理3.1-1 若λ为A 的特征值,则 n i i G 1 =∈ λ 证明:设Ax = λx (x ≠ 0),若k 使得∞ ≤≤==x x x i n i k 1max 因为 k n j j kj x x a λ=∑=1 ?∑≠= -n k j j kj k kk x a x a )(λ ?∑∑∑ ≠=≠=≠≤≤= -n k j j kj n k j j k j kj n k j k j kj kk a x x a x x a a 11λ ? n i i k G G 1 =? ∈λ 例1 估计方阵????? ?? ?????----=41.03.02.05.013.012.01.035.03.02.01.01A 特征值的X 围 解: G 1 = {z :|z – 1|≤ 0.6};G 2 = {z :|z – 3|≤ 0.8}; G 3 = {z :|z + 1|≤ 1.8};G 4 = {z :|z + 4|≤ 0.6}。 注:定理称A 的n 个特征值全落在n 个盖氏圆上,但未说明每个圆盘内都有一个特征值。 3.1.2盖氏圆的连通部分 称相交盖氏圆之并构成的连通部分为连通部分。 孤立的盖氏圆本身也为一个连通部分。 定理3.1-2若由A 的k 个盖氏圆组成的连通部分,含且仅含A 的k 个特征值。 证明: 令D = diag(a 11,a 12,…,a nn ),M = A –D ,记 )10(00 0)(212211122211≤≤?? ?? ? ? ? ??+??????? ??=+=εεεε n n n n nn a a a a a a a a a M D A 则显然有A (1) = A ,A (0) = D ,易知A (ε)的特征多项式的系数是ε的多项式,从而A (ε)的特征 值λ1(ε),λ2(ε),…,λn (ε)为ε的连续函数。 A (ε)的盖氏圆为:)10(,}||||:{)(11≤≤?=≤ -=∑∑≠=≠=εεεεi n i j j ij n i j j ij ii i G a a a z z G 因为A (0) = D 的n 个特征值a 11,a 12,…,a nn ,恰为A 的盖氏圆圆心,当ε由0增大到1时,λi (ε)画出一条以λi (0) = a ii 为始点,λi (1) = λi 为终点的连续曲线,且始终不会越过G i ; 不失一般性,设A 开头的k 个圆盘是连通的,其并集为S ,它与后n –k 个圆盘严格分离,显然,A (ε)的前k 个盖氏圆盘与后n –k 个圆盘严格分离。 当ε = 0时,A (0) = D 的前k 个特征值刚好落在前k 个圆盘G 1,…,G k 中,而另n –k 个特征值则在区域S 之外,ε从0变到1时, k i i G 1 )(=ε与 n k i i G 1 )(+=ε始终分离(严格) 。连续曲线始终在S 中,所以S 中有且仅有A 的k 个特征值。 注:1) 每个孤立圆中恰有一个特征值。 2) 例1中G 2,G 4为仅由一个盖氏圆构成的连通部分,故它们各有一个特征值,而G 1,G 3构并行计算-矩阵特征值计算--
3矩阵特征值及特征向量的计算