数值分析题目二

数值分析题目二

ID:46242016

大小:127.54 KB

页数:14页

时间:2019-11-22

数值分析题目二_第1页
数值分析题目二_第2页
数值分析题目二_第3页
数值分析题目二_第4页
数值分析题目二_第5页
资源描述:

《数值分析题目二》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、数值分析(B)第二题院系:学号:姓名:E-mail:手机:1・算法设计方案本题在设计时将题目所要求的求出的未知量分装为各个子函数,要求哪个未知数只需要在主函数屮调用即可,每个了函数的存储空间都是动态的,执行完了函数时将立即释放,存储空间最大的为2个10乘10的double型矩阵1.求拟上三介化矩阵算法:voidHessenberg(ucharm,doubleA[n][n])输入:a.,(z,y=1,2,-••,/?);(1)对k=,2,…,n-2做1)构造初等反射矩阵Rk=1-p?叫u:使Rkck=-;16=sign(dz)(£a:)2;i+12。if0』工血+』t

2、hen做=aMk+6;知=a从;(j=R+2,…②®F畑;③%=_6;2)约化计算A^HkAHk,Hk=;‘()Rk即计算人】21°左变换:A22RkA22②Vj=》igj/Pk(j=k+l,…,小;i+1②aij=%=£+…,);2。右变换:7?①匕二工4旳/久(心1,2,•••/);j=k^②ai}=a.._叱勺(J=R+1,…,〃);⑶输出:旬(,J=1,2,•••/),结束。1.在对4("-1)进行QR分解时算法基本与拟上三角化过程相同voidQRfenjiefdoubleA[n][n])o2.本题采用的求特征值时与书上冇所不同,此方法可以不需要求矩阵M即可

3、得ll!Ak+1函数voidQRdouble(ucharm,doubleA[n][n])首先來看一下这个定理:定理设Q,t/均是正交矩阵,且QtAQ=AX9UtAU=A2,而£,生均为不可约上Hessenberg矩阵,如果Q与U第一列相同,则出与码“本质与相同”,即A2=D^A.D,其中D=diag(±l,±l,…,±1)。根据定理我们将双步隐式QR算法改进如下:(1)计算M的第一列Me!⑵确定Householder矩阵H。,使H⑶确定Householder矩阵%出,...凡一2,将矩阵HoAH。约化为上Hessenberg矩阵,即H-2…丹20(H°AHJHH2…

4、晔2=A_〜T若记Q=HH・・.Hz,上式即为0AQ⑷输入:上Hessenberg矩阵元素知(iJ=1,2,•••,〃),(“A3);计算:S=an--+%;'=an--ann~9=d]+ana2i-sax,+/;m21二021(®]+。22一$);加31=。2禺32;⑸构造正交对称矩阵H(),作正交相似变换H()AH()记兀=(的],加21,加31)构造Householder矩阵/?0,b=signO]i)7^22+m2[+®];ux=mxx+cr;w2=m21;w3=m31;p=cr(“]+tr);/?0=I_p'uJ;令p=min(H,4)计算左变换

5、:A(l:3,l:n)=/?0*A(l:3,l:n);右变换:A(l:p,l:3)=A(l:p,l:3)*/?0;2.构造对称正交矩阵7,比,…匕—2,约化矩阵A为上Hessenberg矩阵即调用拟上三角化函数算法voidHessenberg(ucharm,doubleA[n][n])4•求特征值算法voideigfdoubleA[n][n])If特征值数量<70则执行以下循环1)if<£then输出特征值近似解d加且m=m-1转(3);2)ifm=l输出特征值近似解即结束计算;ifm=0结束计算;否则转⑴;3)计算二阶矩阵G=所对应的特征值22,且m=m-2;4)i

6、fm=1then输出G=1112对应的特征值,A2,停止计算。CL1dec5)if他弘』V£then输出二阶矩阵G=心心"加-1/n所对应的特征值不人,Um=m-2否则转26)if特征值个数g!=10则调用第三个子函数voidQRdouble(ucharm,doubleA[n][n])5求取特征向量采用高斯消去法。程序如下:#include”iostream.h”#include,,math.h"#include"iomanip.h"#defineucharunsignedchar#definen10#define_min(a,b)(((a)>(b))?(b):(a

7、))#definewuchadoubleeigenvalue[n][2]={0};doublex[n]={0};ucharflag=l;charsgn(doublea){if(a>0)return1;elsereturn-1;}voidlnitialMatrixA(doubleA[n][n],doubler){uchari,j;for(i=0;i<10;i++)for(j=0;j<10;j++){if(i!可)A[i]0]=sin(O.5*(i+l)+O.2*(j+l));elseA[i][j]=1.5*cos((i+l)+1.2*(j+l))-r;

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

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

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