北航数值分析1-Jacobi法计算矩阵特征值.doc

北航数值分析1-Jacobi法计算矩阵特征值.doc

ID:53365380

大小:75.90 KB

页数:11页

时间:2020-04-03

北航数值分析1-Jacobi法计算矩阵特征值.doc_第1页
北航数值分析1-Jacobi法计算矩阵特征值.doc_第2页
北航数值分析1-Jacobi法计算矩阵特征值.doc_第3页
北航数值分析1-Jacobi法计算矩阵特征值.doc_第4页
北航数值分析1-Jacobi法计算矩阵特征值.doc_第5页
资源描述:

《北航数值分析1-Jacobi法计算矩阵特征值.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、数值分析2015/11/10准备工作Ø算法设计矩阵特征值的求法有幂法、Jacobi法、QR法等,其中幂法可求得矩阵按模最大的特征值(反幂法可求得按模最小特征值),Jacobi法则可以求得对称阵的所有特征值。分析一:由题目中所给条件λ1≤λ2≤…≤λn,可得出λ1、λn按模并不一定严格小于或大于其他特征值,且即使按模严格小于或大于其他特征值,也极有可能出现

2、λs

3、<λ1

4、<

5、λn

6、或

7、λs

8、<λn

9、<

10、λ1

11、的情况,导致按幂法和反幂法无法求解λ1或λn二者中的一者;分析二:题目要求求解与数μk=λ1+k(λn-λ1)/40最接

12、近的特征值λik(k=1,2,3…39),这个问题其实可以转换为求A-μk按模最小的特征值的问题,但因为在第一个问题中无法确定能肯定的求得λ1和λn,所以第二个问题暂先搁浅;分析三:cond(A)2=

13、

14、A

15、

16、*

17、

18、A-1

19、

20、=

21、λ

22、max*

23、λ

24、min,这可以用幂法和反幂法求得,det(A)=λ1*λ2*…*λn,这需要求得矩阵A的所有特征值。由以上分析可知,用幂法和反幂法无法完成所有问题的求解,而用Jacobi法求得矩阵所有特征值后可以求解题目中所给的各个问题。所以该题可以用Jacobi法求解。Ø模块设计由Jacobi法

25、的经典4步骤,设计以下模块:矩阵初始化模块voidinit(double*m)迭代模块查找非对角线最大模voidfind_pq(double*m)计算旋转角度voidcalCosSin(double*m)更新矩阵voidrefreshMextrix(double*m)计算最终结果模块voidcalFinal(double*m)Ø数据结构设计由于矩阵是对称阵,上下带宽均为2,所以可以考虑用二维数组压缩存储矩阵上半带或下半带。但由于Jacobi法在迭代过程中会破坏矩阵的形态,所以原来为零的元素可能会变为非零,这就导致原来的二维数

26、组无法存储迭代后的矩阵。基于此的考虑,决定采用一维数组存储整个下三角阵,以此保证迭代的正确进行。完整代码如下(编译环境windows10+visualstudio2010):11数值分析2015/11/10完整代码//math.cpp:定义控制台应用程序的入口点。//#include"stdafx.h"#include#include#include#defineN501#defineV(N+1)*N/2+1#definee2.718281828459045235360287

27、471352662497757247093699959574966967627724076630353#definea(i)(1.64-0.024*(i))*sin(0.2*(i))-0.64*pow(e,0.1/(i))#defineb0.16#definec-0.064#defineepspow((double)10.0,-12)#definePFbits"%10.5f"#definePFrols5#definePFe%.11e#defineFK39intp;intq;doublecosz;doublesinz;doub

28、leMAX;intkk;//#definePTSpts11数值分析2015/11/10#ifdefPTSvoidPTS(double*m){printf("-----------------------------------------------------------------------");printf("迭代第%d次",kk);for(inti=1;i<=PFrols;i++){for(intj=(i-1)*i/2+1;j<=(i+1)*i/2;j++){printf(PFbits,m[j]);}put

29、char(10);}for(inti=1;i<=PFrols+1;i++){printf("...");}putchar(10);printf("..");printf("..");printf("..");for(inti=1;i<=PFrols+2;i++){printf("...");}putchar(10);}#elsevoidPTS(double*m){}#endifvoidrecounti(inti,int*pp,int*qq){for(intj=0;j<=N-1;j++){if((i-(j+1)*j

30、/2)<=j+1){*pp=j+1;11数值分析2015/11/10*qq=i-(j+1)*j/2;break;}}}voidrefreshMetrix(double*m){intipr,ipc,iqr,iqc;m[(p+1)*p/2]=m[(p+1)*p/2]*pow(cosz,2)+m

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。