数值分析实习第二题.docx

数值分析实习第二题.docx

ID:60836593

大小:693.50 KB

页数:23页

时间:2020-12-21

数值分析实习第二题.docx_第1页
数值分析实习第二题.docx_第2页
数值分析实习第二题.docx_第3页
数值分析实习第二题.docx_第4页
数值分析实习第二题.docx_第5页
资源描述:

《数值分析实习第二题.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、数值分析实习第二题一、算法设计方案1.采用C语言进行算法设计输出。2.由于矩阵A的为10×10的矩阵,所以采用双步位移的QR分解法求矩阵A的全部特征值。3.先对矩阵A进行初始化赋值。4.先采用Householder矩阵将矩阵A拟上三角化,得到矩阵A(n-1)。5.为了完成题目要求,减少运算次数,此时运行独立函数QR_UP_HE()另外声明3个10×10局部的二维数组变量Q,R,RQ对A(n-1)进行一次QR分解,得到相对应的矩阵Q,R和乘积矩阵RQ,用于输出。6.之后开始用双步位移法求解矩阵A的特征值。在求解过

2、程中,遇到解一元二次方程组,采用数组S_Re[2]来存根的实数部分,用数组S_Im[2]来存根的虚数部分,用公式r=s2±s24-t来求解方程x2-sx+t=0。QR分解时候选用精度ε=10-12,不限制最大迭代次数。7.将双步位移的判断逻辑进行合理设定如下:1)变量m从9(采用10维数组)开始循环运算,当m小于零的时候即认为QR分解完成,结束循环。2)先判断m是否为零,若为零,那么A[0][0]即为最后一个特征值,结束循环。否则继续。3)之后判断A[m][m-1]的绝对值是否小于精度要求,若小于,则认为A[m

3、][m]即为其中一个特征值,运算维数降为m–1,跳过这次循环。否则继续。1)此时求二阶子阵Dk=A[m-1][m-1]A[m-1][m]A[m][m-1]A[m][m]的两个特征值s1和s2。2)此时如果m=1,那么这就是A剩下的最后两个特征值,结束循环。否则继续。3)如果A[m-1][m-2]的绝对值小于精度要求,那么即可判断s1和s2是A的其中两个特征值,运算维数降为m–2,跳过这次循环。否则继续。4)上述判断完之后,即可开始用双步位移的QR分解法循环求A得全部特征值了。1.全部特征值求得后,将其打印出来,

4、之后开始求A的相应于实特征值的特征向量。特征向量采用解方程组(λI-A)X=0的方法进行,先用Gauss列主元的方法,将A上三角化。由于b为0,所以不用记录A对角化过程中的行交换的次序。2.在反解X的过程中,需先判断A的行是否全为0(即小于一个精度值,程序中精度值定为ε=10-9,取太小会导致程序判断出错,从而得出错误的特征值)。若最后一行不为零,则对特征向量X的最后一个值赋1,即X=[0,0,0,…,0,1],若倒数第二行也不为零,则对特征向量X的倒数第二行的值也赋1,以此类推。3.之后回代X,得到其中的一个

5、特征向量X。然后将其归一化,即可输出。一、运算结果1.矩阵经过拟上三角化后得到的矩阵1.进行QR分解后所得到的矩阵Q、R和乘积矩阵RQ1.矩阵的全部特征值1.相应于特征值的特征向量一、源程序#include#include#include#defineEPS1.0e-12#defineN10doubleA[N][N];doubleLambda_Re[N];doubleLambda_Im[N];voidINI_A(void)//矩阵A进行赋值{chari,j;

6、for(i=0;i

7、charRow,charStr,charEnd,doubleMat[][N])//求矩阵A中列向量的模{charn;doublenorm;for(n=Str,norm=0;n

8、ector_2[n]*Vector_2[n]);}return(sqrt(norm_2));}charSP_SGN(doubles)//取符号{if(s>0){return(1);}else{return(-1);}}doubleVECT_T_VEC(charMax_N,doubleVector_T[],doubleVector[])//向量转置乘向量{charn;doublepowe

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

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

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