一、课题名称
Malab矩阵特征值
二、目的和意义
1、求矩阵的部分特征值问题具有重要实际意义,如求矩阵谱半径()Aρ=maxλ,稳定性问题往往归于求矩阵按模最小特征值;
2、进一步掌握冪法、反冪法及原点平移加速法的程序设计技巧;
3、问题中的题(5),反应了利用原点平移的反冪法可求矩阵的任何特征值及其特征向量。
三、实验要求
1、掌握冪法或反冪法求矩阵部分特征值的算法与程序设计;
2、会用原点平移法改进算法,加速收敛;对矩阵B=A-PI取不同的P值,试求其效果;
3、试取不同的初始向量,观察对结果的影响;()0υ
4、对矩阵特征值的其它分布,如如何计算。
四、问题描述
五、实验程序设计
幂法
function [lamdba,v]=power_menthod(a,x,epsilon,maxl)
k=0;
y=a*x;
while(k y=y/max(abs(y)); y=a*x; m=max(abs(y)); x=y/m; k=k+1; if abs(y-m) break; end end lambda=m v=x 方程组1结果 >> a=[-1 2 1;2 -4 1;1 1 -6]; >> x=[1 1 1]'; >> epsilon=0.00005; >> maxl=20; >> power_menthod(a,x,epsilon,maxl) lambda = 6.4183 v = -0.0484 -0.3706 1.0000 方程组2结果 >> a=[4 -2 7 3 -1 8;-2 5 1 1 4 7;7 1 7 2 3 5;3 1 2 6 5 1;-1 4 3 5 3 2;8 7 5 1 2 4]; >> x=[1 0 1 0 0 1]'; >> epsilon=0.00005; >> maxl=20; >> power_menthod(a,x,epsilon,maxl) lambda = 21.3053 v = 0.8724 0.5401 0.9974 0.5644 0.4972 1.0000 反幂法 function [lambda,v]=INV_shift(a,x,epsilon,max1) for i=1:max1 y=x/max(abs(x)) x=a\y end v=y; lambda=1/max(abs(x)); function [lambda,v]=INV_shift1(a,x,epsilon,max1) for i=1:max1 y=x/max(abs(x)); x=lu1(a,y,3) end v=y; lambda=1/max(abs(x)); 方程组1结果 >> a=[-1 2 1;2 -4 1;1 1 -6]; >> x=[1 1 1]'; >> epsilon=0.00005; >> max1=20; >> [lambda,v]=INV_shift(a,x,epsilon,max1) lambda = 0.2880 v = 1.0000 0.5229 0.2422 方程组2结果 >> a=[4 -2 7 3 -1 8;-2 5 1 1 4 7;7 1 7 2 3 5;3 1 2 6 5 1;-1 4 3 5 3 2;8 7 5 1 2 4]; >> x=[1 0 1 0 0 1]'; >> epsilon=0.00005; >> max1=20; >> [lambda,v]=INV_shift(a,x,epsilon,max1 lambda = 1.6214 v = -0.4824 -0.0702 1.0000 -0.6005 0.5211 -0.4588 六、实验结果分析 1.幂法 幂法是一种计算矩阵主特征值(矩阵按模最大的特征值)及对应特征向量的迭代方法, 特别是用于大型稀疏矩阵。 设实矩阵A=[a ij]n×n有一个完全的特征向量组,其特征值为λ1,λ2,…,λn,相应的特征向量为x1 ,x2,…,x n.已知A的主特征值是实根,且满足条件 |λ1|>|λ2|≥|λ3|≥…≥|λn |, (2.1) 幂法的基本思想是任取一个非零的初始向量ν0,由矩阵A构造一向量序列 称为迭代向量。 2.ν0=α1 x1+α2 x2+ … +αn x n(α≠0 ), (2.3) 于是 其中 (2.4) 由假设 从而 这说明序列νk/λ1k越来越接近A的对应于λ1的特征向量, 或者说当k充分大时 故 即两相邻迭代向量分量的比值收敛到主特征值。 2、反幂法 反幂法用来计算矩阵按模最小的特征值及其特征向量,也可用来计算对应与一个给定近似特征值的特征向量。 设A∈R n×n为非奇异矩阵,A的特征值依次记为 |λ1|≥|λ2|≥|λ3|≥…≥|λn |, 相应的特征向量为x1 ,x2,…,x n , 则A-1的特征值为 |1/λn|≥|1/λn-1|≥…≥|1/λ1 | , 相应的特征向量为x n,x n-1,…,x1 . 所以计算A的按模最小的特征值λn的问题就是计算A-1的按模最大的特征值问题。 对于A-1应用幂法迭代(称为反幂法),可求得矩阵A-1的主特征值1/λn,从而求得A的按模最小的特征值λ 求矩阵特征值算法及程序简介 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矩阵特征值及特征向量的计算