- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数值分析大作业之2.
数值分析大作业二 算法设计方案 (一)算法流程 将要求解的矩阵进行Householder变换,进行拟上三角化,并输出拟上三角化的结果; 将拟上三角化后的矩阵进行带双步位移的QR分解(最大迭代次数1000次),逐个求出特征值,输出QR法结束后得到的Q、R、RQ阵,输出求出的特征值(用实部和虚部表示) 对于求出来的实特征值,使用带原点平移的反幂法求出对应的特征向量,输出这些特征向量。 (二)程序设计流程 1. 定义精度和最大迭代次数; 2. 使用容器vector进行编程(方便增减元素),使用传引用调用(提高执行效率); 3. 将各个步骤用到的数学算法封装成函数,方便调用。具体需要的函数如下: double VectMod(vector double p) :求向量的模 vector double NumbMultiVect(vector double vect, double a) :数乘向量 double VectMultiVect(vector double y, vector double u) :求两个向量的积 vector double ConveArraMultiVect(vector vector double B, vector double u) :矩阵的转置乘向量 vector double ArraMultiVect(vector vector double B, vector double u) :矩阵乘向量 vector vector double VectMultiCovVect(vector double a, vector double b) :向量乘向量转置得到矩阵 void ArraSubs(vector vector double C, vector vector double D) :两个矩阵相减 Vector double VectSubs(vector double a, vector double b) :两个向量相减 vectorvectordouble GetM(vectorvectordouble A) :求解矩阵M (用于双部位移QR迭代用) double GetMode(vector vector double B, const int r) :求解矩阵B的r列向量的模 double GetModeH(vector vector double B, const int r) :求解矩阵B的第r列向量的模,用于拟对角化 vector vector double NumbMultiArra(vector vector double D, double a) :一个实数乘矩阵 bool IsBirZeroH(vector vector double B, const int r) :判断B[i][r]对角线下是否为零 void GausElim(vector vector double a) :列主元高斯消元法求齐次方程解向量 void Stop(vector vector double Ar) :停止,结束程序 void SolutS1S2(complex double s1, complex double s2, vector vector double A) :求解二阶子阵的特征值s1,s2; void Save2(complex double s1, complex double s2) :保存两个特征值 void Save1(complex double s) :保存一个特征值 void JudgemBelow2(vector vector double A, vector vector double Abk) :对于m == 1 及m == 0 的处理 void Hessenberg(vector vector double A) :矩阵拟上三角化 void QRMethod(vector vector double A) :矩阵QR分解 void CalculatAk(vector vector double Ak) :带双步位移QR迭代法 源程序 #include stdafx.h #include vector #include iostream #include math.h #include complex #include fstream using namespace std; const double epsion = 1e-12; const int L = 1000; int m,n; int k
文档评论(0)