资源描述:
《ul分解与高斯消元法实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、数值方法实验报告课程名称:LU分解法与高斯消元法学院:数学与财经学院专业:信息与计算科学(金融软件)年级:2011级姓名:郑荐学号:201102334023指导教师:李梦实验一【实验名称】实现LU算法,并利用该算法求解线性方程组【实验目的】了解如何用LU三角分解法解线性方程组,利用LU三角分解法解线性方程组【实验原理】设无行交换变换的高斯消去法可求解一般线性方程组AX=B,则矩阵A可分解为一个下三角矩阵L和一个上三角矩阵U乘积:A=LU而且L的对角线元素为1,U的对角线元素非零。得到L和U后,可通过如下步骤得到X:1.利
2、用向前替换法对方程组LY=B求解Y。2.利用回带法对方程组UX=Y求解X。【实验步骤】1.输入矩阵A2.LU分解A,得到L矩阵与U矩阵的值[LU]=LU_1(A)3.输入矩阵B,利用向前回带法求出Y值Y=upsub(L,B)4.利用回带发求出X值[X]=backsub(U,Y)【实验程序】1.LU分解代码:function[LU]=LU_1(A)n=length(A(1,:));L=eye(n);U=zeros(n);forj=1:nU(1,j)=A(1,j);endfori=2:nL(i,1)=A(i,1)/U(1,1
3、);endfork=2:nforj=k:nU(k,j)=A(k,j)-L(k,1:k-1)*U(1:k-1,j);endfori=k+1:nL(i,k)=(A(i,k)-L(i,1:k-1)*U(1:k-1,k))/U(k,k);endend结果:1.向前回带法代码:%向前代入法functionY=upsub(A,B)n=length(B);Y=zeros(n,1);Y(1)=B(1)/A(1,1);fork=2:nY(k)=(B(k)-A(k,1:k-1)*Y(1:k-1))/A(k,k);end结果:1.回带法代码:
4、%回代法function[X]=backsub(A,B)n=length(B);X=zeros(n,1);X(n)=B(n)/A(n,n);fork=n-1:(-1):1X(k)=(B(k)-A(k,k+1:n)*X(k+1:n))/A(k,k);end结果:【实验分析】LU分解法比较简便迅速,当解多个系数矩阵为A的线性方程做时,LU分解法就显得特别优越,只要对系数矩阵做一次LU分解,以后只要解三角形方程即可。也可以根据系数矩阵的形状来设计算法。实验二【实验名称】高斯消元法解线性方程组【实验目的】了解如何用高斯消元法解线
5、性方程组,利用高斯消元法解线性方程组【实验原理】消元过程:设,令乘数,做(消去第i个方程组的)操作×第1个方程+第i个方程(i=2,3,.....n)则第i个方程变为这样消去第2,3,。。。,n个方程的变元后。原线性方程组变为:这样就完成了第1步消元。回代过程:在最后的一方程中解出,得:再将的值代入倒数第二个方程,解出,依次往上反推,即可求出方程组的解:其通项为【实验步骤】1、输入A和b2、判断是否有解B=[Ab]ifRA6、做A(k,k)=0,breakfori=k+1:nL(i,k)=A(i,k)/A(k,k)A(i,k)=A(i,j)-L(i,k)*A(i,j)endend4、elseifRA=RB7、tion[RA,RB,n]=gaus(A,b)B=[Ab];n=length(b);RA=rank(A);RB=rank(B);rank_dif=RB-RA;ifrank_dif>0disp('RA~RB,此方程无解');return;endifRA==RBifRA==ndisp('RA=RB=n,次方程组有唯一解');X=zeros(n,1);forp=1:n-1fork=p+1:nm=B(k,p)/B(p,p);B(k,p:n+1)=B(k,p:n+1)-m*B(p,p:n+1);endendX=backsub(B(
8、1:n,1:n),B(1:n,n+1));Xelsedisp('RA=RB