资源描述:
《数值分析大作业二.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、数值分析大作业二学院:电子信息工程学院2系班级:SY14023班姓名:王健伟学号:SY1402303算法设计(1)A的拟上三角分解(2)①记A⑴,并记屮)的第广至第/1列的元素为%1若嶠(心厂+2,厂+3,…丿)全为零,则令A(r+1)=A(r转⑤;否则转③程序小若有元素大于epss,标志位flag=l;5=-sgn(«Xkr(^X=0,则取cr=dr)程序111ar+lr>epss,cr=-dr,否则=dr代替教材屮c,的符号取法%1知=(0,・・・,0卫乩-5%,・・・就))'〉川%1设置一个•11间变量vr[n]=冷/心,以节省计算量;q「=AC=PrVrCOr-qr-trurA^
2、=A^-CDruTr-urPrr将上述编写好的程序编译为头文件,命名为Qua_tri^dec.h;(2)使用矩阵的拟丄三角化算法把矩阵A化为拟上三角阵;给定经度水平epss和最大迭代次数Lo①因为c语言屮矩阵存储从下标0开始,因此记Ao=,令k=0?m=n-l,同吋其他的下标和循环数也要作相应的变化;%1如果
3、/仁』"丙八则得到A的一•个特征值卅)心,置m:二m・l(降阶),转③,否则转④。%1如果m=0,则得到矩阵A的一个特征值卅)⑷转⑩;如果m=-l,则直接转⑩;如果m〉0侧转②;%1求二阶子式「川律.八)]八加一1■加一1zn-1,mD,=a(k)a(k)_'m€mm-的两个特征根g
4、和6⑤如果m=l,则得到A的两个特征值®和转⑩,否则转⑥。⑥如果卅・“25、昭)(心『+1"+2,・・・,加)全为零,则令=B,.,Cr+1=CrM5;否则转2o2.计算6=-sgn旳乜(若岀“=0,则取°=<)h=C:_C,於)1.令知=(0,…,0,e-S,b几,…,C)fWRJ2.计算为了节省计算量程序屮定义'*=匚也,因此相应的有=Bg=Br-u工、Pr二=C;vrlqr=:CrVrlh=p;V八©•=Qr——C+l=Cr一(OrUTr一UrpTr(3)实特征值的求解%1可由lambda_I[i]6、的高斯列主元消去法编译成Guass_main.h文件,在程序屮调用函数为Guassmain().gudss_eliminiti()n();二程序清单(1)拟上三角分解函数的头文件函数#ifndefXINQUATRIDECHINCLUDED#defineXINQUATRIDECHINCLUDED#include#include#include#include#includeusingnamespacestd;classQua_tri_dec{private:inti,j,k,r,flag,n;doub
7、ledr,cr,hr,sum,tr;double*ur,*pr,*qi;*wr;public:voidsolution(int,double**);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]
8、=3;a[0][3]=4;a[l][O]=l;a[l][l]=-l;a[l]⑵=2;a[l][3]=l;a[2][0]=-l;a[2][l]=2同2H2]=1;a[2][3]=2;a⑶[0]=l;a[3][l]=0;a⑶[2]=-l;a[3][3]=3;a[0][0]=1;a[0][1]=2;a[0][2]=-1;a[0][3]=3;a[l][0]=3;a[l][l]=l;a[1][2]=0;a[l][3]=-l;a[2