欢迎来到天天文库
浏览记录
ID:36452122
大小:67.50 KB
页数:13页
时间:2019-05-10
《北航数值分析大作业第二次QR分解》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、目标:使用带双步位移的QR分解法求矩阵的全部特征值,并对其中的每一个实特征值求相应的特征向量。已知:(i,j=1,2,……,10)算法:1)输入需要求解的矩阵首先输入需要求解的矩阵。即为下述程序中的voidcreaA()子程序。2)对上述生成的矩阵进行拟上三角化为了减少求特征值和特征向量过程中的计算量,在对矩阵进行QR分解前先进行拟上三角化。由于矩阵的QR分解不改变矩阵的结构,所以具有拟上三角形状的矩阵的QR分解可以大大极少计算量。在下述程序中用voidhess()子程序来实现。3)对拟上三角化后的矩阵进行QR分解。为了直观的了解普通的
2、QR分解过程及结果,下述程序中用voidAQR()子程序来对拟上三角化过后的A阵进行QR分解,并输出Q阵R阵RQ阵。4)对拟上三角化后的矩阵进行带双步位移的QR分解。子程序voidQRmeth()实现对拟上三角化后的A阵进行带双步位移的QR分解,得出特征值并输出,并用子程序voidgauss()对其中的实数特征值进行求解,得出对应的特征向量。5)输出相关结果。源程序:#include#include#include#defineL2500#definen11#definee0.000
3、000000001inti,j,s,p,k,ik;doubleA[n][n],q[n][n],r[n][n],rq[n][n],I[n][n];doubleP[n],W[n],u[n],Q[n];doubledr,cr,hr,ar,tr;intnR,nC;doubles1,t,x,tzR[n],tzC[2][n],sum,M[n][n],v[n];voidcreaA()////生成矩阵A{for(i=1;i<11;i++){for(j=1;j<11;j++){if(j!=i)A[i][j]=sin(0.5*i+0.2*j);elseA[
4、i][j]=1.5*cos(i+1.2*j);}}}voidhess(){for(s=1;s0)cr=-dr;elsecr=dr;hr=cr*cr-cr*A[s+1][s];for
5、(i=1;i<=s;i++)////生成u向量u[i]=0.0;u[s+1]=A[s+1][s]-cr;for(i=s+2;i6、1;i7、}}voidAQR(){doubleu[n],w[n],F[n];for(s=1;s0)cr=-dr;elsecr=dr;hr=cr*cr-cr*r[s][s];for(i=1;i8、or(i=s+1;i
6、1;i7、}}voidAQR(){doubleu[n],w[n],F[n];for(s=1;s0)cr=-dr;elsecr=dr;hr=cr*cr-cr*r[s][s];for(i=1;i8、or(i=s+1;i
7、}}voidAQR(){doubleu[n],w[n],F[n];for(s=1;s0)cr=-dr;elsecr=dr;hr=cr*cr-cr*r[s][s];for(i=1;i8、or(i=s+1;i
8、or(i=s+1;i
此文档下载收益归作者所有