- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数值分析第一次大作业 10091038
数值分析第一次大作业王昕飏法的设计方案A中多处为0,所以可将A[501][501]以压缩存储为C[5][501]来节省空间。由题中λ1λ2……λ501,所以λ1和λ501中必有一个是按模最大的特征值,于是通过幂法求出记为a,在通过原点平移的方法,记B=A-aI,则此时另外一个就成为了按模最大的特征值。记b=B的幂法求出的特征值,令b=b+a。则此时对a正负进行判断。若a0,则λ501为a,λ1=b,否则相反。由于λs是A中按模最小的特征值,所以可由反幂法得到lamdas。采用doolittle分解法将A分解成L、U。A的条件数cond(A)2=|A的按模最大特征值/A的按模最小特征值|=|a/lamdas|。在1中将A进行LU分解时,得到的矩阵U的对角线乘积就是A的行列式。求与每个μk最接近的特征值,通过原点平移的方法,B=A-μk*I。则此时与其最接近的特征值λik变成B按模最小的特征值,于是通过反幂法求解再加上μk于是就得到λik。源代码#includeiostream#includemath.h#includestdio.h#includestdlib.husing namespace std;int Max(int value1,int value2);int Min(int value1,int value2);void Transform(double A[5][501]);double mifa(double A[5][501]);void daizhuangdoolite(double A[5][501],double x[501],double b[501]);double fanmifa(double A[5][501]);double Det(double A[5][501]);/***定义2个判断大小的函数便于以后调用***/int Max(int value1,int value2){ return((value1value2)?value1:value2);}int Min(int value1,int value2){ return ((value1value2)?value1:value2);}void Transform(double A[5][501],double b,double c){ int i=0,j=0; A[i][j]=0,A[i][j+1]=0; for(j=2;j=500;j++) A[i][j]=c; i++; j=0; A[i][j]=0; for(j=1;j=500;j++) A[i][j]=b; i++; for(j=0;j=500;j++) A[i][j]=(1.64-0.024*(j+1))*sin(0.2*(j+1))-0.64*exp(0.1/(j+1)); i++; for(j=0;j=499;j++) A[i][j]=b; A[i][j]=0; i++; for(j=0;j=498;j++) A[i][j]=c; A[i][j]=0,A[i][j+1]=0;}double mifa(double A[5][501]){ int s=2,r=2,m=0,i,j; double b2,b1=0,sum,u[501],y[501]; for (i=0;i=500;i++) { u[i] = 1.0; } do { sum=0; if(m!=0)b1=b2; m++; for(i=0;i=500;i++) sum+=u[i]*u[i]; for(i=0;i=500;i++) y[i]=u[i]/sqrt(sum); for(i=0;i=500;i++) { u[i]=0; for(j=Max(i-r,0);j=Min(i+s,500);j++) u[i]=u[i]+A[i-j+s][j]*y[j]; } b2=0; for(i=0;i=500;i++) b2=b2+y[i]*u[i]; } while(fabs(b2-b1)/fabs(b2)=exp(-12)); return b2;}//带状DOOLITE分解并且求解出方程组的解void daizhuangdoolite(double A[5][501],double x[501],double b[501]){ int i,j,k,t,s=2,r=2; double B[5][501],c[501]; for(i=0;i=4;i++) { for(j=0;j=500;j++) B[i][j]=A[i][j]; } for(i=0;i=500;i++) c[i]=b[i]; for(k=0;k=500;k++) {
您可能关注的文档
最近下载
- 2025中信银行信用卡中心银川分中心招聘笔试备考试题及答案解析.docx
- 2025年金华职业技术学院单招职业倾向性测试题库及参考答案.docx VIP
- 武汉市2025届高中毕业生四月调研考试(四调)数学试卷(含答案).pdf
- 陕西西安市长安城乡建设开发公司招聘笔试题库2024.pdf VIP
- MEMS传感器和智能传感器的发展.docx VIP
- 中学英语课堂教育教学评价策略的研究结题报告.docx
- 运筹学(中国人民解放军陆军工程大学)中国大学MOOC慕课章节测验答案.pdf
- 内蒙古风能、太阳能资源.doc VIP
- 金丽衢十二校2024学年2025届高三第二次联考生物试卷(含答案).pdf
- 《中医骨伤科学》课件—— 肘关节脱位.pptx VIP
文档评论(0)