[工学]北航数值分析大作业 第二题 QR分解.doc

[工学]北航数值分析大作业 第二题 QR分解.doc

ID:11929381

大小:288.64 KB

页数:24页

时间:2018-07-15

[工学]北航数值分析大作业 第二题 QR分解.doc_第1页
[工学]北航数值分析大作业 第二题 QR分解.doc_第2页
[工学]北航数值分析大作业 第二题 QR分解.doc_第3页
[工学]北航数值分析大作业 第二题 QR分解.doc_第4页
[工学]北航数值分析大作业 第二题 QR分解.doc_第5页
资源描述:

《[工学]北航数值分析大作业 第二题 QR分解.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第二题:1.算法设计方案(一),算法流程(二),总体思路1,对要求解的矩阵进行拟对角化。2,拟对角化后对矩阵进行QR分解,得到Q和R;因为要求RQ,又因为23,故借鉴于拟上三角化时求时的迭代算法避免矩阵与矩阵相乘求得RQ。1,按照算法流程处理,将经常需要跳转到的m==1和m==0的判断及相应处理独立成函数,一旦需要跳转就调用该函数,从而避免goto带来的结构混乱。2,将求解特征向量以及结束时所需要处理的数据输出封装成Stop()函数,并在函数最后调用exit(0)结束程序运行,从而每到满足结束条件就调用Stop()保证程序结构化。3,对于每次m值变化,

2、均对A矩阵进行相关的降维处理,以节省计算量。4,求解特征向量的算法用解(得基础解系),求解过程中,遍历系数矩阵的每一列,统计出强制分量所在的列及对应列最大的非零行行号和自有分量对应列,然后依次对自有分量x其中一个赋值1,另一些赋值0,并解除对应得一个解,从而最终得到所有解。(三),功能分块程序设计中很多在不同的地方被多次被使用的小的功能代码被封装成函数,具体功能见头源文件注释。(四),函数接口本程序中矩阵都是利用二维向量(vector)存贮,相比于数组,可以灵活的动态改变长度。由于矩阵A需要多次重复使用,所以大多数函数里面都是按值传递的,而对于能够按照

3、引用来传递的都是用了引用以提高执行效率。1.源代码//MifaTest.cpp:定义控制台应用程序的入口点。///**********************************************************Author:FunctionList:vector>GetM(vector>&A):求解矩阵M(用于双部位移QR迭代用)doubleVectMultiVect(vector&y,vector&u):求向量积doubleGetMode(

4、vector>&B,constintr):求解矩阵B的第r列向量的模doubleGetModeH(vector>&B,constintr):求解矩阵B的第r列向量的模,用于拟对角化vector>NumbMultiArra(vector>&D,doublea):一个实数乘矩阵boolIsBirZeroH(vector>&B,constintr):判断B[i][r]对角线下是否为零doubleVectMod(

5、vector&p):求向量的模23vectorConveArraMultiVect(vector>&B,vector&u):矩阵的转置乘向量vectorArraMultiVect(vector>&B,vector&u):矩阵乘向量vectorNumbMultiVect(vector&vect,doublea):数乘向量vector>VectMultiCo

6、vVect(vector&a,vector&b):向量乘向量转置得到矩阵voidArraSubs(vector>&C,vector>D):两个矩阵相减vectorVectSubs(vector&a,vector&b):两个向量相减voidGausElim(vector>a):列主元高斯消元法求齐次方程解向量voidStop(vector>&Ar):停止,结

7、束程序voidSolutS1S2(complex&s1,complex&s2,vector>&A):求解s1,s2;voidSave2(complex&s1,complex&s2):保存两个特征值voidSave1(complex&s):保存一个特征值voidJudgemBelow2(vector>&A,vector>Abk):对于m==1及m==0的处理voidHessenberg(

8、vector>&A):矩阵拟上三角化voidQRMethod(v

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

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

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