1、题目幂法和反幂法求矩阵特征值具体内容随机产生一对称矩阵,对不同的原点位移和初值(至少取 3 个)分别使用幂法求计算矩阵的主特征值及主特征向量,用反幂法求计算矩阵的按模最小特征值及特征向量,并比较不同的原点位移和初值说明收敛。要求1.认真读题,了解问题的数学原形;2.选择合适问题求解的数值计算方法;3.设计程序并进行计算;4.对结果进行解释说明;采用方法及结果说明对于幂法和反幂法求解矩阵特征值和特征向量的问题将从问题分析,算法设计和流程图,理论依据,程序及结果进行阐述该问题。一问题的分析:求 n 阶方阵 A 的特征值和特征向量,是实际计算中常常碰到的问题,如:机械、结构或电磁振动中的固有值问题等
2、。对于 n 阶矩阵 A,若存在数和 n 维向量 x 满足Ax= x (1)则称 为矩阵 A 的特征值,x 为相应的特征向量。由高等代数知识可知,特征值是代数方程| I-A|= +a +a +a =0 (2)n1n1nn的根。从表面上看,矩阵特征值与特征向量的求解问题似乎很简单,只需求解方程(2)的根,就能得到特征值 ,再解齐次方程组( I-A)x=0 (3)的解,就可得到相应的特征向量。上述方法对于 n 很小时是可以的。但当 n 稍大时,计算工作量将以惊人的速度增大,并且由于计算带有误差,方程(2)未必是精确的特征方程,自然就不必说求解方程(2)与(3)的困难了。幂法是一种计算矩阵主特征值(矩
3、阵按模最大的特征值)及对应特征向量的迭代方法,特别是用于大型稀疏矩阵。反幂法是计算海森伯格阵或三角阵的对应一个给定近似特征值的特征向量的有效方法之一。二算法设计及流程图1、幂法算法(1)取初始向量 u (例如取 u =(1,1,1) ),置精度要求 ,置 k=1. )0( )0(T(2)计算v =Au ,m =max(v ), u = v / m)(k)1(k)(k)(k)(k(3)若| m = m | | |12n则计算最大特征值与特征向量的迭代格式为v =Au ,m =max(v ), u = v / m )(k)(k)(k)(k)(k(1)其中 max(v )表示向量 v 绝对值的最大分
4、量。(k)(k2、对于幂法的定理按式(1)计算出 m 和 u 满足k)(km = , u =kli1kli)()max1(二)反幂法算法的理论依据及推导反幂法是用来计算绝对值最小的特征值忽然相应的特征向量的方法。是对幂法的修改,可以给出更快的收敛性。1、反幂法的迭代格式与收敛性质设 A 是非奇异矩阵,则零不是特征值,并设特征值为| | | | |121nn则按 A 的特征值绝对值的大小排序,有1| | 1n| |1对 A 实行幂法,就可得 A 的绝对值最大的特征值 1/ 和相应的特征向量,1 n即 A 的绝对值最小的特征值和相应的特征向量。由于用 A 代替 A 作幂法计算,因此该方法称为反幂法
5、,反幂法的迭代格1式为 v = A u ,m =max(v ), u = v / m (2))(k1)(k)(k)(k)(k2、对于反幂法的定理按式(2)计算出的 m 和 u 满足:k)(km = , u =klinli)ax(n在式(2)中,需要用到 A ,这给计算带来很大的不方便,因此,把(2)式1的第一式改为求解线性方程组 A v = u (3))(k)1(但由于在反幂法中,每一步迭代都需求解线性方程组(3)式,迭代做了大量的重复计算,为了节省工作量,可事先把矩阵 A 作 LU 分解,即 A=LU所以线性方程组(3)改为Ly =u ,Uv =y)(k)1()(k(四、算法程序设计代码幂法
6、程序,在 matlab 中建立一个 M 文件并保存。%pow.mfunction m,u,index,k=pow(A,u,ep,it_max)if narginB=rand(4);A=B+BA =0.2675 0.5776 0.6344 1.31300.5776 1.1503 0.7641 0.13670.6344 0.7641 0.0257 0.41931.3130 0.1367 0.4193 1.2248 u=1 1 1 1; m,u,index,k=pow(A,u)m =2.6813u =0.85760.69340.56231.0000index =1k =49修改 M0=1e-3m =2.6814u =0.85760.69340.56231.0000index =0k =1001修改 M0=0 %此时为幂法m =2.6815u =0.85760.69350.56231.0000index =1k =10修改 U=1 2 3 4修改 M0=1e-4m =2.6813u =0.85760.69340.56231.0000index =1k = 9