数值分析计算实习一.doc

数值分析计算实习一.doc

ID:49655609

大小:64.00 KB

页数:8页

时间:2020-03-03

数值分析计算实习一.doc_第1页
数值分析计算实习一.doc_第2页
数值分析计算实习一.doc_第3页
数值分析计算实习一.doc_第4页
数值分析计算实习一.doc_第5页
资源描述:

《数值分析计算实习一.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、数值分析计算实习一一.算法描述:1.矩阵压缩存储:题屮耍求的矩阵是带宽为5的实对称矩阵,为节省存储空间,将501阶方阵A存储到5*501的矩阵a屮。A屮元素街对应到压缩矩阵屮的元素为q(t+2)j。在程序屮使用create函数创建压缩后的矩阵。2.计算最大和最小特征值:(1)使用幕法计算矩阵A的模最大的特征值(powermethod函数)Amaxlo(3)(2)矩阵A-心切1的特征值恰为A中每一个特征值减去心m(其屮I是单位阵)。使用幕法计算矩阵A-心的模最大的特征值,记为Amax20Amax2+Amaxl是矩阵A的与乂1Z差最大的特征值。^^maxl>0,则久501=^m

2、axl>右=^max2+^maxl>台则久501—^maxl>久1—久7nax2+^maxl>3.计算模最小的特征值:(1)对矩阵A进行Doolittle分解(doolittle函数)。(2)使用反幕法计算AsGnvpowermethod函数)。反幕法的计算过稈需要使用Doolittle分解结果并用inverse函数I叫代解方程。4.计算与冷=右+k气尹最接近的心心是矩阵A-似啲模最小的特征值。用反幕法进行计算。5.计算行列式detA:对矩阵A进行Doolittle分解后得到对角线元全为1的下三角阵L和上三角阵UodetA=detL*detll0即detA等于存储Dooli

3、ttle分解结果的矩阵的对角线元相乘。6.计算(谱范数)条件数cond(A):因为A是实对称矩阵,

4、

5、刹2=応忑呵即人的谱范数等于為m的绝对值。cond(A)=Amaxl/As二.计算程序源代码:#include#include#includedoublepowermethod(double**a);//幕法,返冋模最人的特征值doubleinvpowermethod(double**a);//反幕法,返冋模垠小的特征值,参数是炬阵人的Doolittle分解结果voiddoolittle(double**a);//用

6、Doolittle方法voidinverse(double**a,double*u,double*y);//冋代解力程voidcreate(double**a);//创建压缩存储的炬阵Ainimain(void){double**a;inti,k;doubleLrnax,Lniin,Ls;doubledetA=l;doublecondA;doublemu,Lk,LI,L501;FILE*fp;fp=fopen("out","a+");〃将计算结果输出到文件out中a=(double**)malloc(5*sizeof(double*));for(i=0;i<5;i++)a[

7、i]=(double*)malloc(501*sizeof(double));create(a);Lmax=powermethod(a);//幕法求出模最大的特征值I.maxfor(i=0;i<501;i++)a[2][i]-=Lniax;Iin=powermethod(a)+Lmax;for(i=0;i<501;i++)a[2][i]+=Lmax■dooliLtle(a);〃对矩阵Dec】iMl巳分解以进行反幕法计算,分解的结杲存储在a屮for(i=0;i<501;i++)detA*=a[2][i];//计算A的行•列貞Ls=invpowermelhod(a);condA

8、=Lmax/Ls;//(谱范数)条件数的计算方法是A模最大的特征值乘以A的逆屮模最大的特征值(即X的倒数)if(tmax>0)•_Ll=Lmin;L501=Lmax;}else{L1=Lmax;L501=Lniin;}fprintf(fp,"LI=%.12ELs=%.12EL501=%e,z,LI,Ls,L501);fprintf(fp,z"detA=%.12EcondA=%.12E",detA,condA);fprintf(fp,"输出Lk:");for(k=l:k<40;k++){mu=Ll+k*(L501-Ll)/40;create(a);fo

9、r(i=0;i<501;i++)a⑵[i]-二mu;doolittle(a);Lk=invpowermethod(a);fprintf(fp,,,L%d=%.12E,/,k,Lk+mu);}return1;}doubleinvpowermethod(double**a){doubleu[501],y[501];doublen,betaO,betai,e;inti,k;beta0=0;betal=l;e=0.OOOOOOOOOOOl;for(i=0;i<501;i++)u[i]=0.1;for(k=0;fabs(

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

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

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