幂法,反幂法求解矩阵最大最小特征值及其对应的特征向量_第1页
幂法,反幂法求解矩阵最大最小特征值及其对应的特征向量_第2页
幂法,反幂法求解矩阵最大最小特征值及其对应的特征向量_第3页
幂法,反幂法求解矩阵最大最小特征值及其对应的特征向量_第4页
幂法,反幂法求解矩阵最大最小特征值及其对应的特征向量_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、-. z.数值计算解矩阵的按模最大最小特征值及对应的特征向量一.幂法1. 幂法简介:当矩阵A满足一定条件时,在工程中可用幂法计算其主特征值(按模最大)及其特征向量。矩阵A需要满足的条件为:存在n个线性无关的特征向量,设为1.1计算过程:不全为0,则有可见,当越小时,收敛越快;且当k充分大时,有,对应的特征向量即是。2 算法实现3 matlab程序代码function t,y=lpowerA,*0,eps,N) % t 为所求特征值,y是对应特征向量 k=1; z=0; % z 相当于 y=*0./ma*(abs(*0); % 规化初始向量 *=A*y; % 迭代格式 b=ma*(*); % b

2、 相当于 if abs(z-b)eps & kN k=k+1; z=b; y=*./ma*(abs(*); *=A*y; b=ma*(*);end m,inde*=ma*(abs(*); % 这两步保证取出来的按模最大特征值 t=*(inde*); % 是原值,而非其绝对值。end4 举例验证 选取一个矩阵A,代入程序,得到结果,并与eig(A)的得到结果比拟,再计算 A*y-t*y,验证y是否是对应的特征向量。结果如下:结果正确,说明算法和代码正确,然后利用此程序计算15阶Hilb矩阵,与eig(A)的得到结果比拟,再计算 A*y-t*y,验证y是否是对应的特征向量。设置初始向量为*0=on

3、es(15,1),结果显示如下可见,结果正确。得到了15阶Hilb矩阵的按模最大特征值和对应的特征向量。二.反幂法1.反幂法简介及其理论在工程计算中,可以利用反幂法计算矩阵按模最小特征值及其对应特征向量。其根本理论如下,与幂法根本一样:,可知,A和A-1的特征值互为倒数,求A按模最小特征值即求A-1的按模最大特征值,取倒数即为A的按模最小特征值所以算法根本一样,区别就是在计算算法实现3 matlab程序代码function s,y=invpower(A,*0,eps,n) % s 为按模最小特征值,y是对应特征向量k=1;r=0; % r相当于y=*0./ma*(abs(*0); % 规化初始

4、向量L,U=lu(A);z=Ly;*=Uz;u=ma*(*);s=1/u; % 按模最小为A-1按模最大的倒数.if abs(u-r)eps & kn % 终止条件. k=k+1; r=u; y=*./ma*(abs(*); z=Ly; *=Uz; u=ma*(*); end m,inde*=ma*(abs(*); % 这两步保证取出来的按模最大特征值s=1/*(inde*); % 是原值,而非其绝对值。end4 举例验证同幂法一样,选取一个矩阵A,代入程序,得到结果,并与eig(A)的得到结果比拟,再计算 A*y-t*y,验证y是否是对应的特征向量。可见结果正确,然后利用此程序计算15阶Hi

5、lb矩阵,eig(A)的得到结果比拟,再计算 A*y-s*y,验证y是否是对应的特征向量。设置初始向量为*0=ones(15,1),结果显示如下可见,结果真确。得到了15阶Hilb矩阵的按模最大特征值和对应的特征向量。 计算条件数矩阵A的条件数等于A的数与A的逆的数的乘积,即cond(A)=AA(-1),对应矩阵的3种数,可以定义3种条件数。 函数 cond(A,1)、cond(A)或cond(A inf)是判断矩阵病态与否的一种度量,条件数越大说明矩阵的病态程度越大.,而如果A为对称矩阵,如Hilb矩阵,的最大最小特征值,分别为A的最大最小特征值的平方。所以cond(A) 为A的最大最小特征

6、值得比值。对于本例中的15阶Hilb矩阵来说,利用上面计算结果得其条件数(选择第二种条件数为:3.0934e+017;这与直接利用cond(A)得到的结果:2.5083e+017 在同一数量级,再次说明了上述算得得最大最小特征值的正确性,同时又说明Hilb矩阵是病态矩阵。Aitken商加速法简介与原理同幂法和反幂法计算最大和最小特征值类似,如果计算最大特征值,则迭代格式为;计算最小特征值时,迭代格式为。算法实现计算按模最大特征值算法如下:类似幂法和反幂法可以写出按模最小特征值算法,此处不再赘述。matlab 程序代码function r,y=aitken(A,*0,eps,n) % r按模最大

7、特征值,y为对应特征向量 k=1;a0=0; % a 相当于 a1=1; % a1 相当于 r0=1; % 相当于2中的 y=*0./ma*(abs(*0); % 规化初始向量 *=A*y;a2=ma*(abs(*); % a2相当于 r=a0-(a1-a0)2/(a2-2*a1+a0); % 相当于 if (a2-2*a1+a0)=0 % 假设上式中分母为0,则迭代失败,返回 disp 初始向量迭代失败return;end if abs(r-r0)eps & k0 |aa(inde*)=0 r=r;else r=-r; endend end类似可得按模最小特征值和特征向量的代码如下:与上面类

8、似,所不同的只是迭代格式不同.function r,y=invaitken(A,*0,eps,n) k=1;a0=0;a1=1; r0=1; y=*0./ma*(abs(*0); L,U=lu(A); % 迭代格式的不同 z=Ly; *=Uz;a2=ma*(abs(*); r=a0-(a1-a0)2/(a2-2*a1+a0); if (a2-2*a1+a0)=0 disp 初始向量迭代失败 return;end if abs(r-r0)eps & k0 |aa(inde*)=0 r=1/r;else r=-1/r; endend计算Hilb矩阵特征值此处不再举例,而是直接应用于15阶Hilb矩

9、阵,初始向量选为ones(15,1),结果如下,并将结果与幂法和反幂法得到结果比拟这与幂法得到的特征值和特征向量一致,说明算法和代码正确;同理,最小特征值结果如下:这与反幂法得到的结果一致,说明结果正确。五,对称矩阵的Rayleigh商加速法简介与原理原理如下:2. 算法实现Matlab程序代码function r,y=rayleigh(A,*0,eps,n) % r 是特征值,y是特征向量 k=1;r0=0; y=*0./ma*(abs(*0); *=A*y; % 迭代格式计算新的* r=dot(y,*)/dot(y,y); % Reyleigh商 if abs(r-r0)eps & kn k=k+1; r0=r; y=*./ma*(abs(*); *=A*y; r=dot(y,*)/dot(y,y); endend类似得计算按模最小特征值的Rayleigh商加速法,如下:function r,y=invrayleigh(A,*0,eps,n) k=1;r0=0; y=*0./ma*(abs(*0); L,U=lu(A); % 迭代格式不同 z=Ly; *=Uz; r=dot(y,*)/dot(y,y); if abs(r-r0)eps & kn k=k+1; r0=r; y=*./ma*(abs(*); z=Ly; *=Uz; r=dot(y

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论