数值分析大作业一

数值分析大作业一

ID:14152987

大小:170.35 KB

页数:16页

时间:2018-07-26

数值分析大作业一_第1页
数值分析大作业一_第2页
数值分析大作业一_第3页
数值分析大作业一_第4页
数值分析大作业一_第5页
资源描述:

《数值分析大作业一》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、数值分析大作业一幂法反幂法求矩阵特征值2014.11尤万龙PT1400133数值分析大作业一题目:设有501*501的实对称矩阵A其中,,b=0.16,c=-0.064。矩阵A的特征值,并且有1.求的值2.求A的与数最接近的特征值。3.求A的(谱范数)条件数和行列式。算法设计1.由于C语言中数组角标都是从0开始的,所以在数组MatrixC[5][501]中检索A的带内元素aij的方法是:A的带内元素aij=C中的元素ci-j+2,j。2.由于λ1‹λ2‹…‹λ501,所以在以所有特征值建立的数轴上,λ1、λ501位于数轴的两端,两者之一必为按模最大。利用幂法

2、,可以求出来按模最大的特征值,但该值可能为λ1也可能为λ501;3.上步求出按模最大的特征值λM后,将原矩阵平移λM,再利用幂法求一次平移后矩阵的按模最大的特征值,即是数轴上另一端点值λM′。4.比较λM与λM+λM′的大小,大的为矩阵A的最大特征值,小的为A矩阵的最小的特征值;5.利用反幂法,求矩阵A的按模最小的特征值。但是反幂法中要用到线性方程组的求解,而原矩阵A又是带状矩阵,采用LU分解。所以在这之前要定义一个LU分解子程序,将A矩阵分解为单位下三角矩阵L和上三角矩阵U的乘积。1.先利用循环求出k从1到39变化的uk的值。当循环次数为39时,在每次循环

3、时都将压缩后的矩阵A的第三行减去相应的,然后调用LU分解的子程序,利用反幂法求出与uk最接近的特征值,该特征值等于利用反幂法求出的值与uk的和。2.A的谱范数条件数等于按模最大的特征值的绝对值与按模最小的特征值的绝对值之比,按模最大的特征值与按模最小的特征值已分别在前面求出。3.A的行列式的值就是矩阵A进行LU分解后U的对角线元素的乘积。先把带状线性矩阵A[501][501]转存为一个矩阵c[5][501].源程序/*headerfilecomheader.h*/#ifndefCOMHEADER_H_INCLUDED#defineCOMHEADER_H_IN

4、CLUDED#include#include#include#include//#include"matrixfuc.h"usingnamespacestd;constintcolumn_size=501;constdoubleErr=1.0e-12;#endif/*matrixfunctionclassdeclarematrixfuc.h*/#pragmaonce#include"comheader.h"classmatrixfuc{public:matrixfuc(void);~mat

5、rixfuc(void);doublematrix_init();doublepower_eig();doubleinvpower_eig(doubleMatB[5][column_size]);voidmatrix_LU(doubleMatB[5][column_size]);doublematA[5][column_size];};/*realizationofmatrixfucmatrixfuc.cpp*/#include"matrixfuc.h"intint_max2(inta,intb);intint_min2(inta,intb);intint_

6、max3(inta,intb,intc);matrixfuc::matrixfuc(void){}matrixfuc::~matrixfuc(void){}/*初始化矩阵*/doublematrixfuc::matrix_init(void){inti,j;for(i=0;i<5;i++)for(j=0;j

7、

8、i==4){matA[i][j]=-0.064;}elseif(i==1

9、

10、i==3){matA[i][j]=0.16;}elseif(i==2){matA[i][j]=(1.64-0.024*(j+1

11、))*sin(0.2*(j+1))-0.64*exp(0.1/(j+1));}}matA[0][0]=matA[0][1]=matA[1][0]=0;matA[3][500]=matA[4][500]=matA[4][499]=0;return(matA[i][j]);}doublematrixfuc::power_eig(){doubleu[column_size],unitu[column_size];doublesum,lengthu,beta,temp;inti,j;beta=0.0;for(i=0;i

12、/*迭代初始向量*/do{temp=beta;sum

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

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

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