§8.4 解线性方程组的超松弛迭代法法

合集下载

超松弛迭代法中松弛因子ω的选取方法

超松弛迭代法中松弛因子ω的选取方法

超松弛迭代法中松弛因子ω的选取方法一、超松弛迭代算法基本概念超松弛迭代法简称为SOR(Successive Over -- Relaxation)法,是求解线性代数方程组的一种迭代加速方法,它是在高斯--塞德尔迭代法的基础上进行加速的,将前一步的结果x k i )(与高斯--塞德尔迭代方法的迭代值x k i )1(+适当的加权平均,期望获得更好的近似值x k i )1(+。

其迭代公式如下:x k i )1(+=(1--ω)x k i )(+a iiw (b i --x a k j i j ij )1(11+-=∑--x a j n i j ij (k)∑=) i =1,2,…,n;k =0,1,2,…(1.1)SOR 法中ω的取值对迭代公式的收敛速度影响很大,它的好坏直接影响到加速的快慢。

为了保证迭代过程的收敛,必须要求0<ω<2,超松弛法取1<ω<2。

但是在1和2之间仍然有很多的取值,究竟如何取值没有同意的规定。

经过多次的实验、分析与研究提出了ω选取的几种方法。

二、松弛因子ω的选取方法1、逐步实验法将ω的取值区间(1,2)进行M 等分,ω分别取1+1/M ,1+2/M ,……,1+(M--1)/M ,通过公式1.1依次对同一精度要求求出迭代次数k 的值,在求的同时比较出最少的迭代次数k ,并将此次ω的值保留,这样就得到了1+1/M ,1+2/M ,……,1+(M--1)/M 中最优的ω值,算法步骤如下:第一步:给定M 的值第二步:对于,ω分别取1+1/M ,1+2/M ,……,1+(M--1)/M 按照公式 x k i )1(+=(1--ω)x k i )(+a iiw (b i ---x a k j i j ij )1(11+-=∑---x a j n i j ij (k)∑=) i =1,2,…,n;k =0,1,2,…根据给定的精度要求迭代,求出迭代次数k 的值。

超松弛迭代法及其松弛因子的选取

超松弛迭代法及其松弛因子的选取

2013届学士学位毕业论文超松弛迭代法及其松弛因子的选取学号:09404307姓名:程启远班级:信息0901指导教师:崔艳星专业:信息与计算科学系别:数学系完成时间:2013年5月学生诚信承诺书本人郑重声明:所呈交的论文《超松弛迭代中松弛因子的选取方法》是我个人在导师崔艳星指导下进行的研究工作及取得的研究成果.尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写的研究成果,也不包含为获得长治学院或其他教育机构的学位或证书所使用过的材料.所有合作者对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意.签名:日期:论文使用授权说明本人完全了解长治学院有关保留、使用学位论文的规定,即:学校有权保留送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部或部分内容,可以采用影印、缩印或其他复制手段保存论文.签名:日期:指导教师声明书本人声明:该学位论文是本人指导学生完成的研究成果,已经审阅过论文的全部内容,并能够保证题目、关键词、摘要部分中英文内容的一致性和准确性.指导教师签名:时间摘要本文首先给出了超松弛迭代法解线性方程组的基本概念,引进了关于超松弛迭代法收敛性判别的一些定理.再基于超松弛迭代法收敛性快慢与松弛因子的选择密切相关,本文给出了能准确快速地确定最优松弛因子的方法逐步搜索法和黄金分割法,并且写出了其Matlab 程序(附录),最后通过实例验证了方法的准确性,快速性.关键词线性方程组;超松弛迭代;Matlab程序;松弛因子AbstractThis paper firstly introduces the basic concept of the super relaxation iteration method for solving linear equations, introduced on some criterion theorem Overrelaxation iterative convergence, gives a simple Matlab program super relaxation iteration (Appendix 1). Then Overrelaxation iterative convergence speed and relaxation factor is selected based on the close relation is proposed in this paper, the rapid and accurate method of determining the optimal relaxation factor of the direct search method and the golden section method, and write the Matlab program (Appendix 2), finally the method is accurate, rapid.Key word:Linear equations; Successive Over Relaxation; Matlab program; relaxation factor超松弛迭代法及其松弛因子的选取09404307 程启远信息与计算科学指导教师崔艳星引言在科学计算和工程设计中,经常会遇到求解线性代数方程组的问题,而怎样快速的求解一直是我们共同关心的课题.随着计算机技术及数学编程软件的发展,我们有了在计算机上解线性方程组的条件.最初遇到的方程数和未知数比较少的方程组我们就是利用线性代数知识直接解出来.直接解法只能适用于经过有限步运算能求得解的方程组.后来遇到的方程数和未知数都比较多的方程组,特别是经常会遇到的大型的方程组,直接解法工作量太大,花费时间太多,因此迭代法发展了起来.从最初的Jacobi迭代法到Gauss-Seidel迭代法,很多学者一直在研究找到一种迭代法能更加快速,简单的解决线性方程组.通过不断的实验和计算,在Gauss-Seidel迭代法基础上,人们发现通过迭代-松弛—再迭代的方法,能更加减少计算步骤,极大的缩短计算时间,在此基础上,超松弛迭代法被学者们研究出来.通过比较三种迭代方法,我们得到超松弛迭代的收敛速度是最快的,而且超松弛迭代法具有计算公式简单,编制程序容易等突出优点.在求解大型稀疏线性方程组中超松弛迭代法得到广泛应用.而SOR 迭代方法中松弛因子ω的取值直接影响到算法的收敛性及收敛速度,是应用超松弛迭代法的关键.选择得当,可以加快收敛速度,甚至可以使发散的迭代变成收敛.因此, 超松弛因子的选取是学者们又一个研究目标.通过一些被验证的定理,我们知道为了保证迭代过程的收敛,必须要求1<ω<2,而且松弛因子和迭代矩阵谱半径之间有着密切的联系,现今学者们已经研究出部分特殊矩阵的最优松弛因子的计算公式.对于一般的矩阵,我们也可以从松弛因子和谱半径的关系着手研究最优松弛因子的选取,这就为本篇论文的形成提供了行文思路.本文给出了求超松弛迭代最优松弛因子的两种方法.1.超松弛迭代基本知识1.1 超松弛迭代法定义[1]超松弛(Successive Over Relaxation)迭代法,简称SOR 迭代法,它是在Gauss-Seidel 法基础上为提高收敛速度,采用加权平均而得到的新算法.设解方程组的Gauss-Seidel 法记为1(1)(1)()111(),1,2,,i nk k k ii ij j ij j j j i ii x b a x a x i na -++==+=--=∑∑ (1)再由()k ix 与(1)k ix +加权平均得(1)(1)(1)()()()(1)(),1,2,,k k k k k k i i i ii x x xx x x i n ωωω+++=-+=+-=这里ω>0称为松弛参数,将(1)代入则得1(1)()(1)()11(1)(),1,2,,i nk k k k iii ij jijjj j i iix x b a x a xi na ωω-++==+=-+--=∑∑ (2)称为SOR 迭代法,ω>0称为松弛因子,当ω=1时(2)即为Gauss-Seidel 法,将(2)写成矩阵形式,则得(1)()(1)()(1)()k k k k Dx Dx b Lx Ux ωω++=-+++于是得SOR 迭代的矩阵表示[3](1)()k k i x G x f ωω+=+ (3)其中1()[(1)]G D L D U ωωωω-=--+1()f D L b ωωω-=-1.2 收敛性判别条件 根据迭代法收敛性定理[2],SOR 法收敛的充分必要条件为()1G ωρ<,但要计算()G ωρ比较复杂,通常都不用此结论,而直接根据方程组的系数矩阵A 判断SOR 迭代收敛性,下面先给出收敛必要条件. 定理1]4[ 设(),0(1,2,...,)n nij ii A a Ra i n ⨯=∈≠=,则解方程Ax b =的SOR 迭代法收敛的必要条件是0<ω<2. 定理2]5[ 若n nA R ⨯∈对称正定,且0<ω<2,则解Ax=b 的SOR 迭代法(3)对nx R ∀∈迭代收敛.对于SOR 迭代法,松弛因子的选择对收敛速度影响较大,关于最优松弛因子研究较为复杂,且已有不少理论结果.下面只给出一种简单且便于使用的结论. 1.3 收敛速度的估计SOR 迭代法的迭代矩阵G ω与ω有关,当选取不同的ω时,其迭代速度也有所不同.因此,需要找到最优的松弛因子b ω,使对应b ω的SOR 方法收敛最快. 定理3]7[ 设n A Rn ⨯∈,如果存在排列矩阵P ,使1122T D M PAP M D =其中,1D ,2D 为对角矩阵,则称A 是2-循环的.此外,若当0α≠时,矩阵11-1D U D L αα--+的特征值都和α无关,则称A 是相容次序矩阵.定理4]7[ 设n A Rn⨯∈,A 有非零的对角元,且是2-循环和相容次序的矩阵.又设1(U)J B D L -=+是方程组A x b =的Jacobi 法迭代的迭代矩阵,且2B 的所有特征值均在(0,1)上,若()1J B ρ<,记()J B μρ=,则SOR 法的最优松弛因子b ω为211b ωμ=+-且222[4(1)]()1,2bb G ωωμωμωωωρωωω⎧+--⎪<<=⎪-<<⎩02()min ()bb G G ωωωρρ≤≤=图12 松弛因子选取方法方法思想]8[:(1)给出ω的范围,当取不同的ω值时,进行迭代,在符合同一个精度要求下依次求出谱半径的值,比较出最小的谱半径,那么这个最小的谱半径所对应的的ω,即为所求最佳松弛因子.(2)给出ω的范围,当取不同的ω值时,进行迭代,看它们在相同精度范围内的迭代次数,找到迭代次数最少的那一个,其所对应的ω即为最佳松弛因子.” 2.1 逐步搜索法 算法:Step 1:读入线性方程组的系数矩阵,常数向量,初值,精度,给出ω的取值范围,以及其变化步长;Step 2:按照如下公式迭代(1)()k k i x G x f ωω+=+找出符合精度要求ε的迭代次数及谱半径;Step 3:循环迭代,最后找到最优松弛因子Step 4: 改变ω的取值范围,重新设定变化步长,重复Step2. 2.2 黄金分割法从定理4我们可以看到,最优松弛因子对应的谱半径最小,而黄金分割法对于数值求解单调函数的极小和极大值是非常方便和有效的]9[,因此,我们可以把黄金分割法应用在求最优松弛因子上,其算法与主要思想是: Step1:利用优选法思想,在)2,1(之间选取四个点,12441314141,0.618(),0.618(),2p p p p p p p p p p ==--=+-=Step 2: 分别取2p 与3p 作为松弛因子代入迭代程序,比较出最少的迭代次数,如果对2p 应的迭代次数少,则选取),(31p p 作为收敛区间,如果是对应的3p 迭代次数少,则选取),(42p p 作为收敛区间.Step 3: 在所选取的收敛区间里循环进行上述的两个步骤,直到选取出满足精度要求且2p ,3p 所对应的迭代次数差不超过某个数∆时选3p 为最优松弛因子.3 数值算例例1: 矩阵3101130000311013A -⎡⎤⎢⎥-⎢⎥=⎢⎥-⎢⎥-⎣⎦(1,2,2,1)T b =----,精度为161.0*10k k x x ---≤解法1:黄金分割法令05.0=∆,程序结果如下:由上可以看出我们只需作几次0.618法就可以找到最优松弛因子,本例中最优松弛因子0901.1=ω,迭代次数为8次.解法2:逐步搜索法,步长为0.1,21<≤ω程序结果如下:图3图3中,其横坐标表示松弛因子,纵坐标表示谱半径.也可以求出最优松弛因子为1.1,迭代次数为8.然后我们改变松弛因子区间,令1.11≤≤ω以步长为0.01来继续求更精确的松弛因子.程序结果如下:图4图4中,其横坐标表示松弛因子,纵坐标表示谱半径.这样继续缩小松弛因子范围,以更小的步长求得的最优松弛因子为1.0900,更加精确. 例2 方程组A x b =,⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡=40001-1-1-0004001-01-1-0004001-1-01-0004001-1-1-1-1-00400001-01-00400001-1-1-0040001-01-00040001-1-00004A T (2,2,0,2,2,1,1,1,1)b =.精度为161.0*10k k x x ---≤.初始迭代值为0(0,0,0,0,0,0,0,0,0)T x =.求最优松弛因子.解法1 黄金分割法令001.0=∆,程序结果如下:求得最优松弛因子为1.1772.解法2 逐步搜索法首先以21<≤ω,步长为0.1搜索求得的最优松弛因子为1.2000,然后重新设定范围,以步长为0.01运行程序在改变范围,以步长为0.001运行,程序结果如下:求得的最优松弛因子为1.1780.由这两个例子可以看出利用黄金分割法求最优松弛因子比用逐步搜索法更加简便快速,但是用逐步搜索法步长取的很小时求得的松弛因子比黄金分割法更加精确.4 结束语超松弛迭代方法是解决线性方程组的一个十分有效快捷的方法,很多工程学,计算数学中都会应用.而且超松弛迭代法公式简单,编制程序容易.而使用超松弛迭代法的关键在于选取合适的松弛因子,如果松弛因子选取合适,则会大大缩短计算时间. 本文依据松弛因子和矩阵谱半径的关系给出了两种选取松弛因子的方法逐步搜索法和黄金分割法及其Matlab程序. 但这两种方法仍不是足够简便,有所不足,有待进一步研究.5 参考文献:[1] 李庆扬,王能超,易大义.数值分析[M], 清华大学出版社,2008.[2] 施吉林. 计算机数值方法[M] . 北京: 高等教育出版社, 2000.[3] 蔡大用.数值分析与实验学习指导[M],清华大学出版社,2001.[4] 李建宇,黎燕. 牛顿一SOR迭代方法中最佳松弛因子的算法[J],四川大学学报,4,381-382,1995.[5] 王诗然. 稀疏线性方程组求解的逐次超松弛迭代法[J],沈阳师范大学学报,4,407-409,2006.[6] 刘卫国. MATLAB程序设计与应用[M],高等教育出版社,2008.[7] 张知难.关于相容次序矩阵的性质的图论证明[J].新疆大学学报, 1983, 12(3):23-26.[8] 李春光,徐成贤.确定SOR最优松弛因子的一个实用算法[J].计算力学学报,2002,19(3):299-302.[9] 蒋家羚,王勇.最有超松弛因子的一种确定方法及其在裂纹计算中的应用[J].研究简报,2002,24(1):133-135.[10] 王晓东. 计算机算法设计与分析[M] . 北京: 电子工业出版社, 2000.附录逐步搜索法A=[-3,1,0,1;1,-3,0,0;0,0,-3,1;1,0,1,-3]; %系数矩阵%b=[-1;-2;-2;-1];D=diag(diag(A)); %A的对角矩阵%U=-triu(A,1) ; %A上三角矩阵%L=-tril(A,-1); %A的下三角矩阵%m=[];t=[]; %创建两个空矩阵分别存放相对应的谱半径和记录迭代次数% for w=1:0.01:1.1; %取w的值%q=(D-w*L);p=inv(q); %求q的逆%Gw=p*((1-w)*D+w*U); %求得迭代矩阵%V=eig(Gw); %计算迭代矩阵的特征值%R=max(abs(V)); %找出绝对值最大的谱半径%m=[m,R];plot(w,R,'o'); %画出w和R的关系图%grid;hold onf=inv(D-w*L)*b*w;x0=[0;0;0;0]; %取迭代初值%y=Gw*x0+f;n=1;while norm(y-x0)>=1.0e-6 %迭代条件%f=inv(D-w*L)*b*w;x0=y;y=Gw*x0+f;n=n+1;endt=[t,n];end[h,k]=min(t); %h记录最小的迭代次数,k记录第几个数最小%求解过程g=1.0+(k-1)*0.01;f=inv(D-g*L)*b*g;y=Gw*x0+f;n=1;while norm(y-x0)>=1.0e-6;f=inv(D-g*L)*b*g;x0=y;y=Gw*x0+f;n=n+1;endk,h,t,m,g %g是最佳松弛因子%黄金分割法A=[-3,1,0,1;1,-3,0,0;0,0,-3,1;1,0,1,-3]; %系数矩阵%b=[-1;-2;-2;-1];D=diag(diag(A)); %A的对角矩阵%U=-triu(A,1) ; %A上三角矩阵%L=-tril(A,-1); %A的下三角矩阵%c=1;d=2;m=0.618;x0=[0;0;0;0];w1=d-m*(d-c);w2=c+m*(d-c);y=[];r=[];s=[];z=[];while abs(w2-w1)>=0.05n=1; w=w1;G=inv(D-w*L)*((1-w)*D+w*U);f=w*((D-w*L)*b);x=G*x0+f;while norm(x-x0)>=1.0e-6x0=x;G=inv(D-w*L)*((1-w)*D+w*U);f=w*((D-w*L)*b);x=G*x0+f;n=n+1;endr=[r,w];y=[y,n];k=1; w=w2;G=inv(D-w*L)*((1-w)*D+w*U);f=w*((D-w*L)*b);x=G*x0+f;while norm(x-x0)>=1.0e-6x0=x;G=inv(D-w*L)*((1-w)*D+w*U);f=w*((D-w*L)*b);x=G*x0+f;k=k+1;ends=[s,w];z=[z,k];if n>kc=w1;w1=d-m*(d-c);w2=c+m*(d-c);elsed=w2;w1=d-m*(d-c);w2=c+m*(d-c);endendr,y,s,z,w2致谢本文在指导老师崔老师的精心指导下完成的,无论是在选题、确定研究内容和研究过程中都凝聚着由老师的辛勤与汗水.由老师的严谨治学态度、无私奉献的精神、丰富的教学经验令我受益匪浅.在他那里不仅让我学到了许多宝贵的知识财富,更让我懂得了许多做人的道理.在这里我衷心地向我的指导教师崔艳星老师表示最诚挚的谢意和尊敬.最后向所有关心我和帮助我的老师和同学们表示我衷心的感谢和最诚挚的谢意!。

超松弛迭代法解线性方程组

超松弛迭代法解线性方程组

设it题目:摘要本文是在matlabll境下熟悉的运用计算机编程培言并结合超松弛变量起松弛迭代法的理论基础对方程组求解。

首先,本文以愉分方程边值问题为例,导出了离散化后线11方程组即稀疏线性方程组,转化对柿蔭线性方程组求解冋題。

其次,用起松弛(SOR)选代法编写matlab 程序,湘产生的柿疏线性方程组进行迭代法求解。

然后,分别改变松弛因子3和分段数n的值,分桥其收敛性和收敛速H, 18出各个方面的分林和比较需到相关结论。

最后,将起松弛迭代算法在it算机上运用matlab 言实现,借岀了一组与猜确解较接近的数值解,并画图比较,騎iil逐次超松弛(SOR)选代法的績确性。

关键词:柿匾线性方程组逐次超松弛迭代法松弛因子matlab编程-、间题提岀考虑两点逆值冋题为了把做分方程离IL 把[oj]E 间“等分,令/亠丄,脸=〃?,山12…山一1,得到 n 差分方程° 治 一 2)1 + X+—畑 一 X _ “or十—C< -h 2h简化为(£ + 必+i - © + 心+ % =肿,从而离散后得到的线性方程组的系数矩阵为一(2g + /?) £ + h£-(2£ + h )A =££ + /?一(2w + h )_对£ = 19 a = 0.4 , n = 200 ,分别用e = 1、6? = 0.5和e = 1.5的超松弛迭代法 求解线性方程组,要求有4也有效数字,然后比较与精确解的淚差,探讨使超松 弛选代法收敛较快的0取值,对结果进行分轿。

改变»论同wrOo二、超松弛迭代法产生的背景容易知道它的精确解为 + ax.£ + h—(2w +y =对从实际间题中借到维数相当夫的线11代数方程组的求解仍然十分困难,以至使人们不能在允许的时间内用貞接方法得到解,Slit,客观上要求用新的方法来解决大维数方程组的求解I'nJSo现有大名数迭代法不是对各类线11方程组都有收敛性,在解题时,要对原方程组葩晖作一根本的变换,从而可能使条件数变坏,也可能破坏了变换前后方程组的等价性,以员丧失使原方程组的对称II等。

超松弛迭代法

超松弛迭代法

xk 1 1 xk D1 b Lx( k 1) Ux( k )
xk 1 L x( k ) ( D L)1b


(5.3.2)
再整理得
其中,迭代矩阵为
L ( D L)11 D U
4 3 0 x1 24 3 4 1 x2 30 0 1 4 x 24 3
(1 )D U x (D L) x
D L U 是实对称矩阵,所以有LT U 。上式两边与x 作内积得 (5. 3. 4) (1 )(Dx, x) (Ux, x) [(Dx, x) ( Lx, x)] 因为A正定,D亦正定,记 p ( Dx, x) ,有 p 0 。又记 ( Lx, x) i , A 这里,
k 1
xi(k 1) xi(k 1) (1 ) xi(k ) xi( k ) ( xi( k 1) xi( k )
经整理得
x
( k 1) i
x
(k ) i
(bi aij x
j 1
i 1
( k 1) j
aij x (jk ) ) aii
opt
其中
2 1 1 u2
opt 的条件。在实际应 可以证明,对称正定的三对角矩阵满足最优松弛因子 用中,一般地说计算 ( BJ ) 较困难。对某些微分方程数值解问题,可以考虑用 求特征值的近似值的方法,也可以由计算实践摸索出近似最佳松弛因子。
( BJ ) 是 J 法迭代矩阵BJ 的谱半径。
按一般的迭代法收敛的理论,SOR迭代法收敛的充分必要条件是 ( L ) 1 在什么范围内取值,SOR迭 而 ( L ) 与松弛因子 有关。下面讨论松弛因子 代法可能收敛。 定理5.7 证 如果解方程组Ax 设 L 的特征值为

超松弛迭代法(SOR方法)

超松弛迭代法(SOR方法)

解:SOR迭代公式
x1( k
1)
(1 )x1(k )
4
(10 2x2(k )
4x3(k ) )
x
(k 2
1)
(1 )x2(k )
17
(3
2
x1(
k
1)
10x3(k ) )
x3( k
1)
(1 )x3(k )
9
(7 4x1(k 1)
10
x
(k 2
1)
)
初值 x (0) (0,0,0)T k = 0,1,2,…,
例该4方.4程用组S的OR精法确求解解线x (性*) 方 程(2组,1,1)T
如值只果需x(0取)迭ω取代(0=,04ω21,00x(=42)即1次T1xx,要11.高4便26达x斯11,可207到—xx要达22同4塞求到x样319德精0x精x3尔度130度迭要x,(3k7代求需1) 法要x)迭(和k) 代同1一1100初6次
数值计算方法
超松弛迭代法(SOR方法) 使用迭代法的困难在于难以估计其计算
量。有时迭代过程虽然收敛,但由于收敛速 度缓慢,使计算量变得很大而失去使用价值 。因此,迭代过程的加速具有重要意义。逐 次超松弛迭代(Successive Over relaxatic Method,简称SOR方法)法,可以看作是带参 数的高斯—塞德尔迭代法,实质上是高斯-塞 德尔迭代的一种加速方法。
或 Dx(k1) (1)Dx(k) (b Lx(k1) Ux(k) )
故 (D L)x(k1) (1)D Ux(k) b
显然对任何一个ω值,(D+ωL)非奇异,(因为假设 aii 0,i 1,2,, n )于是超松弛迭代公式为
x(k1) (D L)1 (1)D U x(k) (D L)1b

§8.4-解线性方程组的超松弛迭代法法

§8.4-解线性方程组的超松弛迭代法法
第四节 解线性方程组的 超松弛迭代法
1
第八章 解线性方程组的迭代法
SOR迭代法是Gauss—Seidel 迭代法的一种修正, 可由下述思想得到.
设已知x(k)及已计算x(k+1)的分量xj(k+1) (j=1,2,,i-1).
(1) 首先用Gauss—Seidel 迭代法定义辅助量 x~i(k1),

1
1

1
4 1 1
1 4 1
1 1 4





x2 x3 x4






1 1 1

.
Hale Waihona Puke 它的精确解为x*=(-1, -1, -1, -1 )T.
解 取初始向量x(0)=0,迭代公式为

x1( k x2( k x3( k
x(11) (0.99999646, 1.00000310, 0.99999953, 0.99999912)T ,
(11) 0.46 105. 2
满足误差

(k) 105.
2
迭代次数k
对取其它值,迭代次数如表. 1.0
22
1.1
17
从此例看到,松弛因子选择
1.2
aii
.
j1
ji
i 1,2,, n 也可写作:


x(0) x(k1)
i
( x1(0) ,, xn(0)
xi(k) xi ,
)T
,

i 1
n
xi
(bi

aij
x
(k j

计算方法 第八章 解线性方程组的迭代法 高斯迭代法 迭代法的收敛性

计算方法 第八章 解线性方程组的迭代法 高斯迭代法 迭代法的收敛性
注意到利用Jacobi迭代公式计算xi( k 1) 时,已经计算好了
( ( k x1k 1) , x2k 1) ,, xi(1 1)
的值,而Jacobi迭代公式并不利用这些最新的近似值计算, 仍用 (k ) (k ) (k )
x1 , x2 ,, xi 1
这启发我们可以对其加以改进,即在每个分量的计算中尽
设方程组 AX=b , 通过分离变量的过程建立 Jacobi迭代公式,即
a
i 1
n
ij
xj b , a 0 i i
( i 1,2, )n , ( i 1,2, )n ,
1 xi (bi aii
a
j 1 ji
n
ij
x) j
由此我们可以得到 Jacobi 迭代公式:
写成矩阵形式:
aii 0
x 1 a x ... a x b 12 2 1n n 1 1 a11 1 a x ... a x b x2 21 1 2n n 2 a22 ... ... ... ... 1 xn a an1 x1 ... a nn 1 xn1 bn nn
迭代法的基本思想 与解f (x)=0 的不动点迭代相类似,将AX=b改写
为X=BX+f 的形式,建立雅可比方法的迭代格式:
x( k 1) Bx( k ) f
其中,B称为迭代矩阵。其计算精度可控,特别 适用于求解系数为大型稀疏矩阵(sparse matrices)的 方程组。
5
AX b
15
迭代次数 0 1 2 3 4 5 6 7 8
x1 0 0.72 1.04308 1.09313 1.099126 1.09989 1.099986 1.099998 1.1

超松弛迭代法

超松弛迭代法

超松弛迭代法
超松弛迭代法是一种回归模型的最优化算法,主要用于减少损失函数。

如果损失函数是凸函数,则可以使用自动对准算法来使目标函数最小,以备测试目标模型。

超松弛迭代法的技术流程如下:
1. 定义初始参数:设置参数的初始值x0。

2. 迭代:通过迭代公式X[i + 1] = (1 –λ) X[i] + λF(X[i])来更新X[i],得到新的迭代值。

3. 收敛:检查超参数δ和终止准则,查看目标函数值是否趋于收敛。

4. 调整超参数:如果目标函数值没有收敛,则可以尝试调整超参数X0和λ来降低目标函数值。

5. 返回最优化结果:将参数X[i]返回到最终收敛状态,即最优化结果。

松弛迭代法解线性方程组

松弛迭代法解线性方程组

---------------------------------------------------------------最新资料推荐------------------------------------------------------松弛迭代法解线性方程组计算方法第八章上机作业沈欢北京大学工学院,北京100871 2012-05-011问题描述编制松弛法求解线性方程组的程序:分别取松弛因子ω =0, 0.1, 0.2,…2.0(间隔为0.1),求解线性方程组Ax = b ,其中 ? ? 1 1 1 1 1 2 3 4 5 ? 1 1 1 1 1 ? ? 2 3 4 5 6 ? ?1 1 1 1 1 ? ? A=? ? 3 4 5 6 7 ? ? 1 1 1 1 1 ? ? 4 5 6 7 8 ?1 5 1 6 1 7 1 8 1 9(1)? ? ? ? b=? ? ? ?1 0 0 0 0? ? ? ? ? ? ? ?(2)→ → 要求精度为 ? x ?? x ? &lt; 10?4 (1) 经过计算判断对那些ω 迭代收敛? (2) 记下迭代次数,据此判断对哪个ω 迭代收敛最快。

2SOR方法描述? → → → → x k+1 = ωL? x k+1 + [(1 ? ω )I + ωU ]? x k + ω? g松弛法迭代的矩阵形式为: (3)其中,常数ω 称为松弛因子。

ω &lt; 1称为低松弛或亚松弛法。

ω &gt; 1称为超松弛法,ω = 1时为Seidal迭代法。

收敛最快的松弛因子称为最优松弛因子,一般要由经验或通过试算来确定。

选取适当的松弛因子,SOR迭代要比Jacobi 迭代或Seidal迭代快很多。

11/ 8在编制计算机程序的过程中使用分量形式进行迭代:i?1 +1 xk = i j =1(?ω ?aij k+1 aij k bi (?ω ? )xj + (1 ? ω )xk )xj + ω ?i + aii aii aii j =i+1n(4)其中,i=1,2,.....,n。

线性方程组的迭代法雅可比高斯塞德尔和超松弛迭代ppt课件

线性方程组的迭代法雅可比高斯塞德尔和超松弛迭代ppt课件

a11x1 a12 x2 a1n xn b1
a21 x1
a22 x2
a2n xn
b2
an1x1 an2 x2 ann xn bn
写据成此建立n 迭ai代j x公j 式 bi
i 1,2,, n
上若xi式(xkai称1ii)为0ja1解a11i(iiii方((bb程1ii,2组,jj的njn,1i n1Jaa)aijcxio,j分(jxbk)ij离)迭) 代出公i变i式量1,。21x,,2i , n , n
j=1
j ≠i
称A为严格对角占优阵。
2.如果A的元素满足
∑n
ai,i ≥ ai, j ,i = 1,2,..., n
j=1 j≠i
且至少一个不等式严格成立,称A为弱对角占优阵。 16
定义:设 A = (ai,j )n×n ,n ≥ 2
如果存在置换矩阵P,使得
PT
AP

A11 0
A12
A22
1
§6.1 迭代法的基本思想
迭代法的基本思想是将线性方程组转化 为便于迭代的等价方程组,对任选一组初始 值 xi(0) (i 1,2,, n) ,按某种计算规则,不断地 对所得到的值进行修正,最终获得满足精度 要求的方程组的近似解。
2
设 A Rnn 非奇异,b Rn,则线性方程组
Ax b 有惟一解 x A1b ,经过变换构造
x (k 1) 1
x (k 1) 2
x1(k 2x1(k)
)

x(k) 2
4x2(k )
3 3

x (0) 1

x (0) 2

0
计算得

解线性方程组的迭代法

解线性方程组的迭代法
定义2 (向量范数) 如果在 R n 中定义了实值函数,记为 || || , 对所有 x, y R n 以及 R ,若满足
|| x || 0 (非负性) ; (1)|| x || 0 ,当且仅当 x 0 时,
(2) || x ||| | || x || (齐次性); (3) || x y |||| x || || y || (三角不等式). 则称 || x || 为向量 x 的范数 (或模).
4.1.2 向量范数和向量序列的极限
常用的向量范数:设 x R n (1)向量的 - 范数 (最大范数): || x || max | xi |
1 i n
|| x ||1 (2)向量的 1 - 范数 (绝对值范数):
(3)向量的 2 - 范数:|| x ||2 ( x , x ) (
|| A ||2 3+2 2 , || A ||F 6
4.1.3 矩阵范数和矩阵序列的极限
(k ) ) R nn ,如果存 定义5 (矩阵序列的极限) 设有矩阵序列 Ak (aij
在 A (aij ) R nn,使
k (k ) lim aij aij ,
i, j 1, 2,
(4) || AB |||| A || || B || ; 则称 || A || 为矩阵 A 的范数.
4.1.3 矩阵范数和矩阵序列的极限
相容性: 设有矩阵范数 || ||s 和向量范数 || ||t ,如果对任何向量 x R n 及矩阵 A R nn ,有/2 || A ||F ( aij ) i , j 1 n
它是与向量 2-范数相容的矩阵范数,但不是从属范数.
4.1.3 矩阵范数和矩阵序列的极限

《数值分析》第8章

《数值分析》第8章
证明. 对于 Jacobi 迭代,迭代矩阵记为 J = D −1 ( L + U )
假设 ρ (J ) ≥ 1 ,则 J 至少存在一个特征值满足: λ ≥ 1 ,设 x 是相应的特征向量,则 x ≠ 0 ,且
29
n× n
Jx = λ x ⇔ ( D −
⎧ x ( k +1) = Gx ( k ) + f ⎨ (0) ⎩x
7 8
写成分量形式为:
i −1 n ⎧ ( k +1) 1 = (bi − ∑ aij x(jk +1) − ∑ aij x(jk ) ) (i = 1,", n, k = 0,1,") ⎪ xi aii j =1 j = i +1 ⎪ ⎨ ⎪ (0) (0) (0) (0) T ⎪ ⎩ x = ( x1 , x2 ,", xn )
⎡ 0 ⎤ ⎢a ⎥ 0 ⎥ , L = − ⎢ 21 ⎢ # % % ⎥ % ⎢ ⎥ ann ⎦ ⎣ a n1 " a n , n − 1 ⎤ ⎡ 0 a12 " a1n ⎤ ⎥ ⎢ ⎥ 0 % # ⎥ ⎥ ,U = − ⎢ ⎥ ⎢ % an −1, n ⎥ ⎥ ⎢ ⎥ 0⎦ 0 ⎦ ⎣
§2 Jacobi 迭代法与 Gauss-Seidel 迭代法
1 k
为迭代法的平均收
25
26
Def 3.3 设 A = (aij ) ∈ R ,如果矩阵 A 满足条件
aii > ∑ aij
j≠i
n× n
( i = 1, 2," , n)
Def 3.4 设 A = (aij ) ∈ R 排列阵 P 使
n× n
,当 n ≥ 2 时,如果存在 n 阶

解线性方程组的迭代法

解线性方程组的迭代法

0.9906
0.0355
5 1.01159 0.9953
1.01159 0.01159
6 1.000251 1.005795 1.000251 0.005795
7 0.9982364 1.0001255 0.9982364 0.0017636
可见,迭代序列逐次收敛于方程组的解, 而且迭代7次得到精确到小数点后两位的近似解.
a11x1 a12x2 a13x3 b1 a21x1 a22x2 a23x3 b2 a31x1 a32x2 a33x3 b3
从而得迭代公式
x1
a12 a11
x2
a13 a11
x3
b1 a11
x2
a21 a22
x1
a23 a22
x3
b2 a22
x3
a31 a33
M 00.8 00..75
但(M)=0.8<1,所以迭代法 x(k+1)=Mx(k)+g 是收敛的.
由(3.5)式可见,‖M‖越小收敛越快,且当‖x (k) -x(k-1) ‖很小时,‖x(k) –x*‖就很小,实际中用‖x (k) x(k-1) ‖<作为
迭代终止的条件。 例如,对例1中的Jacobi迭代计算结果
+‖x(k+1) –x*‖‖M‖‖x(k) –x(k-1)‖+‖M‖‖x(k) –x*‖ 从而得‖x(k) –x*‖‖M‖‖x (k) -x(k-1) ‖/(1- ‖M‖)
(3.5) (3.6)
估计式(3.5)得证。利用(3.5)式和
‖x(k+1) 得到
-x(k)
‖‖M‖‖x
(k)
-x(k-1)

解线性方程组 的迭代法

线性代数方程组迭代法PPT课件

线性代数方程组迭代法PPT课件

超松弛法
收敛速度快
总结词
总结词
计算量较大
ABCD
详细描述
超松弛法具有较快的收敛速度,尤其对于大型线 性方程组,能够显著减少迭代次数。
详细描述
由于超松弛法的计算量较大,因此在实际应用中 可能需要考虑计算效率的问题。
CHAPTER 04
迭代法的实现步骤
初始化
设置初值
为方程组的解向量设定一个初始值。
迭代法的应用场景
当方程组的系数矩阵难以直接求解时 ,迭代法可以作为一种有效的替代方 案。
在科学计算、工程技术和经济领域中 ,许多问题可以转化为线性代数方程 组求解,而迭代法在这些领域有广泛 的应用。
迭代法的优缺点
优点
迭代法通常比直接法更加灵活和通用,对于大规模和高维度的线性代数方程组, 迭代法更加高效。
缺点
迭代法需要选择合适的迭代公式和参数,并且需要满足收敛条件,否则可能无 法得到正确的解。此外,迭代法的计算过程比较复杂,需要较高的计算成本。
CHAPTER 02
迭代法的基本原理
迭代法的数学模型
迭代法是一种求解线性代数方程组的数值方法,通过不断迭代逼近方程的 解。
迭代法的数学模型通常表示为:$x_{n+1} = T(x_n)$,其中$x_n$表示第 $n$次迭代时的近似解,$T(x)$表示迭代函数。
03
非线性方程组的迭代法在求解优化问题、控制问题 等领域有广泛应用。
在优化问题中的应用
01
迭代法在优化问题中也有广泛应用,如求解无约束优化问题、 约束优化问题和多目标优化问题等。
02
常见的优化问题迭代法包括梯度下降法、牛顿法和共轭梯度法
等。
这些方法通过不断迭代来逼近最优解,广泛应用于机器学习、

松弛迭代法

松弛迭代法

松弛迭代法松弛迭代法是一种解决复杂优化问题的新方法,其主要思想是采用迭代松弛的方式来求解数学优化问题。

它可以用来解决各种非线性最优化问题,如:单纯形、线性规划、最小二乘法和二次规划等。

以下是松弛迭代法的相关算法介绍。

1.法介绍松弛迭代法是一种基于迭代松弛的数学优化方法,算法的基本步骤如下:(1)确定一个初始松弛参数,其形式为σ>0;(2)计算一个初始解Xo;(3)根据此初始解Xo,算对应的步长和梯度,令X1=Xo-*Grad(Xo);(4)重复步骤3,不断迭代,直至解变得满足优化算法的收敛条件为止;(5)输出最终的解X。

2. 优缺点松弛迭代法的优点是其高效收敛,算法简单易行,可以用来解决复杂优化问题,并且可以求得全局最优解。

另外,松弛迭代法的步长的选取简单,受到限制的条件较少,只需要给定一个初始松弛参数即可。

但是,松弛迭代法也有一定的缺点,比如:(1)算法只能求出局部最优解,不能保证全局最优解;(2)在求解复杂优化问题时,松弛参数的选取可能会影响算法的收敛性;(3)算法容易陷入局部最优解中,不能跳出局部最优解。

3.用实例松弛迭代法主要应用于复杂优化问题的求解,例如:(1)线性规划问题的求解:对于最简单的线性规划问题,给定n个未知变量,其目标函数可以表达为:min f(x)=cTx,松弛迭代法可以用来求解该问题;(2)最小二乘优化问题的求解:给定一组样本数据,其拟合模型可以表达为:min f(x)=∑||y-x||2,松弛迭代法可以用来求解该问题;(3)凸优化问题的求解:给定凸函数f(x),求解min f(x),松弛迭代法可以用来求解该问题。

4.论松弛迭代法是一种求解复杂优化问题的有效方法。

它的优点是算法简单易行,可以求得局部最优解,而且只需要给定一个初始松弛参数即可。

但它也有一定的缺点,比如不能保证全局最优解,受到步长选取影响,容易陷入局部最优解中,等等。

不过,由于松弛迭代法具有高效收敛性,可以用来求解线性规划、最小二乘法和二次规划等优化问题,它仍是一种有效的求解复杂优化问题的算法。

超松弛迭代法解线性方程组

超松弛迭代法解线性方程组

. ...设计题目:超松弛迭代法解线性方程组摘要本文是在matlab环境下熟悉的运用计算机编程语言并结合超松弛变量超松弛迭代法的理论基础对方程组求解。

首先,本文以微分方程边值问题为例,导出了离散化后线性方程组即稀疏线性方程组,转化对稀疏线性方程组求解问题。

其次,用超松弛( SOR) 迭代法编写matlab程序,对产生的稀疏线性方程组进行迭代法求解。

然后,分别改变松弛因子ω和分段数n的值,分析其收敛性和收敛速度,做出各个方面的分析和比较得到相关结论。

最后,将超松弛迭代算法在计算机上运用matlab语言实现, 得出了一组与精确解较接近的数值解,并画图比较,验证逐次超松弛( SOR) 迭代法的精确性。

关键词:稀疏线性方程组逐次超松弛迭代法松弛因子matlab编程一、问题提出考虑两点边值问题()()⎪⎩⎪⎨⎧==<<=+.11,00,10,22y y a a dxdy dx y d ε 容易知道它的精确解为.1111ax e e ay x+⎪⎪⎭⎫ ⎝⎛---=--εε为了把微分方程离散,把[]1,0区间n 等分,令nh 1=,ih x i =,,1,,2,1-=n i 得到差分方程,21211a h y y hy y y ii i i i =-++-++-ε简化为()(),2211ah y y h y h i i i =++-+-+εεε从而离散后得到的线性方程组的系数矩阵为()()()()⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡+-++-++-++-=h h h h h h h A εεεεεεεεεε2222对1=ε,4.0=a ,200=n ,分别用1=ω、5.0=ω和5.1=ω的超松弛迭代法求解线性方程组,要求有4位有效数字,然后比较与精确解的误差,探讨使超松弛迭代法收敛较快的ω取值,对结果进行分析。

改变n ,讨论同样问题。

二、超松弛迭代法产生的背景对从实际问题中得到维数相当大的线性代数方程组的求解仍然十分困难, 以至使人们不能在允许的时间内用直接方法得到解, 因此, 客观上要求用新的方法来解决大维数方程组的求解问题。

线性方程组的迭代法

线性方程组的迭代法

1 20 D 1b
1 8
24 1.2 12 1.5 1 15 30 2
x1( k 1) 0 0.1 0.15 x1( k ) 1.2 ( k 2) x ( k ) 1.5 0 0.125 2 x2 0.125 ( ( x3k 1) 0.133 3 0.2 0 x3k ) 2.0
将方程组AX=b的系数A分解成 A=D+L+U 其中D=diag(a11,a22,,ann) ,L和U分别是A的 对角线下方元素和上方元素组成的严格下三角 阵与严格上三角阵. 即

0 0 a2 1 0 A a n1 an 2

0 a1 1 0 0 0 a1 2 0 0 a2 2 0 0 0 0 0 0 an n 0 0

k 1 r k 1 0 0 (k )

所以Gauss-Seidel迭代 法收敛.
定理 超松弛法收敛的必要条件为 0<<2

证 设其迭代矩阵G的特征值为1,2,, n , 由于迭代收敛,故有 max i 1 1 i n 从而 det G 12 n (max i ) n 1
a
j 1 j i
n
ij
aii
n
(i 1,2, , n )
aij aii 1

GJ

max
1i n j 1 j i
从而Jacobi迭代收敛

* * * * 设方程组的精确解为 X ( x1 , x2 , xn )

求解线性方程组——超松弛迭代法(c)

求解线性方程组——超松弛迭代法(c)

求解线性方程组——超松弛迭代法#include <iostream>#include <cmath>using namespace std;float *one_array_malloc(int n); //一维数组分配float **two_array_malloc(int m,int n); //二维数组分配float matrix_category(float* x,int n);int main(){const int MAX=100;//最大迭代次数int n,i,j,k;float** a;float* x_0; //初始向量float* x_k; //迭代向量float precision; //精度float w; //松弛因子cout<<"输入精度e:";cin>>precision;cout<<endl<<"输入系数矩阵的阶数,N:";cin>>n;a=two_array_malloc(n,n+1);cout<<endl<<"输入增广矩阵的各值:\n";for(i=0;i<n;i++){for(j=0;j<n+1;j++){cin>>a[i][j];}}x_0=one_array_malloc(n);cout<<endl<<"输入初始向量:\n";for(i=0;i<n;i++){cin>>x_0[i];}x_k=one_array_malloc(n);cout<<"输入松弛因子w (1<w<2):\n"; cin>>w;float temp;//迭代过程for(k=0;k<MAX;k++){for(i=0;i<n;i++){temp=0;for(j=0;j<i;j++){temp=temp+a[i][j]*x_k[j];}x_k[i]=a[i][n]-temp;temp=0;for(j=i+1;j<n;j++){temp=temp+a[i][j]*x_0[j];}x_k[i]=(x_k[i]-temp)/a[i][i];x_k[i]=(1-w)*x_0[i]+w*x_k[i];}//求两解向量的差的范数for(i=0;i<n;i++){x_0[i]=x_k[i]-x_0[i];}if(matrix_category(x_0,n)<precision) {break;}else{for(i=0;i<n;i++){x_0[i]=x_k[i];}}}//输出过程if(MAX==k){cout<<"迭代不收敛\n";}cout<<"迭代次数为:"<<k<<endl;cout<<"解向量为:\n";for(i=0;i<n;i++){cout<<"x"<<i<<": "<<x_k[i]<<endl;}return 0;}float *one_array_malloc(int n) //一维数组分配{float *a;a=(float *)malloc(sizeof(float)*n);return a;}float **two_array_malloc(int m,int n) //二维数组分配{float **a;int i;a=(float **)malloc(m*sizeof(float *));for (i=0;i<m;i++){a[i]=(float *)malloc(n*sizeof(float));}return a;}float matrix_category(float* x,int n){int i;float temp=0;for(i=0;i<n;i++){temp=temp+fabs(x[i]); }return temp;}。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

x~i(k1)
(bi
i 1
aij
x
(k j
1)
n
aij
x
(k j
)
)
/
aii
.
j 1
ji1
(2) 再由 xi(k )与 x~i(k1) 加权平均定义 xi(k1),即
x(k1) i
(1 )xi(k)
x~i( k 1)
x(k) i
( x~i(k1)
xi(k) ).
建立迭代格式如下:
§4 解线性方程组的超松弛迭代法 © 2009, Henan Polytechnic University
17
从此例看到,松弛因子选择
1.2
12
1.3
11(最少迭代次数)
得好,会使SOR迭代法的收
1.4
14
1.5
17
敛大大加速. 本例中=1.3是
1.6
23
1.7
33
最佳松弛因子.
1.8
53
1.9
109
§4 解线性方程组的超松弛迭代法 © 2009, Henan Polytechnic University
§4 解线性方程组的超松弛迭代法 © 2009, Henan Polytechnic University
44
第八章 解线性方程组的迭代法
i 1
n
x(k1) i
x(k) i
(bi
aij
x(k1) j
aij
x
(k j
)
)
/
aii
.
j1
ji
i 1,2,, n
矩阵表示为:
Dx(k1) Dx(k) (b Lx(k1) Ux(k) Dx(k) ).
(bi
aij
x(k1) j
aij
x
(k j
)
)
/
aii
.
j1
ji
i 1,2,, n 也可写作:
x(0) x(k1)
i
( x1(0) ,, xn(0)
xi(k) xi ,
)T
,
i 1
n
xi
(bi
aij
x
(k j
1)
j1
ji
aij
x
(k j
)
)
/
aii
(i 1,2,, n).
此即为解Ax=b的逐次超松弛迭代法 (Successive Over Relaxation Method,简称SOR方法).
77
第八章 解线性方程组的迭代法
取=1.3,第11次迭代结果为
x(11) (0.99999646, 1.00000310, 0.99999953, 0.99999912)T ,
(11) 0.46 105. 2
满足误差
(k) 105.
2
迭代次数k
对取其它值,迭代次数如表. 1.0
22
1.1
22
第八章 解线性方程组的迭代法
x~i( k 1)
(bi
i 1
a x(k1) ij j
n
a
ij
x
(k j
)
)
/
aii
,
j1
ji1
x ( k 1) i
(1 )xi(k)
x~i( k 1)
x(k) i
( x~i(k1)
xi(k ) ),
( i 1 , 2 , , n ).
i 1
n

55
第八章 解线性方程组的迭代法
(1) 显然,当=1时即为Gauss—Seidel 迭代法.
(2) SOR方法每迭代一次主要运算量是计算一次 矩阵与向量的乘法.
(3) 当>1时,称为超松弛法;当<1时,称为低
松弛法.
(4) 在计算机实现时可用
max
1 i n
xi
max
1 i n
x ( k 1) i
x(k1) i
x(k) i
(bi
aij
x(k1) j
aij
x
(k j
)
)
/
aii
.
j1
ji
i 1,2,, n
>0为松弛因子
§4 解线性方程组的超松弛迭代法 © 2009, Henan Polytechnic University
33
第八章 解线性方程组的迭代法
i 1
n
x(k1) i
x(k) i
第四节 解线性方程组的 超松弛迭代法
1
第八章 解线性方程组的迭代法
SOR迭代法是Gauss—Seidel 迭代法的一种修正, 可由下述思想得到.
设已知x(k)及已计算x(k+1)的分量xj(k+1) (j=1,2,,i-1).
(1) 首先用Gauss—Seidel 迭代法定义辅助量 x~i(k1),
(D L)x(k1) [(1 )D U]x(k) b,
逐次超松弛法可写为矩阵形式
x(k1) (D L)1[(1 )D U ]x(k) (D L)1b.
其逐次超松弛迭代矩阵为
B (D L)1[(1 )D U ].
§4 解线性方程组的超松弛迭代法 © 2009, Henan Polytechnic University
88
x(k) 3
x4(k) ) / x4(k) ) /
4, 4,
x3( k
1)
x(k) 3
(1
x(k) 1
x(k) 2
4 x3(k )
x4(k) ) /
4,
x4( k
1)
x(k) 4
(1
x(k) 1
x(k) 2
x(k) 3
4x4(k) ) /
4.
§4 解线性方程组的超松弛迭代法 © 2009, Henan Polytechnic University
1 4 1
1 1 4
x2 x3 x4
1
1
1
.
它的精确解为x*=(-1, -1, -1, -1 )T.
解 取初始向量x(0)=0,迭代公式为
x1( k x2( k
1) 1)
x(k) 1
x(k) 2
(1
4 x1(k )
x(k) 2
(1
x(k) 1
4 x2(k )
x(k) 3
xi(k )
ቤተ መጻሕፍቲ ባይዱ
控制迭代终止,或用
r (k) b Ax(k)
控制迭代终止.
§4 解线性方程组的超松弛迭代法 © 2009, Henan Polytechnic University
66
第八章 解线性方程组的迭代法
例 用SOR方法解线性方程组Ax=b
4 1 1 1 x1 1
1
1
1
4 1 1
相关文档
最新文档