资源描述:
《数值分析大作业二》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、数值分析大作业二学院:电子信息工程学院2系班级:SY14023班姓名:王健伟学号:SY1402303一算法设计(1)A的拟上三角分解(2)①记A(,)=A,并记屮)的第厂至第〃列的元索为=1,2,=+•••,«)②若〃:)(心r+2,r+3,…丿)全为零,则令屮小=4巴转⑤;否则转③程序中若有元素大于cpss,标志位flag=l;③当flag二1时,执行乙=5=-sgn(a乩比(若°乩=0,则取c「=dr)程序屮ar+lr>epss,cr=~dr,否则=d/.代替教材屮c,的符号取法④知=(o,
2、…,o4i-»,%,・・・4?)%/r⑤设置一个11'间变量Vr[/7]=ur/hr9以节省计算量;初=AA^=A{r}-coruTr-urpTr将上述编写好的程序编译为头文件,命名为Qua_tri_dcc.h;(2)使用矩阵的拟上三角化算法把矩阵A化为菽上三角阵;给定经度水平epss和最大迭代次数Lo①因为c语言中矩阵存储从下标0开始,因此记£)=4("7,令k=0,m=n-l,同时其他的下标和循环数也耍作相应的变化;②如果则得到A的一个特征值卅仁,置降阶),转③,否则转④。②如果m=0,则得
3、到矩阵A的一个特征值/人转⑩;如果则直接转⑩;如果m>0;则转②;③求二阶子式的两个特征根$1和吐⑤如果m=l,则得到A的两个特征值必和归,转⑩,否则转⑥。⑥如杲卅・片24、k(对,忍作0?分解)^k+i=Q:AkQk⑩计算结束为了简化算法,其中,Mr的0/?分解与A如的计算用下列算法实现:记B严M厂[砖)]mxm,B,=[磅)]mxmC=儿。对于厂=1,2,・・・,加-1执行1.若硝)(—+1,厂+2,…,加)全为零,则令瓦+1=8応冲=:,转5;否则转2o2.计算drC「==o,则取。=<)h=4一Crbrr)3.令知=(0,・・皿)一5%・・・,4?畑"。1.计算为了节省计算量程序中定义因此札I应的有5=b宀1Bp+i=Br-urvTrPr二=C>rlqr==
5、CrvrlG=P:V八0=s・一—C-+1-C一3ru[一UrpTr(1)实特征值的求解①可由lambda_/[z]
6、7、CHINCLUDED#defineXINQUATRIDECHINCLUDED#include#include#include#include#includeusingnamespacestd;classQua_tri_dec{private:inti,j,k,r,flag,n;doubledicr,hr5sum,tr;double*ur,*pr,*qi;*wr;public:voidsolution(i
8、nt4ouble**);Qua_tri_dec(){flag=0;}〜Qua_tri_dec()//释放空间{delete[]ur;delete[]pr;delete[]qr;delete[]wr;}};voidQua_tri_dec::solution(intn,double**a){ur=newdouble[n];pr=newdouble[n];qr=newdoublefn];wr=newdoublefn];/*a[0][0]=2;a[0][l]=l;a[0][2]=3;a[0][3]=4;
9、a[l][0]=l;a[l][l]=-l;a[l][2]=2;a[l][3]=1;a⑵[0]=-l;a⑵[l]=2;a⑵⑵=l;a[2]⑶=2;a[3][0]=l;a[3][l]=0;a⑶⑵=l;a⑶⑶=3;a[0][0]=l;a[0][l]=2;a[0][2]=-l;a[O][3]=3;a[l][0]=3;a[l][l]=l;a[l][2]=0;a[l][3]=-l;a⑵[0]=0;a[2][l]=l;a[2][2]=l;a[2][3]=-l;a⑶[0]=4;a[3][l]=l;a[3][2]