《matlab之UL分解实验报告》由会员分享,可在线阅读,更多相关《matlab之UL分解实验报告(4页珍藏版)》请在金锄头文库上搜索。
1、计算机上机实验报告计算机上机实验报告课程名称:MATLAB 数值计算 教师姓名:谭小球 日期:2016 年 9 月 12 日 学号:150607116 学生姓名:李妙锋 班级:Z15 计算机 院系:数理与信息学院 实验题目:UL 分解实验报告1、实验名称、实验名称实现 LU 算法,并利用该算法求解线性方程组2、实验目的、实验目的了解如何用 LU 三角分解法解线性方程组,利用 LU 三角分解法解线性方程组3、实验原理、实验原理设无行交换变换的高斯消去法可求解一般线性方程组 AX=B,则矩阵 A 可分解为一个下三角矩阵 L 和一个上三角矩阵 U 乘积:A=LU而且 L 的对角线元素为 1,U 的对
2、角线元素非零。得到 L 和 U 后,可通过如下步骤得到X:1.利用向前替换法对方程组 LY=B 求解 Y。2.利用回带法对方程组 UX=Y 求解 X。4、实验步骤、实验步骤1.输入矩阵 A2.LU 分解 A,得到 L 矩阵与 U 矩阵的值 L U=LU_1(A)3.输入矩阵 B,利用向前回带法求出 Y 值 Y=upsub(L,B)4.利用回带发求出 X 值 X=backsub(U,Y)5、实验程序、实验程序1.LU 分解代码:function L U=LU_1(A)n=length(A(1,:);L=eye(n);U=zeros(n);for j=1:nU(1,j)=A(1,j);endfor
3、 i=2:nL(i,1)=A(i,1)/U(1,1);endfor k=2:nfor j=k:nU(k,j)=A(k,j)-L(k,1:k-1)*U(1:k-1,j);endfor i=k+1:nL(i,k)=(A(i,k)-L(i,1:k-1)*U(1:k-1,k)/U(k,k);endend结果:2.向前回带法代码:%向前代入法function Y=upsub(A,B)n=length(B);Y=zeros(n,1);Y(1)=B(1)/A(1,1);for k=2:nY(k)=(B(k)-A(k,1:k-1)*Y(1:k-1)/A(k,k);end结果:3.回带法代码:%回代法function X=backsub(A,B)n=length(B);X=zeros(n,1); X(n)=B(n)/A(n,n);for k=n-1:(-1):1X(k)=(B(k)-A(k,k+1:n)*X(k+1:n)/A(k,k);end结果:6、实验分析、实验分析LU 分解法比较简便迅速,当解多个系数矩阵为 A 的线性方程做时,LU 分解法就显得特别优越,只要对系数矩阵做一次 LU 分解,以后只要解三角形方程即可。也可以根据系数矩阵的形状来设计算法。