迭代法求解线性方程组的研究
大学数学实验报告----迭代(一)——方程求解

Do M n , n, 2, 100
运行结果:
M n_Integer : Module y, k , m 2; k m ^ n 1 ;
x Mod k, n ;
Print n, " ", PrimeQ n , " ", x, "
", GCD m, n
Do M n , n, 2, 100
2 True 0 2 3 True 1 1 4 False 0 2 5 True 1 1 6 False 2 2 7 True 1 1 8 False 0 2 9 False 4 1 10 False 2 2 11 True 1 1 12 False 8 2 13 True 1 1 14 False 2 2 15 False 4 1 16 False 0 2 17 True 1 1 18 False 14 2 19 True 1 1 20 False 8 2 21 False 4 1 22 False 2 2 23 True 1 1 24 False 8 2 25 False 16 1 26 False 2 2 27 False 13 1 28 False 8 2 29 True 1 1 30 False 2 2 31 True 1 1 32 False 0 2 33 False 4 1 34 False 2 2 35 False 9 1 36 False 32 2 37 True 1 1 38 False 2 2 39 False 4 1 40 False 8 2
99 False 3 27 100 False 1 67 Null2
m=4 时
输入程序:
M n_Integer : Module y, k , m 4; k m ^ n 1 ; x Mod k, n ; Print n, " ", PrimeQ n , " ", GCD m, n , " ", x Do M n , n, 2, 100
计算方法-线性方程组的迭代法实验

实验五 线性方程组的迭代法实验一. 实验目的(1)深入理解线性方程组的迭代法的设计思想,学会利用系数矩阵的性质以保证迭代过程的收敛性,以及解决某些实际的线性方程组求解问题。
(2)熟悉Matlab 编程环境,利用Matlab 解决具体的方程求根问题。
二. 实验要求建立Jacobi 迭代公式、Gauss-Seidel 迭代公式和超松弛迭代公式,用Matlab 软件实现线性方程组求解的Jacobi 迭代法、Gauss-Seidel 迭代法和超松弛迭代法,并用实例在计算机上计算。
三. 实验内容1. 实验题目(1)分别利用Jacobi 迭代和Gauss-Seidel 迭代求解下列线性方程组,取()T 0,0,0,0,0,0=x ,要求精度510-=ε:⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡---------------626050410100141010014001100410010141001014654321x x x x x x ①Jacobi 迭代:②Gauss-Seidel迭代:(2)分别取1ω、1.05、1.1、1.25和1.8,用超松弛法求解上面的方程组,要求精度=为5ε。
=10-超松弛迭代代码如下所示:运行时初始化如下:分别以不同的松弛因子代入,W=1:W=1.05W=1.1:W=1.25W=1.8:当最大迭代次数增加时,我们可以看到,x向量的各个元素都变无穷大了,迭代发散2. 设计思想要求针对上述题目,详细分析每种算法的设计思想。
求解线性方程组的迭代法,其实质是将所给的方程组逐步地对角化或三角化,即将线性方程组的求解过程加工成对角方程组或三角方程组求解过程的重复。
⑴Jacobi迭代:将一般形式的线性方程组归结为对角方程组求解过程的重复;⑵Gauss-Seidel迭代:将一般形式的线性方程组的求解归结为下三角方程组求解过程的重复;⑶超松弛法:选择合适的松弛因子,利用旧值生成新值,使迭代加速;四.实验体会对实验过程进行分析总结,对比求解线性方程组的不同方法的优缺点,指出每种方法的设计要点及应注意的事项,以及自己通过实验所获得的对线性方程组求解问题的各种解法的理解。
用Jacobi 迭代法,Gauss-Seidol迭代法求解线性方程组,讨论收敛性

2.高斯塞德尔迭代法令M=D-L,A=M-N,得B=(D-L)^-1U=G,G 为高斯塞德尔迭代法的迭代矩阵,得到11111i nk k k ii iij jijjij j i a xa xa xb -++==+=--+∑∑,所以高斯塞德尔计算公式为000012(X ,X ........X )Tn x =,1k ix+=(1111i nk k ij jijji j j i a xa xb -+==+--+∑∑)/ii a ,i=1,2,3.......,k=0,1,2.....【实验问题】用Jacobi 迭代法,Gauss-Seidol 迭代法求解线性方程组,判断收敛性【实验过程与结果】1.理解两种迭代法的计算思想,掌握方法推到计算公式2.用matlab 编程实现3.对实验结果进行分析,比较两种方法,并判断收敛性【结果分析、讨论与结论】两种方法得到的结果一样,雅可比k =17x =-0.1348-1.08293.9203 2.高斯塞德尔k =17x =-0.1348-1.08293.9203【附程序】1.雅可比程序算法function x=jacobi(A,b,x0,tol)n=length(b);x=zeros(n,1);x=x0+1;k=0;while norm(x-x0)>tolif k>20disp('jacobi fails')break;endk=k+1;for i=1:nx0=x;x(i)=(b(i)-A(i,1:n)*x0+A(i,i)*x(i))/A(i,i);endend。
《解线性方程组的VRP-GMRES(m)迭代法》范文

《解线性方程组的VRP-GMRES(m)迭代法》篇一一、引言在科学计算和工程领域,线性方程组的求解是一个重要的研究课题。
传统的解法如高斯消元法、LU分解法等,在处理大规模或复杂问题时往往显得效率低下。
近年来,迭代法因其高效性和适应性,在求解线性方程组中得到了广泛应用。
其中,VRP-GMRES(m)迭代法因其收敛速度快、适用范围广等优点而备受关注。
本文旨在介绍VRP-GMRES(m)迭代法的原理、步骤及其在解线性方程组中的应用。
二、VRP-GMRES(m)迭代法原理VRP-GMRES(m)迭代法是一种基于Krylov子空间的迭代算法,用于求解线性方程组Ax=b。
该方法通过构造一系列的Krylov子空间,逐步逼近解向量x。
与传统的GMRES算法相比,VRP-GMRES(m)在每一步迭代中引入了重启策略和预处理技术,从而提高了算法的稳定性和收敛速度。
三、VRP-GMRES(m)迭代法步骤1. 初始化:选择一个初始向量x0和初始残差r0=b-Ax0。
2. 构建Krylov子空间:通过迭代过程,构建一系列的Krylov 子空间Vn,其中n为迭代次数。
3. 最小二乘问题求解:在每个Krylov子空间中,求解最小二乘问题以获得搜索方向。
4. 重启策略:当达到预设的重启次数m时,重新开始新一轮的迭代过程。
5. 预处理技术:在迭代过程中引入预处理技术,如Jacobi预处理、SOR预处理等,以提高算法的稳定性和收敛速度。
6. 终止条件:当残差满足预设的终止条件时,停止迭代,输出解向量x。
四、VRP-GMRES(m)迭代法在解线性方程组中的应用VRP-GMRES(m)迭代法广泛应用于各种工程和科学计算领域,如流体动力学、电磁场计算、结构力学等。
通过引入重启策略和预处理技术,该方法可以有效地处理大规模、复杂和病态的线性方程组。
与传统的迭代法和直接法相比,VRP-GMRES(m)具有更高的计算效率和更好的稳定性。
此外,该方法还可以根据具体问题的特点进行定制化改进,以满足不同领域的需求。
分别用 jacobi 迭代法和 gauss-seidel 迭代法,求解方程组

分别用 jacobi 迭代法和 gauss-seidel 迭代法,求解方程组【jacobi 迭代法和 gauss-seidel 迭代法分别应用于方程组的求解】1. 引言在数学领域中,方程组的求解一直是一个重要的课题。
为了解决复杂的线性方程组,人们提出了各种迭代方法,其中 jacobi 迭代法和gauss-seidel 迭代法是两种常见的方法。
本文将探讨这两种迭代方法在求解方程组中的应用。
2. jacobi 迭代法的原理和应用jacobi 迭代法是一种基于逐次逼近的迭代方法。
对于线性方程组AX=B,其中 A 是系数矩阵,X 是未知数向量,B 是已知向量。
我们可以通过以下公式进行逐次逼近:X(k+1) = D^(-1)*(B - (L+U)X(k))其中,D、L、U 分别是 A 的对角线、下三角和上三角矩阵。
jacobi 迭代法的优点在于易于理解和实现,但在收敛速度上较慢,需要进行多次迭代才能得到精确解。
在实际应用中,需要根据实际情况选择合适的迭代次数。
3. gauss-seidel 迭代法的原理和应用与 jacobi 迭代法类似,gauss-seidel 迭代法也是一种基于逐次逼近的迭代方法。
不同之处在于,gauss-seidel 迭代法在计算 X(k+1) 时利用了已经得到的 X(k) 的信息,即:X(k+1)_i = (B_i - Σ(A_ij*X(k+1)_j,j≠i))/A_ii这种方式使得 gauss-seidel 迭代法的收敛速度较快,通常比 jacobi 迭代法更快,尤其是对于对角占优的方程组。
4. 分别用 jacobi 迭代法和 gauss-seidel 迭代法求解方程组为了更具体地说明 jacobi 迭代法和 gauss-seidel 迭代法的应用,我们分别用这两种方法来求解以下方程组:2x1 + x2 = 9x1 + 3x2 = 11我们将该方程组写成矩阵形式 AX=B:|2 1| |x1| |9||1 3| * |x2| = |11|我们根据 jacobi 迭代法和 gauss-seidel 迭代法的原理,依次进行迭代计算,直到满足收敛条件。
迭代方法在大型稀疏线性方程组求解中的应用

迭代方法在大型稀疏线性方程组求解中的应用随着科技的不断进步和计算力的提升,大型稀疏线性方程组求解成为科学计算和工程领域中的重要问题。
在这方面,迭代方法因其高效性和适应性成为了研究的热点。
本文将介绍迭代方法在大型稀疏线性方程组求解中的具体应用,并探讨其优缺点。
一、背景介绍近年来,随着科学模拟、数据分析和机器学习等领域的快速发展,对大型稀疏线性方程组的求解需求日益增加。
相比于密集线性方程组,稀疏线性方程组矩阵的核心特征是大部分元素为零,而非零元素相对较少。
传统的直接解法,如高斯消元法和LU分解,在处理大规模稀疏线性方程组时,由于需要存储和操作大量的零元素,会导致计算和存储资源的浪费。
而迭代方法则通过迭代逼近的方式,逐步逼近方程组的解,以较小的计算和存储开销达到较高的求解精度。
二、迭代方法的基本原理迭代方法是一种基于迭代逼近的求解方法,其核心思想是将线性方程组的解逐步逼近,并通过迭代次数的增加逐渐提高逼近的精度。
通常情况下,迭代方法的计算过程可以表达为:x_{k+1} = M^{-1}(b - N x_k)其中,x_k表示第k次迭代的逼近解,M为某种矩阵的逆,N为M与线性方程组系数矩阵之差,b为线性方程组的右端向量。
迭代方法的关键在于选择合适的迭代矩阵M和N,以提高迭代的稳定性和收敛速度。
三、常用的迭代方法1. Jacobi迭代法Jacobi迭代法是最简单和最基础的迭代方法之一。
它的迭代矩阵M选取为线性方程组的对角矩阵,N则为对角矩阵与系数矩阵的差。
Jacobi迭代法的迭代格式为:x_{k+1} = D^{-1}(b - (L+U)x_k)其中,D、L和U分别为对角矩阵、严格下三角矩阵和严格上三角矩阵。
Jacobi迭代法的优点是简单易于实现,缺点是收敛速度较慢。
2. Gauss-Seidel迭代法Gauss-Seidel迭代法是Jacobi迭代法的改进版,其迭代矩阵M选取为线性方程组的下三角矩阵,N则为下三角矩阵与系数矩阵的差。
数值分析第三章线性方程组迭代法

数值分析第三章线性方程组迭代法线性方程组是数值分析中的重要问题之一,涉及求解线性方程组的迭代法也是该领域的研究重点之一、本文将对线性方程组迭代法进行深入探讨。
线性方程组的一般形式为AX=b,其中A是一个n×n的系数矩阵,x和b是n维向量。
许多实际问题,如电路分析、结构力学、物理模拟等,都可以归结为求解线性方程组的问题。
然而,当n很大时,直接求解线性方程组的方法计算量很大,效率低下。
因此,我们需要寻找一种更高效的方法来求解线性方程组。
线性方程组迭代法是一种基于迭代思想的求解线性方程组的方法。
其基本思想是通过构造一个序列{xn},使得序列中的每一项都逼近解向量x。
通过不断迭代,可以最终得到解向量x的一个近似解。
常用的线性方程组迭代法有雅可比迭代法、高斯-赛德尔迭代法和逐次超松弛迭代法等。
雅可比迭代法是其中的一种较为简单的迭代法。
其基本思想是通过分解系数矩阵A,将线性方程组AX=b转化为x=Tx+c的形式,其中T是一个与A有关的矩阵,c是一个常向量。
然后,通过不断迭代,生成序列xn,并使序列中的每一项都逼近解向量x。
高斯-赛德尔迭代法是雅可比迭代法的改进方法。
其核心思想是利用当前迭代步骤中已经求得的近似解向量的信息。
具体而言,每次迭代时,将前一次迭代得到的近似解向量中已经计算过的分量纳入计算,以加速收敛速度。
相比于雅可比迭代法,高斯-赛德尔迭代法的收敛速度更快。
逐次超松弛迭代法是高斯-赛德尔迭代法的改进方法。
其核心思想在于通过引入一个松弛因子ω,将高斯-赛德尔迭代法中的每次迭代变为x[k+1]=x[k]+ω(d[k+1]-x[k])的形式,其中d[k+1]是每次迭代计算得到的近似解向量的一个更新。
逐次超松弛迭代法可以根据问题的特点调整松弛因子的值,以获得更好的收敛性。
除了以上提到的三种迭代法,还有一些其他的线性方程组迭代法,如SOR迭代法、共轭梯度法等。
这些方法都具有不同的特点和适用范围,可以根据问题的具体情况选择合适的迭代法。
线性方程组的迭代式求解方法

线性方程组的迭代式求解方法迭代法解方程的基本原理1.概述把 Ax=b 改写成 x=Bx+f ,如果这一迭代格式收敛,对这个式子不断迭代计算就可以得到方程组的解。
道理很简单:对 x^{(k+1)}=bx^{(k)}+f 两边取极限,显然如果收敛,则最终得到的解满足 \lim_{k\rightarrow\infty } x^{(k)}=x^*=Bx^*+f ,从而必然满足原方程 Ax^*=b 。
迭代方法的本质在于这一次的输出可以当作下一次的输入,从而能够实现循环往复的求解,方法收敛时,计算次数越多越接近真实值。
2.收敛条件充要条件:迭代格式 x=Bx+f 收敛的充要条件是 \rho (B)<1充分条件: \Vert B\Vert <1即 \Vert B\Vert <1 \Rightarrow \rho(B)<1\Leftrightarrow 迭代收敛一、Jacobi迭代法怎样改写Ax=b ,从而进行迭代求解呢?一种最简单的迭代方法就是把第i行的 x_i 分离出来(假定 a_{ii} \ne 0 ):\sum_{j=1}^{n}a_{ij}x_j=b_i\Rightarrow x_i=\frac{b_i-\sum_{j=1,j\ne i}^{n}a_{ij}x_j}{a_{ii}}\quad \\这就是Jacobi(雅可比)迭代法。
迭代格式给定x^{(0)}=\left[x_1^{(0)},x_2^{(0)},\cdots,x_n^{(0)}\rig ht]^T ,则Jacobi法的迭代格式(也称分量形式)为x_i^{(k+1)}=\frac{1}{a_{ii}}\left ( {b_i-\sum_{j=1,j\ne i}^{n}a_{ij}x_j^{(k)}}\right),\quadi=1,2,\cdots,n\\矩阵形式设 A=D-L-U。
Jacobi法的矩阵形式(也称向量形式)为x^{(k+1)}=B_Jx^{(k)}+D^{-1}b\\其中迭代矩阵 B_J=D^{-1}(L+U)收敛条件\begin{eqnarray} \left. \begin{array}{lll} \VertB_J\Vert <1 \\ A 严格对角占优\\ A, 2D-A对称正定\end{array} \right \} \end{eqnarray} \Rightarrow \rho (B_J)<1\Leftrightarrow 迭代收敛特别地,若 A 对称正定且为三对角,则 \rho^2(B_J)=\rho (B_G)<1 。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
迭代法求解线性方程组的研究【摘要】:本文总结了解线性方程组的三个迭代法,Jacobi 迭代法,Gauss-seidel 迭代法,SOR迭代法,并且介绍了现代数值计算软件MATLAB 在这方面的应用,即分别给出三个迭代法的数值实验。
【关键字】:Jacobi 迭代法 Gauss-seidel 迭代法 SOR 迭代法 数值实验一. 引言迭代法是用某种极限过程去逐步逼近线性方程组精确解的方法,它是解高阶稀疏方程组的重要方法。
迭代法的基本思想是用逐次逼近的方法求解线性方程组。
设有方程组b Ax = …① 将其转化为等价的,便于迭代的形式f Bx x += …② (这种转化总能实现,如令b f A I B =-=,), 并由此构造迭代公式 f Bx xk k +=+)()1( …③式中B 称为迭代矩阵,f 称为迭代向量。
对任意的初始向量)0(x,由式③可求得向量序列∞0)(}{k x ,若*)(lim x xk k =∞→,则*x 就是方程①或方程②的解。
此时迭代公式②是收敛的,否则称为发散的。
构造的迭代公式③是否收敛,取决于迭代矩阵B 的性质。
本文介绍三种解线性方程组的最主要的三种迭代法:Jacobi 迭代法,Gauss-Seidel 迭代法和SOR 迭代法。
本文结构如下:第二部分介绍Jacobi 迭代法及其数值实验,第三部分介绍Gauss-Seidel 迭代法及其数值实验,第四部分介绍SOR 迭代法及其数值实验,第五部分总结。
二. 雅克比(Jacobi )迭代法1. 雅克比迭代法的格式设有方程组),,3,2,1(1n i b x aj j nj ij==∑= …①矩阵形式为b Ax =,设系数矩阵A 为非奇异矩阵,且),,3,2,1(,0n i a ii =≠ 从式①中第i 个方程中解出x ,得其等价形式)(111j nj j ijiii x ab a x ∑≠=-= …②取初始向量),,,()0()0(2)0(1)0(n x x x x=,对式②应用迭代法,可建立相应的迭代公式:)(111)()1(∑≠=++-=nj j i k j ij ii k ib x a a x …③ 也可记为矩阵形式: J xJ k F B xk +==)()1( …④若将系数矩阵A 分解为A=D-L-U ,式中⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=nn a a a D2211,⎪⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=--0000121323121nn n n a a a a a a L ,⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛=--0000122311312n n n n a a a a a a D 。
则方程Ax=b 变为 b x U L D =--)( 得 b x U L Dx ++=)( 于是 b D x U L D x 11)(--++=bD x A D I b D x A D D 1111)()(----+-=+-=于是式中④中的 b D f A D I B J J 11,--=-=。
式③和式④分别称为雅克比迭代法的分量形式和矩阵形式,分量形式用于编程计算,矩阵型式用于讨论迭代法的收敛性。
2. 雅克比迭代法的程序雅克比迭代法的MATLAB 函数文件 ag_jacobi.m 如下。
Function x= agui _jacobi(a,b)%a 为系数矩阵,b 为右端向量,0x 为初始向量(默认为零向量) %e 为精度(默认为1e-6),n 为最大迭代次数(默认为100) x 为返回解向量。
n=length(b); N=100; e=1e-6;x0=zeros(n,1); x=x0; x0=x+2*e; k=0;d=diag(diag,0); 1=-tril(a,-1); u=-triu(a,1);while norm(x0-x,inf)>e&k<N k=k+1; x0=x;x=inv(d)*(l+u)*x+inv(d)*b; k disp('x ) endif k=N warning(‘以达到最大迭代次数’);end3. 数值例子用雅克比迭代法求解如下线性方程组。
⎪⎩⎪⎨⎧=+--=-+-=--4258321072210321321321x x x x x x x x x 解:在MATLAB 命令窗口求解例题>>[10 -1 2;-1 10 -2;-1 -1 5]a=10 -1 2 -1 10 -2 -1 -1 5 >>b=[72;83;42] b= 72 83 42>>x= agui _jacobi(a,b) 计算结果为: k=17.20000000000000 8.30000000000000 8.40000000000000 k=29.710000000000000 10.70000000000000 11.50000000000000 … k=1610.99999968449670 11.99999968449670 12.99999962583317 x=10.99999968449670 11.99999968449670 12.99999962583317.三.高斯—赛德尔(Gauss-Seidel )迭代法1. 高斯—赛德尔迭代法的格式。
雅克比迭代法的优点是公式简单,迭代矩阵容易计算。
在每一步迭代时,用)(k x 的全部分量求出)1(+k x的全部分量,因此称为同步迭代法,计算时需保留两个近似解)(k x和)1(+k x。
但在雅克比迭代过程中,对已经计算出的信息未能充分利用,即在计算第i 个分量)1(+k i x 时,已经计算出的最新分量)1(1)1(1,,+-+k i k x x 没有被利用。
从直观上看,在收敛的前提下,这些新的分量)1(1)1(1,,+-+k i k x x 应比旧的分量)(1)(1,,k i k x x - 更好,更精确一些。
因此,如果每计算出一个新的分量便立即用它取代对应的旧分量进行迭代,可能收敛的速度更快,并且只需要储存一个近似解向量即可。
据此思想可构造高斯—赛德尔(Gauss-Seidel )迭代法,其迭代公式为 )(1)(111)1()1(i k j i j ni j ijk j ij ii k ib x ax a a x +-=∑∑-=+=++ (i=1,2,…,n )也可以写成矩阵形式S G k S G k f x B x--++=)()1(仍将系数矩阵A 分解为 U L D A --= 则方程组变为 b x U L D =--)( 得 b Ux Lx Dx ++= 将最新分量代替为旧分量,得 b Ux Lx Dxk k k ++=++)()1()1(即 b Ux x L D k k +=-+)()1()(于是有 b L D Ux L D xk k 1)(1)1()()(--+-+-=所以 U L D B S G 1)(---= b L D f S G 1)(---=因为高斯—赛德尔迭代法比雅克比迭代法收敛快,这个结论在多数情况下是成立的,但也有相反的情况,即高斯—赛德尔迭代法比雅克比迭代法收敛慢,甚至还有雅克比迭代法收敛,高斯—赛德尔迭代法发散的情形。
2. 高斯—赛德尔迭代法的程序高斯—赛德尔迭代法在MATLAB 的函数文件 agui_GS.m 如下 Function x= agui_GS(a,b)%a 为系数矩阵,b 为右端向量,x0为初始向量(默认为零向量)%e 为精度(默认为1e-6),N 为最大迭代次数(默认为100),x 为返回解向量 n=length(b); N=100; e=1e-6; x0=zeros(n,1); x=x0; x0=x+2*e; k=0; a1=tril(a); a2=inv (a1);while norm(x0-x,inf)>e&k<N k=k+1; x0=x;x=-a2*(a-a1)*x0+a2*b; format long k disp('x ) endif k=N warning(‘已达到最大迭代次数’);end4. 数值例子在MATLAB 命令窗口求解例1解:>>a=[10 -1 2;-1 10 -2;-1 -1 5] a=10 -1 2 -1 10 -2 -1 -1 5 >>b=[72;83;42] b= 72 83 42>>x=agui_GS(a,b). 计算结果为: k=17.20000000000000 9.02000000000000 11.64400000000000 k=210.43080000000000 11.67188000000000 12.82053600000000 k=310.99999996545653 11.99999997883050 12.99999998885741 x=10.99999996545653 11.99999997883050 12.99999998885741三. 超松弛(SOR )迭代法1. 超松弛迭代法的格式超松弛迭代法(Successive Over Relaxation Method,SOR 方法)是高斯—赛德尔迭代法的一种改进,是解大型稀疏方程组的有效方法之一。
设已知第k 次迭代向量)(k x ,及第k+1次迭代向量的前i-1个分量)1(+k jx ,(j=1,2,…i-1),现在研究如何求向量)1(+k x的第i 个分量)1(+k ix 。
首先,有高斯—赛德尔迭代法求出一个值,记为)(1~1)()1(11)1(∑∑+=+-=+--=ni j k j ijk j i j ij i ii k ix ax a b a x (i=1,2,…n )再将第k 次迭代向量的第i 个分量)(k j x 与)1(~+k i x 进行加权平均,得)1(+k ix ,即:)1(+k ix )1()(~)1(++-=k i k i x x ωω)~()()1()(k i k i k i x x x -+=+ω于是的SOR 迭代公式 )()(1)1(11)()1(k j nj ij k ji j ij i iik ik ix a xa b a xx ∑∑=+-=+--+=ω(i=1,2,…n) …①或)()1()(1)1(11)()1(k j ni j ijk ji j ij i iik ik ix axa b a xx∑∑+=+-=+--+-=ωω (i=1,2,…n ) …②当ω=1时,式①即为高斯—赛德尔迭代法;当0<ω<1时,式①称为低松弛方法,当某些方程组用高斯—赛德尔迭代法不收敛时,可以用低松弛方法获得收敛;当ω>1时,式①称为超松弛方法,可以用来提高收敛速度。