您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 数值分析试验幂法与反幂法matlab
1一、问题的描述及算法设计(一)问题的描述我所要做的课题是:对称矩阵的条件数的求解设计1、求矩阵A的二条件数问题A=2101210122、设计内容:1)采用幂法求出A的错误!未找到引用源。.2)采用反幂法求出A的错误!未找到引用源。.3)计算A的条件数ⅡAⅡ2*ⅡA-1Ⅱ2=cond2(A)=错误!未找到引用源。/错误!未找到引用源。.(精度要求为10-6)3、设计要求1)求出ⅡAⅡ2。2)并进行一定的理论分析。(二)算法设计1、幂法算法(1)取初始向量u)0((例如取u)0(=(1,1,…1)T),置精度要求,置k=1.(2)计算v)(k=Au)1(k,mk=max(v)(k),u)(k=v)(k/mk(3)若|mk=m1k|,则停止计算(mk作为绝对值最大特征值1,u)(k作为相应的特征向量)否则置k=k+1,转(2)2、反幂法算法(1)取初始向量u)0((例如取u)0(=(1,1,…1)T),置精度要求,置k=1.(2)对A作LU分解,即A=LU(3)解线性方程组Ly)(k=u)1(k,Uv)(k=y)(k(4)计算mk=max(v)(k),u)(k=v)(k/mk(5)若|mk=m1k|,则停止计算(1/mk作为绝对值最小特征值n,u)(k作为2相应的特征向量);否则置k=k+1,转(3).3二、算法的流程图(一)幂法算法的流程图noyes开始k=0;m1=0v=A*u[vmax,i]=max(abs(v))m=v(i);u=v/mabs(m-m1)1e-6index=1;break;输出:m,u,index结束m1=m;k=k+14(二)反幂法算法的流程图noyes开始输入A;[m,u,index]=pow_inv(A,1e-6)k=0;m1=0v=invA*u[vmax,i]=max(abs(v))m=v(i);u=v/mabs(m-m1)1e-6index=1;break;输出:m,u,index结束m1=m;k=k+1输入A;[m,u,index]=pow(A,1e-6)5三、算法的理论依据及其推导(一)幂法算法的理论依据及推导幂法是用来确定矩阵的主特征值的一种迭代方法,也即,绝对值最大的特征值。稍微修改该方法,也可以用来确定其他特征值。幂法的一个很有用的特性是它不仅可以生成特征值,而且可以生成相应的特征向量。实际上,幂法经常用来求通过其他方法确定的特征值的特征向量。1、幂法的迭代格式与收敛性质设n阶矩阵A的特征值1,2,…,n是按绝对值大小编号的,xi(i=1,2,…,n)为对应i的特征向量,且1为单根,即|1||2|≥…≥|n|则计算最大特征值与特征向量的迭代格式为v)(k=Au)1(k,mk=max(v)(k),u)(k=v)(k/mk(1)其中max(v)(k)表示向量v)(k绝对值的最大分量。2、对于幂法的定理按式(1)计算出mk和u)(k满足klimmk=1,klimu)(k=)max(11xx(二)反幂法算法的理论依据及推导反幂法是用来计算绝对值最小的特征值忽然相应的特征向量的方法。是对幂法的修改,可以给出更快的收敛性。1、反幂法的迭代格式与收敛性质设A是非奇异矩阵,则零不是特征值,并设特征值为|1|≥|2|≥…≥|1n||n|则按A1的特征值绝对值的大小排序,有|n1||11n|≥…≥|11|对A1实行幂法,就可得A1的绝对值最大的特征值1/n和相应的特征向量,即A的绝对值最小的特征值和相应的特征向量。由于用A1代替A作幂法计算,因此该方法称为反幂法,反幂法的迭代格式6为v)(k=A1u)1(k,mk=max(v)(k),u)(k=v)(k/mk(2)2、对于反幂法的定理按式(2)计算出的mk和u)(k满足:klimmk=n1,klimu)(k=)max(nnxx在式(2)中,需要用到A1,这给计算带来很大的不方便,因此,把(2)式的第一式改为求解线性方程组Av)(k=u)1(k(3)但由于在反幂法中,每一步迭代都需求解线性方程组(3)式,迭代做了大量的重复计算,为了节省工作量,可事先把矩阵A作LU分解,即A=LU所以线性方程组(3)改为Ly)(k=u)1(k,Uv)(k=y)(k四、相关的数值结果(一)幂法程序的运行结果m=3.4142u=-0.7071index=11.0000-0.7071(二)反幂法程序的运行结果m0=0.5858u=0.7071index=11.00000.7071(三)矩阵A的二条件数的结果ⅡAⅡ2*ⅡA-1Ⅱ2=cond2(A)=m/m0=3.4142/0.5858=5.8282697五、数值计算结果的分析求n阶方阵A的特征值和特征向量,是实际计算中常常碰到的问题。对于n阶矩阵A,若存在数和n维向量x满足Ax=x(1)则称为矩阵A的特征值,x为相应的特征向量。由线性代数知识可知,特征值是代数方程|I-A|=n+a11n+…+a1n+an=0(2)的根。从表面上看,矩阵特征值与特征向量的求解问题似乎很简单,只需求解方程(2)的根,就能得到特征值,再解齐次方程组(I-A)x=0(3)的解,就可得到相应的特征向量。上述方法对于n很小时是可以的。但当n稍大时,计算工作量将以惊人的速度增大,并且由于计算带有误差,方程(2)未必是精确的特征方程,自然就不必说求解方程(2)与(3)的困难了。本次实验所用的幂法和反幂法分别是求解最大特征值和最小特征值,并根据它们的结果求解二条件数。幂法和反幂法的Matlab程序很好的解决了手算时所会遇到的麻烦。通过实验我们可以看到,幂法程序可以用来计算矩阵绝对值最大的特征值及相应的特征向量。幂法的缺点是开始的时候并不知道矩阵是否有单一的主特征值。也不知道如何选择x0以保证它关于矩阵特征向量的表达中包含一个与主特征值相关的非零特征向量。反幂法程序可以用来计算矩阵绝对值最小的特征值及相应的特征向量,反幂法的收敛是线性的,它是对幂法的修改,可以给出更快的收敛性。8六、附件(一)幂法程序/*幂法程序,函数名:pow.m*/function[m,u,index]=pow(A,ep,N)%A为矩阵;ep为精度要求;N为最大迭代次数;m为绝对值最大的特征值;u为对应最大特征值的特征向量。N=100;ep=1e-6;n=length(A);u=ones(n,1);index=0;k=0;m1=0;whilek=Nv=A*u;[vmax,i]=max(abs(v));m=v(i);u=v/m;ifabs(m-m1)epindex=1;break;endm1=m;k=k+1;end输入A=[2-10;-12-1;0-12];[m,u,index]=pow(A,1e-6)(二)反幂法程序/*反幂法程序,函数名:pow_inv.m*/function[m0,u,index]=pow_inv(A,ep,N)%A为矩阵;ep为精度要求;N为最大迭代次数;m0为绝对值最小的特征值;u为对应最小特征值的特征向量。N=100;ep=1e-6;n=length(A);u=ones(n,1);9index=0;k=0;m1=0;invA=inv(A);whilek=Nv=invA*u;[vmax,i]=max(abs(v));m0=v(i);u=v/m0;ifabs(m-m1)epindex=1;break;endm1m0;k=k+1;endm0=1/m0;输入A=[2-10;-12-1;0-12];[m0,u,index]=pow_inv(A,1e-6)10七、参考文献:(1)薛毅.数值分析与实验.北京工业大学出版社.2005(2)杜廷松等.数值分析及实验.科学出版社,2006(3)RichardL.Burden等.数值分析(第七版)高等教育出版社,200511数理系课程设计评分表课程名称:项目评价设计方案的合理性与创造性设计与调试结果设计说明书的质量答辩陈述与回答问题情况课程设计周表现情况综合成绩教师签名:日期:
本文标题:数值分析试验幂法与反幂法matlab
链接地址:https://www.777doc.com/doc-2387531 .html