幂法与反幂法(共6页).doc

上传人:飞****2 文档编号:13740971 上传时间:2022-05-01 格式:DOC 页数:6 大小:108.50KB
返回 下载 相关 举报
幂法与反幂法(共6页).doc_第1页
第1页 / 共6页
幂法与反幂法(共6页).doc_第2页
第2页 / 共6页
点击查看更多>>
资源描述

《幂法与反幂法(共6页).doc》由会员分享,可在线阅读,更多相关《幂法与反幂法(共6页).doc(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上幂法与反幂法1 功能幂法是一种计算矩阵主特征值(矩阵按模最大的特征值)及对应特征向量的迭代方法, 特别是用于大型稀疏矩阵。反幂法用来计算矩阵按模最小的特征值及其特征向量,也可用来计算对应与一个给定近似特征值的特征向量。2算法描述2.1 幂法(1)取初始向量u(例如取u=(1,1,1)),置精度要求,置k=1. (2)计算v=Au,m=max(v), u= v/ m(3)若| m= m|,则停止计算(m作为绝对值最大特征值,u作为相应的特征向量)否则置k=k+1,转(2)2.2 反幂法(1)取初始向量u(例如取u=(1,1,1)),置精度要求,置k=1. (2)对A作L

2、U分解,即A=LU(3)解线性方程组 Ly=u,Uv=y(4)计算 m=max(v), u= v/ m(5) 若|m=m|,则停止计算(1/m作为绝对值最小特征值,u作为相应的特征向量);否则置k=k+1,转(3).3 Matlab程序的实现3.1 幂法functionm,u=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;while k=N v=A*u;vmax,i=max(abs(v); m=v(i);u=v

3、/m; if abs(m-m1)ep index=1;break;end m1=m;k=k+1;end输入:A=7 3 -2;3 4 -1;-2 -1 3;m,u=pow(A,1e-6) Enter结果:m = 9.6056 u =1.0000 0.6056 -0.39444.2 反幂法functionm ,u=pow_inv(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;invA=inv(A);while k=N v

4、=invA*u;vmax,i=max(abs(v); m =v(i);u=v/ m ; if abs(m-m1) A=rand(5) %随机产生5*5矩阵 求随机矩阵A = 0.7094 0.1626 0.5853 0.6991 0.1493 0.7547 0.1190 0.2238 0.8909 0.2575 0.2760 0.4984 0.7513 0.9593 0.8407 0.6797 0.9597 0.2551 0.5472 0.2543 0.6551 0.3404 0.5060 0.1386 0.8143 B=A+A %A矩阵和A的转置相加,得到随机对称矩阵BB = 1.4187

5、0.9173 0.8613 1.3788 0.8044 0.9173 0.2380 0.7222 1.8506 0.5979 0.8613 0.7222 1.5025 1.2144 1.3467 1.3788 1.8506 1.2144 1.0944 0.3929 0.8044 0.5979 1.3467 0.3929 1.6286B=5 C语言程序实现#include stdio.h#include math.h#define M 3void main()float fan(),max(),e1,e2,r1,r2;void au(),ex(),print_x(),std();static f

6、loat aMM=1.0,1.0,0.5,1.0,1.0,0.25,0.5,0.25,2.0;static float u0M,u1M,maxn0,maxn1;int i;printf(*n);printf(* 幂法 *n);printf(*求特征值与特征向量*n);printf(*nn);printf(input precision e1,e2:);scanf(%f,%f,&e1,&e2);printf(ninput u(%d):,M);for (i=0;ie1 | r2e2)printf(%4d,i+);print_x(u0);printf(n);ex(u0,u1);elsebreak;

7、while (1);void au(a,u0,u1)float aM,u0,u1;int i,j;for (i=0;iM;i+)u1i=0;for (j=0;jM;j+)u1i+=aij*u0j;void std(u)float u;int i;float t,max();t=max(u);for (i=0;iM;i+) ui=ui/t;float fan(u0,u1)float u0,u1;float max();int i;float uuM;for (i=0;iM;i+)uui=u0i-u1i;return max(uu);float max(u)float u;int i;float m;m=u0;for (i=0;im)m=ui;return m;void ex(u0,u1)float u0,u1;int i;for (i=0;iM;i+)u0i=u1i;void print_x(u)float u;int i; for (i=0;iM;i+)printf(%12.6f,ui);6 C程序示例调用用幂法求 A= 的特征值和特征向量。运行结果如下:专心-专注-专业

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁