北航数值分析大作业2..docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
北航数值分析大作业2.

一、算法设计方案计算矩阵A对i,j=1到10执行i,j=1, …,n。设置标志量flag=0,flag=0表示A[i][r]全为零,flag=1表示A[i][r]不全为零。对r=1到n-2执行 (1) if |air|Epsilon,flag=1,转(2); (2) 计算 dr=sqrt(A[i][r]* A[i][r]) cr=--sgn(A[r+1][r]) hr = cr*(cr-A[r+1][r]); (3) 对i=r+1到n执行ur[i] = A[i][r]; ur[r+1] = ur[r+1]-cr; (4) 计算 pr=A’*ur/hr qr=A*ur/hr tr=pr’*ur/hr wr=qr-tr*ur A=A-wr*ur-ur*pr’ 3.对A(n-1)做双步位移QR分解 (1) 记A1=A(n-1)=A[i][j],令k=0,m=n; (2) if | A[m][m-1]=Epsilon|,则得到A的一个特征值Lamda[m][0]=A[m][m],置m=m-1,转(3);否则转(4); (3) if m=1,则得到A的一个特征值Lamda[m][0]=A[1][1],转(10);if m=0,则直接转(10);if m1,则转(2); (4) 求二阶子阵的两个特征值,即计算二次方程的两个根, x*x- s1[0]*x+ s2[0]=0 (*) 其中s1[0] = A[m-1][m-1]+A[m][m]; s2[0]= A[m-1][m-1]*A[m][m]-A[m-1][m]*A[m][m-1] (该过程可用求解二次方程子程序实现,注意讨论根的情况); (5) if m=2,则得到A的两个特征值,转(10);否则转(7); (6) if |A[m-1][m-2]) |=Epsilon,则得到A的两个特征根,置m=m-2,转(3);否则转(7); (7) if k=L,printf “Fail to get all the eigenvalues of matrix A!”;否则转(8); (8) 对i,j=1,…,m,计算 s= A[m-1][m-1]+A[m][m]; t= A[m-1][m-1]*A[m][m]-A[m-1][m]*A[m][m-1]; Mk[i][j] = Mk[i][j]-s*A[i][j]+t*I[i][j] Mk=Qk*Rk(对Mk作QR分解,可调用QR分解子程序) Ak+1=Qk’*Ak*Qk (9) 置k=k+1,转(2); (10) printf “Get all the eigenvalues of matrix A! Congratulations!”,停止计算。 Mk的QR分解算法: 记B[][N]=Mk[][N],C[][N]=A[][N],置flag=0(B[i][r]=0)。对r=1到m-1执行 (1) if |B[i][r]|=Epsilon,flag=1,转(2); (2) 计算 dr=sqrt(A[i][r]* A[i][r]) cr=--sgn(A[r+1][r]) hr = cr*(cr-A[r+1][r]); (3) 对i=r+1到m执行ur[i] = A[i][r]; ur[r+1] = ur[r+1]-cr; (4)计算 vr=Br’*ur/hr Br+1=Br-ur*vr’ pr=Crur/hr qr=Crr/hr tr=pr’*ur/hr wr=qr-tr*ur Cr+1=Cr-wr*ur-ur*pr’ (5) continue. 求二元一次方程算法: 置根Lamda[][3]={0}。对方程(*),令t1=s1[0];t2=s2[0]; 计算 delt = t1*t1-4*t2; sqdelt = sqrt(fabs(delt)); (2) if delt=0.0,则s1[0] = (t1+sqdelt)/2.0,s2[0] = (t1-sqdelt)/2.0;否则转(3); (3)置Lamda[m][2]=1; Lamda[m-1][2]=1; s1[0]=t1/2.0; s1[1]=sqdelt/2.0; s2[0]=t1/2.0; s2[1]=-sqdelt/2.0; 4.用列主元Gauss消去法求解实特征根对应的特征向量 (1) if Lamda[m][2]=0,转(2); (2) 调用GaussOptimal子程序; (3) printf “When the eigenvalue is %4.12e, the corresponding eigenvector is\n,Lamda[i][0]” GaussOptimal算法 记a1=aij,令b[N]

文档评论(0)

klfgk7s7fas + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档