数值分析幂法课程设计用幂法求矩阵的最大特征值_第1页
数值分析幂法课程设计用幂法求矩阵的最大特征值_第2页
数值分析幂法课程设计用幂法求矩阵的最大特征值_第3页
数值分析幂法课程设计用幂法求矩阵的最大特征值_第4页
数值分析幂法课程设计用幂法求矩阵的最大特征值_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、课 程 设 计 报 告课程名称 计算方法课程设计 课题名称 用幂法求矩阵的最大特征值 专 业 班 级 学 号 姓 名 指导教师 目录1.设计内容与设计要求32. 问题的描述及算法设计43. 算法的流程图44. 算法的理论依据及其推导45. 相关的数值结果86. 数值计算结果的分析9 7.附件10 8.总结12一、设计内容与设计要求1设计内容: 对课程计算方法中的常见算法进行综合设计或应用(具体课题题目见后面的供选题目)。2设计要求:l 课程设计报告正文内容a. 问题的描述及算法设计;b. 算法的流程图(要求画出模块图);c. 算法的理论依据及其推导;d. 相关的数值结果(通过程序调试),;e.

2、 数值计算结果的分析;f. 附件(所有程序的原代码,要求对程序写出必要的注释)。l 书写格式a要求用a4纸打印成册b正文格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。c正文的内容:正文总字数要求在3000字左右(不含程序原代码)。d封面格式如下页。l 考核方式指导老师负责验收程序的运行结果,并结合学生的工作态度、实际动手能力、创新精神和设计报告等进行综合考评,并按优秀、良好、中等、及格和不及格五个等级给出每位同学的课程设计成绩。具体考核标准包含以下几个部分:a平时出勤 (占10%)b系统需求分析、功能设计、数据结构设计及程序总体结构合理与否(占10%)c程序能

3、否完整、准确地运行,个人能否独立、熟练地调试程序(占40%)d设计报告(占30%)注意:不得抄袭他人的报告(或给他人抄袭),一旦发现,成绩为零分。e独立完成情况(占10%)。l 课程验收要求a判定算法设计的合理性,运行相关程序,获得正确的数值结果。b回答有关问题。c提交课程设计报告。d提交软盘(源程序、设计报告文档)。e依内容的创新程度,完善程序情况及对程序讲解情况打分。3、进度安排1、 班级: 信息与计算科学:0501、0502、05032、 主讲教师:聂 存 云3、 辅导教师:聂 存 云、赵 钍 焱4、 时间安排:第 16 周 星期一 8时:00分16时:30分 星期三 8时:00分16时

4、:30分 星期五 8时:00分16时:30分 星期天 8时:00分11时:00分二、 问题的描述及算法设计 对于给定矩阵a用幂法求解矩阵a的最大特征值;本算法用于求矩阵按模最大的特征值及其相应特征向量。程序执行后,先通过键盘输入矩阵、迭代初值向量、精度控制和迭代允许最大次数,程序即可给出每次迭代的次数和对应的迭代特征值、特征向量及误差序列,它们都按10位有效数输出。其中最后输出的结果即为所求的特征值和特征向量序列。如果迭代超出次还没有求出满足精度的根则输出迭代超限提示,此时可以根据输出序列判别收敛情况。三、 算法的描述;(1)输入矩阵、初始向量,误差;(2);(3)计算;(4);(5);(6)

5、如果,则显示特征值和对应的特征向量),终止; (7),转(3)注:如上算法中的符号表示取向量中绝对值最大的分量。本算法使用了数据规范化处理技术以防止计算过程中出现益出错误。四、 算法的理论依据及其推导; 幂法是通过求矩阵特征向量来求出特征值的一种迭代法.其基本思想是:若我们求某个n阶方阵a的特征值和特征向量,先任取一个初始向量x(0),构造如下序列: x(0) ,x(1) =ax(0) ,x(2) =ax(1) , x(k) =ax(k+1) , 当k增大时,序列的收敛情况与绝对值最大的特征值有密切关系,分析这一序列的极限,即可求出按模最大的特征值和特征向量. 假定矩阵a有n个线性无关的特征向

6、量.n个特征值按模由大到小排列: 1=2=n 其相应的特征向量为: v1 ,v2 , ,vn 它们构成n维空间的一组基.任取的初始向量x(0)由它们的线性组合给出 x(0)=a1v1+a2v2+anvn 由此知,构造的向量序列有 x(k) =ax(k-1) = a2x(k-2) =akx(0) = a11kv1+a2 2kv2+annkvn 下面按模最大特征值1是单根的情况讨论: 由此公式(5)可写成 x(k) = 1k (a1v1+a2 (2/1)kv2+an(n/1)kvn ) 若a10,由于|i/1 |1 (i2),故k充分大时, x(k) = 1k (a1v1+k) 其中k为一可以忽略

7、的小量,这说明x(k)与特征向量v1相差一个常数因子,即使a1=0,由于计算过程的舍入误差,必将引入在方向上的微小分量,这一分量随着迭代过程的进展而逐渐成为主导,其收敛情况最终也将与相同。特征值按下属方法求得: 1 xj(k+1)/ xj(k) 其中xj(k+1), xj(k)分别为x(k+1),x(k)的第j各分量。 实际计算时,为了避免计算过程中出现绝对值过大或过小的数参加运算,通常在每步迭代时,将向量“归一化”即用的按模最大的分量 max |xj(k)| 1jn去除x(k)的各个分量,得到归一化的向量y(k),并令x(k+1) = ay(k)由此得到下列选代公式 : y(k) = x(k

8、)/ x(k) x(k+1) = ay(k) k=0,1,2, 当k充分大时,或当 x(k)- x(k+1)时, y(k)v1 max |xj(k)| 1 1jn五、 相关的数值结果(通过程序调试),; 六、 数值计算结果的分析;对于同一个矩阵,给定不同的处值及精度计算出的结果如下七、 附件 #include #include#include#define eps 1e-6int main() float maxline(float* p); float matrix1616 = 0 , x16 = 0 , init16 = 0 , fore16 = 0; float maxcv = 0 ,

9、eps2 = 100; int i = 0 , j = 0 , t = 0 , col = 0; printf(the matrixs col is : ); scanf(%d , &col); printf(the matrix is n); for(i = 0 ; i col ; i +) for(j = 0 ; j col ; j +) scanf(%f , &matrixij); printf(the init is n); for(i = 0 ; i col ; i +) scanf(%f , &initi); for(j = 0 ; j 10 ; j +) maxcv = maxl

10、ine(init); for(i = 0 ; i col ; i +) xi = (initi / maxcv); for(i = 0 ; i col ; i +) printf(%.4ft , initi); printf(t%.4ftt , maxcv); for(i = 0 ; i col ; i +) printf(%.4ft , xi); for(i = 0 ; i col ; i +) forei = initi; initi = 0; for(t = 0 ; t col ; t +) initi += (matrixit * xt); if(fabs(initi - forei) eps2) eps2 = fabs(initi - forei); printf(n); if(eps2 eps) break; getch();float maxline(float* p) float max = 0; int i = 0; for(i = 0 ; *(p + i) != 0 ; i +) if(max *(p + i) max = *(p + i); return max;八,总结 在这次的编程练习中我学到了很多东西,在多次的c编程中我学会了种种不同的有效

温馨提示

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

评论

0/150

提交评论