《数值分析幂法与反幂法-matlab程序》由会员分享,可在线阅读,更多相关《数值分析幂法与反幂法-matlab程序(5页珍藏版)》请在金锄头文库上搜索。
1、数值分析幂法与反幂法 matlab 程序随机产生一对称矩阵,对不同的原点位移和初值 (至少取 3个)分别使用幂法求计算矩阵的主特征值及主特征向量,用反幂法求计算矩阵的按模最小特征值及特征向量。要求1比较不同的原点位移和初值说明收敛性2给出迭代结果,生成 DOC 文件。3程序清单,生成 M 文件。解答: A=rand(5) %随机产生 5*5 矩阵求随机矩阵A = B=A+A %A 矩阵和 A 的转置相加,得到随机对称矩阵 BB =1.41870.91730.86131.37880.80440.91730.23800.72221.85060.5979B=0.86130.72221.50251.2
2、1441.34671.37881.85061.21441.09440.39290.80440.59791.34670.39291.6286编写幂法、反幂法程序:function m,u,index,k=pow(A,u,ep,it_max)% 求矩阵最大特征值的幂法,其中% A为矩阵;% ep为精度要求,缺省为1e-5;% it_max为最大迭代次数,缺省为100;% m为绝对值最大的特征值;% u为对应最大特征值的特征向量;% index,当index=1时,迭代成功,当index=0时,迭代失败if nargin4 it_max=100;endif nargin3 ep=1e-5;endn=
3、length(A);index=0;k=0;m1=0;m0=0.01;% 修改移位参数,原点移位法加速收敛,为0时,即为幂法I=eye(n)T=A-m0*Iwhile k=it_max v=T*u; vmax,i=max(abs(v); m=v(i); u=v/m;if abs(m-m1)ep; index=1;break;end m=m+m0; m1=m; k=k+1;endfunctionm,u,index,k=pow_inv(A,u,ep,it_max)% 求矩阵最大特征值的反幂法,其中% A为矩阵;% ep为精度要求,缺省为1e-5;% it_max为最大迭代次数,缺省为100;% m
4、为绝对值最大的特征值;% u为对应最大特征值的特征向量;% index,当index=1时,迭代成功,当index=0时,迭代失败if nargin4 it_max=100;endif nargin3 ep=1e-5;endn=length(A);index=0;k=0;m1=0;m0=0;% 修改移位参数,原点移位法加速收敛,为0时,即为反幂法I=eye(n);T=A-m0*I;invT=inv(T);while k=it_max v=invT*u; vmax,i=max(abs(v); m=v(i); u=v/m;if abs(m-m1)ep index=1;break;end m1=m;
5、 k=k+1;endm=1/m;m=m+m0;修改输入的 m0 的值,所得结果:幂法:u(0)m0muindexk11 1 110000.92230.92230.92230.92230.92230.9223T0.76850.9641 1.00000.7941T0.76850.9641 1.00000.7941T0.76850.9641 1.00000.7941T0.76850.9641 1.00000.7941T0.76850.9641 1.00000.7941T0.76850.9641 1.00000.794111111111101110131110929991010001101012 3
6、450.92230.92230.92230.92230.92230.9223T0.76850.9641 1.00000.7941T0.76850.9641 1.00000.7941T0.76850.9641 1.00000.7941T0.76850.9641 1.00000.7941T0.76850.9641 1.00000.7941T0.76850.9641 1.00000.79417845368915反幂法:u(0)m0muindexk11 1 11000.77250.77250.77250.7725T0.8199 1.00000.40500.8078T0.8199 1.00000.405
7、00.80780.8199 1.00000.40500.8078T1111115555550.8199 1.00000.40500.8078T12 3 450.77250.77250.8199 1.00000.40500.8078T0.8199 1.00000.40500.8078T0.77250.77250.77250.77250.77250.7725T0.8199 1.00000.40500.8078T0.8199 1.00000.40500.8078T0.8199 1.00000.40500.8078T0.8199 1.00000.40500.8078T0.8199 1.00000.40500.8078T0.8199 1.00000.40500.807811111155555578453689150