资源描述:
《实验1 线方程组的数值解法.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、重庆大学学生实验报告实验课程名称计算方法开课实验室数统学院实验室学院机械工程年级2011专业班机自一班学生姓名林凯学号20112340开课时间2012至2013学年第二学期总成绩教师签名课程名称计算方法实验项目名称线性方程组的数值解法实验项目类型验证演示综合设计其他指导教师胡小兵成绩√1.实验目的:(1)高斯列主元消去法求解线性方程组的过程(2)熟悉用迭代法求解线性方程组的过程(3)设计出相应的算法,编制相应的函数子程序2.实验内容分别用高斯列主元消去法,Jacobi迭代法,Gauss--Sai
2、del迭代法,超松弛迭代法求解线性方程组3.计算实例、数据。1)%Gauss列主元A=[2100-3;-3-4-1213;123-4;4149-13];B=[10;5;-2;7];A1=A;[n,n]=size(A);A(:,n+1)=B;fork=1:n[l,m]=max(abs(A(k:n,k)));ifm~=1temp=A(k,:);A(k,:)=A(k+m-1,:);A(k+m-1,:)=temp;endfori=1:nifi~=kA(i,:)=A(i,:)-A(k,:)*A(i,k)/
3、A(k,k);endendendfori=n:(-1):1A(i,:)=A(i,:)/A(i,i);enddisp(A(:,n+1));2)%JacobiA=[2100-310;-3-4-12135;123-4-2;4149-137];[n,m]=size(A);x=zeros(n,1);y=zeros(n,1);eps=1e-5;k=0;while1disp(x');fori=1:1:ns=0.0;forj=1:1:nifj~=is=s+A(i,j)*x(j);endy(i)=(A(i,n+1
4、)-s)/A(i,i);endendfori=1:1:nmaxeps=max(0,abs(x(i)-y(i)));endifmaxeps<=epsfori=1:1:nx(i)=y(i);endreturn;endfori=1:1:nx(i)=y(i);y(i)=0.0;endk=k+1;ifk>500error('ewrong');return;endend3)Gauss—SaidelA=[2100-310;-3-4-12135;123-4-2;4149-137];[n,m]=size(A);x
5、=zeros(n,1);y=zeros(n,1);z=zeros(n,1);eps=1e-5;k=0;while1disp(x');fori=1:1:ns=0.0;forj=1:1:nifj~=is=s+A(i,j)*z(j);endy(i)=(A(i,n+1)-s)/A(i,i);z(i)=y(i);endendfori=1:1:nmaxeps=max(0,abs(x(i)-y(i)));endifmaxeps<=epsfori=1:1:nx(i)=y(i);endreturn;endfori
6、=1:1:nx(i)=y(i);y(i)=0.0;endk=k+1;ifk>50error('ewrong');return;endend4)%超松弛迭代法%A=[2100-3;-3-4-1213;123-4;4149-13];%B=[10;5;-2;7];A=[531;274;238];B=[14;28;32]w=1.45;Maxtime=100;Eps=1e-5;formatlong;n=length(A);k=0;x=ones(n,1);y=x;while1y=x;disp(x');for
7、i=1:ns=B(i);forj=1:nifj~=is=s-A(i,j)*x(j);endendifabs(A(i,i))8、k>=Maxtimeerror('wrong')return;ends=s/A(i,i);x(i)=(1-w)*x(i)+w*s;endifnorm(y-x,inf)9、(4)=4.0000经过1验证,结果正确。对2,3,4方法不收敛。错误分析迭代法收敛的充要条件是ρ(Bj)<1ρ(Bj)=max(abs(eig(Bj)))=3.9412>1于是迭代法不收敛。5.实验结论经过这次实验,对高斯列主元消去法等求解线性方程组的过程有了初步了解,设计出了相应的算法,编制了相应的函数子程序。教师签名年月日