资源描述:
《实验五线性方程组地迭代法实验》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实用标准文案《计算方法》实验报告学院:信息学院专业:计算机科学与技术指导教师:郭卫斌班级学号:10101438计102姓名:闻翰计算机科学与工程系文档大全实用标准文案实验五线性方程组的迭代法实验一.实验目的(1)深入理解线性方程组的迭代法的设计思想,学会利用系数矩阵的性质以保证迭代过程的收敛性,以及解决某些实际的线性方程组求解问题。(2)熟悉Matlab编程环境,利用Matlab解决具体的方程求根问题。二.实验要求建立Jacobi迭代公式、Gauss-Seidel迭代公式和超松弛迭代公式,用Matlab软件实现线性方程组求解的Jacobi迭代法、Gauss-Seidel迭代法和超松弛迭代
2、法,并用实例在计算机上计算。三.实验内容1.实验题目(1)分别利用Jacobi迭代和Gauss-Seidel迭代求解下列线性方程组,取,要求精度:(2)分别取、1.05、1.1、1.25和1.8,用超松弛法求解上面的方程组,要求精度为。2.设计思想1.Jacobi迭代:Jacobi迭代的设计思想是将所给线性方程组逐步对角化,将一般形式的线性方程组的求解归结为对角方程组求解过程的重复。2.Gauss-Seidel迭代:Gauss-Seidel迭代的设计思想是将一般形式的线性方程组的求解过程归结为下三角方程组求解过程的重复。3.超松弛迭代:基于Gauss-Seidel迭代,对i=1,2,…反
3、复执行计算迭代公式,即为超松弛迭代。3.对应程序1.Jacobi迭代:function[x,k]=Jacobimethod(A,b,x0,N,emg)%A是线性方程组的左端矩阵,b是右端向量,x0是迭代初始值文档大全实用标准文案%N表示迭代次数上限,emg表示控制精度,k表示迭代次数,x是解n=length(A);x1=zeros(n,1);x2=zeros(n,1);x1=x0;k=0;r=max(abs(b-A*x1));whiler>emgfori=1:nsum=0;forj=1:nifi~=jsum=sum+A(i,j)*x1(j);endendx2(i)=(b(i)-sum)/
4、A(i,i);endr=max(abs(x2-x1));x1=x2;k=k+1;ifk>Ndisp('迭代失败,返回');return;endendx=x1;2.Gauss-Seidel迭代:function[x,k]=Gaussmethod(A,b,x0,N,emg)%A是线性方程组的左端矩阵,b是右端向量,x0是迭代初始值%N表示迭代次数上限,emg表示控制精度,k表示迭代次数,x是解n=length(A);x1=zeros(n,1);x2=zeros(n,1);x1=x0;r=max(abs(b-A*x1));k=0;whiler>emgfori=1:nsum=0;forj=1:n
5、ifj>i文档大全实用标准文案sum=sum+A(i,j)*x1(j);elseifjNdisp('迭代失败,返回');return;endendx=x1;3.超松弛(SOR)迭代:function[x,k]=SORmethod(A,b,x0,N,emg,w)%A是线性方程组的左端矩阵,b是右端向量,x0是迭代初始值%N表示迭代次数上限,emg表示控制精度,k表示迭代次数,x是解%w表示松弛因子n=length
6、(A);x1=zeros(n,1);x2=zeros(n,1);x1=x0;r=max(abs(b-A*x1));k=0;whiler>emgfori=1:nsum=0;forj=1:nifj>=isum=sum+A(i,j)*x1(j);elseifjNdisp('迭代失败,返回');return;endendx=x1;4.实验结果1.Jacobi迭代:2.Gauss-Se
7、idel迭代:文档大全实用标准文案3.超松弛(SOR)迭代:w=1:w=1.05:文档大全实用标准文案w=1.1:w=1.25:文档大全实用标准文案w=1.8:三.实验体会在同等精度下,Gauss-Seidel迭代法比Jacobi迭代法收敛速度快。一般来说,Gauss-Seidel迭代法比Jacobi迭代法收敛要快,但有时反而比Jacobi迭代法要慢,而且Jacobi迭代法更易于优化。因此,两种方法各有优缺点,使用时要根据所需适当选