您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 数值线性代数课程设计资料
数值线性代数课程设计报告(2014-2015第二学期)姓名:王美玲学号:081310104任课教师:杨熙南京航空航天大学2015年6月18Jacobi迭代法,Gauss-Seidel迭代法,SOR迭代法求解线性方程组的数值效果比较摘要:Jacobi迭代法,Gauss-Seidel迭代法,SOR迭代法是三种经典的用于求解线性方程组的迭代方法,本文主要对这三种方法的数值逼近效果进行比较。关键词:Jacobi迭代法;Gauss-Seidel迭代法;SOR迭代法;线性方程组线性方程组的求解方法可归纳为直接法和迭代法。迭代法中有三种最为经典的迭代方法,就是Jacobi迭代法,Gauss-Seidel迭代法和SOR迭代法。然而三种方法的收敛性,近似解的逼近效果有不同。本文将对三种方法求解线性方程组的迭代效果做相应探讨。设有线性方程组Ax=b,A为非奇异矩阵,求x的近似解,三种迭代方法如下。1.Jacobi迭代法算法:(1)选取初始点,精度要求ep,最大迭代次数N,初始化迭代次数k=0。(2)由Jacobi迭代法计算公式计算点。(3)相对误差err小于等于精度要求ep时,输出作为方(k+1)(0)xxx(k+1)程的近似解。(4)=,k=k+1,转步骤(2)。2.Gauss-Seidel迭代法算法:(1)选取初始点,精度要求ep,最大迭代次数N,初始化迭代次数k=0。(2)由Gauss-Seidel迭代法计算公式计算点。(3)相对误差err小于等于精度要求ep时,输出作为方程的近似解。(4)=,k=k+1,转步骤(2)。3.SOR迭代法算法:(1)选取初始点,精度要求ep,最大迭代次数N,初始化迭代次数k=0。(2)由SOR迭代法计算公式计算点。(k+1)(0)(k+1)(0)x(k)x(k+1)xxx(k+1)x(k)x(k+1)xx(3)相对误差err小于等于精度要求ep时,输出作为方程的近似解。(4)=,k=k+1,转步骤(2)。上述三种经典迭代法收敛的充分必要条件是迭代矩阵谱半径小于1。谱半径不易求解,而在一定条件下,通过系数矩阵A的性质可判断迭代法的收敛性。定理1:若系数矩阵A是严格对角占优或不可约对角占优,则Jacobi迭代法和Gauss-Seidel迭代法均收敛。定理2:(1)SOR迭代法收敛的必要条件是0w2;(2)若系数矩阵A严格对角占优或不可约对角占优且0w1,则SOR迭代法收敛。w=1时,SOR迭代法退化为Gauss-Seidel迭代法。数值例子及分析:(1)生成随机矩阵10x10维严格对角占优矩阵A,右端随机向量b。系数矩阵A是严格对角占优,所以Jacobi迭代法和Gauss-Seidelx(k+1)x(k)x(k+1)迭代法均收敛。Jacobi迭代次数为3。Gauss-Seidel迭代次数为3。SOR迭代法:当w取0到1时,收敛,迭代次数递减,w=1时迭代次数为3;w取1到2时,迭代次数递增;w大于等于2时迭代次数超过最大迭代次数500,不收敛。多次计算可得出计算速度JacobiGauss-SeidelSOR。(2)A=b=12-2111132215Jacobi迭代法,迭代矩阵谱半径为0,小于1,收敛,迭代次数3。Gauss-Seidel迭代法,迭代矩阵半径为2,大于等于1,不收敛。(3)A=b=2-111111311-25Jacobi迭代法,迭代矩阵谱半径5/2,大于等于1,不收敛。Gauss-Seidel迭代法,迭代矩阵半径为1/2,小于1,收敛,迭代次数为23。参考文献:[1]汪仲文.解线性方程组的迭代方法之比较.喀什:喀什师范学院学报,第29卷第6期,2008年11月[2]徐树方.数值线性代数.北京:北京大学出版社,1995.[3]马昌凤.现代数值分析.北京:国防工业出版社.2013.[4]刘春凤,米翠兰.实用数值分析教程.北京冶金工业出版社.2006附录:源代码1.Jacobi迭代法function[x,k]=myjacobi(A,b,x,ep,N)%雅可比迭代法解线性方程组Ax=b%A为系数矩阵,b为右端向量,x为初始向量(默认为零向量),ep为精度%N为最大迭代次数(默认最大值为500),x为近似解,k为迭代次数clearkx;ifnargin5N=500;Endifnargin4ep=1e-6;endifnargin3x=zeros(size(b));endD=diag(diag(A));fork=1:Nx=D\((D-A)*x+b);err=norm(b-A*x)/norm(b);iferrepbreakendendend2.Gauss-Seidel迭代法function[x,k]=myseidel(A,b,x,ep,N)%高斯-赛德尔迭代法解线性方程组Ax=b%A为系数矩阵,b为右端向量,x为初始向量(默认为零向量),ep为精度%N为最大迭代次数(默认最大值为500),x为近似解,k为迭代次数clearkx;ifnargin5N=500;endifnargin4ep=1e-6;endifnargin3x=zeros(size(b));endD=diag(diag(A));L=D-tril(A);U=D-triu(A);fork=1:Nx=(D-L)\(U*x+b);err=norm(b-A*x)/norm(b);iferrepbreak;endend3.SOR迭代法function[x,k]=mysordd(A,b,w,x,ep,N)%超松弛迭代法(SOR)解线性方程组Ax=b%w为松弛因子%A为系数矩阵,b为右端向量,x为初始向量(默认为零向量),ep为精度%N为最大迭代次数(默认最大值为500),x为近似解,k为迭代次数clearkx;ifnargin6N=500;endifnargin5ep=1e-6;endifnargin4x=zeros(size(b));endifnargin3w=0.8;endD=diag(diag(A));L=D-tril(A);U=D-triu(A);fork=1:Nx=(D-w*L)\(((1-w)*D+w*U)*x+w*b);err=norm(b-A*x)/norm(b);iferrepbreak;endend
本文标题:数值线性代数课程设计资料
链接地址:https://www.777doc.com/doc-2402025 .html