实验4 解线性方程组实验(2).doc
上传人:sy****28 上传时间:2024-09-11 格式:DOC 页数:3 大小:31KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

实验4 解线性方程组实验(2).doc

实验4解线性方程组实验(2).doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

实验4解线性方程组实验(2)成绩专业班级数学112学号姓名报告日期4.12.实验类型:●验证性实验○综合性实验○设计性实验实验目的:进一步熟练掌握用LU分解法解线性方程组的算法,提高编程能力和解算线性方程组问题的实践技能。实验内容:用LU分解法解线性方程组实验原理:LU分解法(也叫杜立特尔分解法)实验步骤1要求上机实验前先编写出程序代码2编辑录入程序3调试程序并记录调试过程中出现的问题及修改程序的过程4经反复调试后,运行程序并验证程序运行是否正确。5记录运行时的输入和输出。实验总结实验报告:根据实验情况和结果撰写并递交实验报告。参考程序1.自己编写的程序①建立zhangyueLU.m函数程序文件,内容如下:function[L,U,x]=zhangyueLU(A,b)%矩阵A的LU分解,LU=Adisp('Ifthereisanyproblem,pleasecommunicatewithzhangyueforhelp.')[nm]=size(A);L=eye(n);fori=1:n-1forj=i+1:nL(j,i)=A(j,i)/A(i,i);fork=i:nA(j,k)=A(j,k)-A(i,k)*L(j,i);endendendU=A;%LU分解法解线性方程组Ax=b[nm]=size(A);fori=2:nforj=1:i-1b(i)=b(i)-L(i,j)*b(j);endendx(n)=b(n)/U(n,n);fork=n-1:-1:1s=0;forj=k+1:ns=s+U(k,j)*x(j);endx(k)=(b(k)-s)/U(k,k);end②在commandwindow里按照如下操作,得结果:>>A=[24-6;153;132]A=24-6153132>>b=[-4;10;5]b=-4105>>[L,U,x]=zhangyueLU(A,b)Ifthereisanyproblem,pleasecommunicatewithzhangyueforhelp.L=1.0000000.50001.000000.50000.33331.0000U=24-6036003x=-3212.书上的参考程序,仅做参考①建立lufact.m程序文件,如下:functionX=lufact(A,B)[N,N]=size(A);X=zeros(N,1);Y=zeros(N,1);C=zeros(1,N);R=1:N;forp=1:N-1%Findthepivotrowforcolumnp[max1,j]=max(abs(A(p:N,p)));%InterchangerowpandjC=A(p,:);A(p,:)=A(j+p-1,:);A(j+p-1,:)=C;d=R(p);R(p)=R(j+p-1);R(j+p-1)=d;ifA(p,p)==0'Aissingular.Nouniquesolution'breakend%CalculatemultiplierandplaceinsubdiagonalportionofAfork=p+1:Nmult=A(k,p)/A(p,p);A(k,p)=mult;A(k,p+1:N)=A(k,p+1:N)-mult*A(p,p+1:N);endend%SolveforYY(1)=B(R(1));fork=2:NY(k)=B(R(k))-A(k,1:k-1)*Y(1:k-1);end%SolveforXX(N)=Y(N)/A(N,N);fork=N-1:-1:1X(k)=(Y(k)-A(k,k+1:N)*X(k+1:N))/A(k,k);end②在commandwindow里按照如下操作,得结果:>>A=[24-6;153;132];>>B=[-4;10;5];>>X=lufact(A,B)X=-321