研究生数值分析(12)高斯-赛德尔(Gauss-Seidel)迭代法

合集下载

高斯赛德尔法

高斯赛德尔法

的系数矩阵A可逆且主对角元素都不为零,令
)
并将A分解成
A = (A D) + D
Dx = (D A)x + b 从而方程可以写成 x = B1 x + f1 令 B = I D A, f = D b 其中
1 1 1 1
以 B 为迭代矩阵的迭代法 称为雅克比迭代法。
1
x ( k +1) = B1 x ( k ) + f1
(k ) 由雅可比迭代公式可知,在迭代的每一步计算过程中是用x 的全部分量 ( k +1 ) ( k+1) x i 时,已经算出最新的 来计算 x 的 所有分量 , 显然在计算第i个分量 分量,但没被利用。因此,将最新算出来的第k+1次近似加以利用,就 得到了高斯赛德尔迭代法。 A = D L U 将矩阵A分解成 其中 D = diag ( a11 ,a 22 ,..., a nn ) , L ,U 是A的主对角除外的下三角 和上三角部分,于是有 (D L )x = Ux + b
ρ 是迭代矩阵的谱半径(B0中绝对值最大的特征值的绝对值)
首先取 α =1.5,迭代若干次后,有 式中: 为第k 次迭代的节点电压与该节 点前次迭代值的差值的绝对值 U ( m ) U ( m 1) 为所有节点中差值绝对值最大的 ∞ Bso为加速迭代矩阵 再有
U ( m ) U ( m 1)
将上式带入最佳加速因子公式得到近似最佳加 速因子 α 。
x = B2 x + f 2 即 B = (D L ) U , f = (D L ) 其中 以 B2 为迭代矩阵的迭代法 x ( k +1) = B2 x ( k ) + f 2 称为高斯-赛德尔迭代法。

gauss-seidel迭代法收敛判断

gauss-seidel迭代法收敛判断

Gauss-Seidel迭代法是一种用于求解线性方程组的迭代算法,该算法在科学计算和工程领域被广泛应用。

在使用该算法时,我们需要考虑其收敛性,以确保结果的准确性和可靠性。

下面我们将介绍Gauss-Seidel迭代法收敛判断的相关内容。

1. 收敛性定义在使用迭代法求解线性方程组时,迭代算法的收敛性是一个非常重要的问题。

一个迭代算法如果能够在有限步内得到一个接近于真实解的近似解,就称为收敛。

否则,如果迭代算法无法收敛或者收敛速度非常慢,就需要考虑改进算法或者选择其他更适合的算法。

2. Gauss-Seidel迭代法Gauss-Seidel迭代法是一种逐次逼近法,它通过不断地逼近线性方程组的解来求得近似解。

这种迭代算法的优点是简单易行,适用于各种情况。

然而,它的收敛性需要进行严格的判断。

3. 收敛条件对于Gauss-Seidel迭代法,我们可以使用以下收敛条件来进行判断:a) 对角占优条件:如果线性方程组的系数矩阵是严格对角占优的,那么Gauss-Seidel迭代法一定收敛。

b) 正定条件:如果线性方程组的系数矩阵是正定的,即所有的特征值都是正的,那么Gauss-Seidel迭代法也一定收敛。

c) 非奇异条件:如果线性方程组的系数矩阵是非奇异的,即行列式不为0,那么Gauss-Seidel迭代法也一定收敛。

4. 不收敛的情况尽管Gauss-Seidel迭代法在很多情况下能够收敛,但也存在一些情况下它不收敛的情况。

当线性方程组的系数矩阵不满足对角占优条件、正定条件或者非奇异条件时,Gauss-Seidel迭代法就可能不收敛。

此时,我们需要考虑改进算法或者选择其他更适合的迭代算法。

5. 收敛速度除了考虑Gauss-Seidel迭代法的收敛性外,还需要关注其收敛速度。

一般来说,Gauss-Seidel迭代法的收敛速度相对较快,特别是在满足对角占优条件、正定条件或非奇异条件的情况下。

然而,如果在实际使用中发现收敛速度较慢,也可以考虑使用加速方法如SOR方法等来提高收敛速度。

Gauss-Seidel迭代法

Gauss-Seidel迭代法

G a u s s-S e i d e l迭代法-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN数值分析课程论文姓名:学号:Gauss-Seidel迭代法求解线性方程组摘要线性方程组的求解在许多的工程技术中是一个极为常见的问题,对于线性方程组的求解无论从理论上还是实践应用上都已经成熟.对于一般线性方程组的求解有Gauss消元法为基础的直接法,也有迭代法.其中Gauss-Seidel是一个重要的组成部分.鉴于此,本论文细致地研究了用Gauss-Seidel迭代法求解线性方程组.论文的第一部分先介绍了迭代法求解线性方程组的一般模式,并给出这种迭代法的收敛性条件,Gauss-Seidel迭代法求解线性方程组的基本原理.这一部分是Gauss-Seidel迭代法的理论基础.论文的第二部分给出了Gauss-Seidel迭代法的具体操作步骤,以伪代码的形式细致的描绘如何使用Gauss-Seidel迭代法的求解方程组.同时,为了验证算法的有效性,在这一部分,还引入一个简单的算例,用于MATLAB编程发现计算结果完全正确.论文的第三部分给出了关于Gauss-Seidel迭代法的MATLAB程序,用于计算线性方程组.关键词:Gauss-Seidel迭代法,基本原理,算例,MATLAB程序目录1 Gauss-Seidel迭代法的基本理论 (1)1.1线性方程组的迭代法求解 (1)1.2Gauss-Seidel迭代法的原理 (2)2.具体的算例和操作步骤 (3)2.1. Gauss-Seidel迭代法的伪代码 (3)2.2.具体的算例验证算法的有效性 (3)3.MATLAB程序 (4)参考文献 (6)Gauss-Seidel 迭代法求解线性方程组一. Gauss-Seidel 迭代法的基本理论1.1线性方程组的迭代法求解在考虑求解线性方程组Ax=b 时,其中A 为非奇异矩阵.尽管Guass 消元法通过有限次运算可以求解此问题,其对应的计算复杂度为3O(n ).但是对于工程技术中和某些偏微分方程过程中出现的大型稀疏型矩阵利用迭代法可以更快的收敛,找到解.另外一方面,由于迭代法占用的计算机内存少,且便于计算.这两方面的优势促成了迭代法求解线性方程组的研究.关于迭代法的收敛的几个判定条件 1(迭代法基本原理)设有方程组f Bx x +=,对于任意初始向量()0x 及任意f ,解此方程组的迭代法(即()()f Bx x k k +=+1)收敛的充要条件是()1<B ρ.2(迭代法收敛的充分条件)如果方程组f Bx x +=的迭代公式为()()f Bx x k k +=+1(()0x 为任意初始向量),且迭代矩阵的某一种范数1<=q B v ,则:︒1迭代法收敛;︒2()()()v k k vk x x q qx x 11-*--≤-;︒3()()()v kvk x x q q xx 011--≤-*.定理3 如果mn RA ⨯∈为严格对角占优阵或为不可约弱对角占优阵,则对于任意的()0x ,解方程组b Ax =的Jacobi 迭代法,Gauss-Seidel 迭代法均收敛.定理4如果A 为对称正定矩阵,且20<<ω,则解式b Ax =的SOR 方法收敛.1.2Gauss-Seidel 迭代法的原理由Jacobi方法迭代公式()()()()010k k xx B x f +⎧⎪⎨=+⎪⎩初始向量,可知,迭代的每一步计算过程,都是用()k x 的全部分量来计算()1+k x 的所有分量,显然在计算第i 个分量()1+k ix时,已经计算出的最新分量()11+k x ,()12+k x ,…,()11+-k i x 没有被利用.从直观上看,最新计算出的分量可能比旧的分量要好些.因此,对这些最新计算出来的第1+k 次近似()1+k x 的分量()1+k jx 加以利用,就得到所谓解方程组的Gauss-Seidel 迭代法(简称G-S 方法):()()()()()T=002010n x x x x ,,, (初始向量),()()()()n i k x a x a b a x i j n i j k j ij k j ij i iik i,,2,1;,2,1,0111111 ==⎪⎪⎭⎫ ⎝⎛--=∑∑-=+=++或写为()()()()()⎪⎩⎪⎨⎧⎪⎪⎭⎫ ⎝⎛--=∆==∆+=∑∑-==++.1,,,2,1;,2,1,01111i j ni j k j ij k iij i ii i i k i k i x a x a b a x n i k x x x上面第2个式子利用了最新计算出的分量()11+k x ,第i 个式子利用了计算出的最新分量()()1,,2,11-=+i j x k j .还可写成矩阵形式()()()()()()k k k k k Ux b x L D Ux Lx b Dx+=-++=+++111,,若设()1--L D 存在,则()()()()b L D Ux L D x k k 111--+-+-=, 于是Gauss-Seidel 迭代公式的矩阵形式为()()f Gx x k k +=+1,()6.2.8 其中 ()U L D G 1--=,()b L D f 1--=.由此可以看出,应用Gauss-Seidel 迭代法解式b Ax =,就是对方程组f Gx x +=应用迭代法.G 称为解式的Gauss-Seidel 迭代法的迭代矩阵.Gauss-Seidel 迭代法的一个明显优点是,在用计算机计算时,只需一组工作单元,以便存放近似解.由式可以看出,每迭代一步只需计算一次矩阵与向量的乘法.二.具体的算例和操作步骤2.1. Gauss-Seidel 迭代法的伪代码 1.输入问题的参数A,b 2.分解A 为D,L,U.3.计算迭代方程G ,f.4.开始迭代,随机设定一个初值.5.以迭代方程更新x 的值.6.如果到达迭代次数,则进入步骤7;否则,回到步骤5.7.输出x ,结束.2.2.具体的算例验证算法的有效性 求解如下的线性方程组1231231238-3+2=204+11-=336+3+12=36x x x x x x x x x ⎧⎪⎨⎪⎩ 这个方程的真实解为(3,2,1). 程序运行结果: 情况1:输入GS (A,b ) GS(A,b)xhis =0 0 0 2.5000 2.0909 1.2273 2.9773 2.0289 1.0041 3.0098 1.9968 0.9959 2.9998 1.9997 1.0002 2.9998 2.0001 1.0001 3.0000 2.0000 1.0000 3.0000 2.0000 1.0000 3.0000 2.0000 1.0000 3.0000 2.0000 1.0000 3.0000 2.0000 1.0000 ans = 3.0000 2.00001.00000.51.5解的迭代情况图一。

雅可比迭代法和高斯塞德尔迭代法对比

雅可比迭代法和高斯塞德尔迭代法对比

雅可比迭代法和高斯塞德尔迭代法对比引言雅可比迭代法和高斯塞德尔迭代法是数值分析中常用的迭代求解线性方程组的方法。

它们都是通过迭代更新变量的值,逐渐逼近方程组的真实解。

本文将详细讨论这两种迭代法的原理、特点和适用情况,并给出一些比较和应用实例。

雅可比迭代法(Jacobi Iteration)雅可比迭代法是一种逐个更新变量的值的迭代方法。

对于线性方程组Ax = b,雅可比迭代法的更新公式如下:x i(k+1)=1a ii(b i−∑a ijnj=1j≠ix j(k))其中,aii表示系数矩阵A的第i行第i列的元素,而bi表示方程组的第i个方程的右侧常数。

特点1.雅可比迭代法的计算过程简单,容易理解和实现。

2.每次迭代只更新一个变量的值,相邻两次迭代之间没有数据依赖关系,可以并行计算。

3.雅可比迭代法收敛的条件是系数矩阵A满足严格对角占优条件或对称正定条件。

优缺点•优点:简单易懂,在一些特定情况下收敛速度较快。

•缺点:收敛速度相对较慢,尤其是在系数矩阵A的条件数较大时;不适用于对角占优条件较弱的问题。

高斯塞德尔迭代法(Gauss-Seidel Iteration)高斯塞德尔迭代法是一种逐个更新变量的值,并立即使用最新的值进行下一个变量的更新的迭代方法。

对于线性方程组Ax = b,高斯塞德尔迭代法的更新公式如下:x i(k+1)=1a ii(b i−∑a iji−1j=1x j(k+1)−∑a ijnj=i+1x j(k))特点1.高斯塞德尔迭代法相较于雅可比迭代法,每次迭代可以使用当前迭代步骤中已更新的变量值,因此收敛速度更快。

2.如果系数矩阵A是严格对角占优或对称正定的,高斯塞德尔迭代法一定收敛。

优缺点•优点:相较于雅可比迭代法,收敛速度更快,对于条件数较大的问题也有较好的效果。

•缺点:实现稍微复杂一些,每次迭代的计算依赖于之前已更新的变量值,无法并行计算。

雅可比迭代法和高斯塞德尔迭代法的比较收敛速度在一些特定的问题中,雅可比迭代法可以比高斯塞德尔迭代法更快地收敛。

数值分析中的高斯-赛德尔迭代法-教案

数值分析中的高斯-赛德尔迭代法-教案

数值分析中的高斯-赛德尔迭代法-教案一、引言1.1背景介绍1.1.1数值分析在现代科学和工程中的应用1.1.2高斯-赛德尔迭代法在解决线性方程组中的重要性1.1.3迭代法的基本概念和分类1.1.4高斯-赛德尔迭代法与其他迭代法的比较1.2教学目标1.2.1理解高斯-赛德尔迭代法的数学原理1.2.2学会应用高斯-赛德尔迭代法解决实际问题1.2.3掌握高斯-赛德尔迭代法的编程实现1.2.4分析高斯-赛德尔迭代法的收敛性和效率1.3教学方法1.3.1采用理论讲解与实践操作相结合的方式1.3.2利用多媒体和板书相结合的教学手段1.3.3引导学生进行小组讨论和问题解答1.3.4通过案例分析和作业练习巩固知识点二、知识点讲解2.1高斯-赛德尔迭代法的数学原理2.1.1线性方程组的迭代解法概述2.1.2高斯-赛德尔迭代法的迭代公式2.1.3高斯-赛德尔迭代法的矩阵形式2.2高斯-赛德尔迭代法的应用2.2.1高斯-赛德尔迭代法在电路分析中的应用2.2.2高斯-赛德尔迭代法在热传导问题中的应用2.2.3高斯-赛德尔迭代法在流体力学中的应用2.2.4高斯-赛德尔迭代法在经济模型中的应用2.3高斯-赛德尔迭代法的实现2.3.1高斯-赛德尔迭代法的算法步骤2.3.2高斯-赛德尔迭代法的编程实现2.3.3高斯-赛德尔迭代法的程序调试与优化2.3.4高斯-赛德尔迭代法的软件工具介绍三、教学内容3.1高斯-赛德尔迭代法的收敛性分析3.1.1收敛性的定义和判定条件3.1.2高斯-赛德尔迭代法的收敛速度3.1.3收敛性分析的理论基础3.1.4收敛性分析的实例演示3.2高斯-赛德尔迭代法的效率分析3.2.1计算效率的定义和评价指标3.2.2高斯-赛德尔迭代法与其他迭代法的效率比较3.2.3影响高斯-赛德尔迭代法效率的因素3.2.4提高高斯-赛德尔迭代法效率的方法3.3.1案例一:电路分析中的高斯-赛德尔迭代法应用3.3.2案例二:热传导问题中的高斯-赛德尔迭代法应用3.3.3案例三:流体力学中的高斯-赛德尔迭代法应用3.3.4案例四:经济模型中的高斯-赛德尔迭代法应用四、教学目标4.1知识与技能目标4.1.1掌握高斯-赛德尔迭代法的基本原理和迭代公式4.1.2学会使用高斯-赛德尔迭代法解决线性方程组问题4.1.3能够编写高斯-赛德尔迭代法的程序代码4.1.4能够分析高斯-赛德尔迭代法的收敛性和计算效率4.2过程与方法目标4.2.1培养学生的逻辑思维能力和数学建模能力4.2.2培养学生运用迭代法解决实际问题的能力4.2.3培养学生进行数学实验和数据分析的能力4.2.4培养学生进行团队合作和交流讨论的能力4.3情感态度与价值观目标4.3.1培养学生对数值分析的兴趣和热情4.3.2培养学生的科学精神和创新意识4.3.3培养学生严谨治学和精益求精的态度4.3.4培养学生的国际视野和跨文化交流能力五、教学难点与重点5.1教学难点5.1.1高斯-赛德尔迭代法的数学原理和迭代公式5.1.2高斯-赛德尔迭代法的收敛性分析5.1.3高斯-赛德尔迭代法的编程实现和调试5.1.4高斯-赛德尔迭代法在实际问题中的应用5.2教学重点5.2.1高斯-赛德尔迭代法的基本原理和迭代公式5.2.2高斯-赛德尔迭代法的收敛性分析5.2.3高斯-赛德尔迭代法的编程实现和调试5.2.4高斯-赛德尔迭代法在实际问题中的应用5.3教学策略5.3.1采用案例教学法和问题导向教学法5.3.2利用多媒体和板书相结合的教学手段5.3.3引导学生进行小组讨论和问题解答5.3.4通过案例分析和作业练习巩固知识点六、教具与学具准备6.1教具准备6.1.1多媒体投影仪和计算机6.1.2白板和彩色粉笔6.1.3高斯-赛德尔迭代法的PPT课件6.1.4高斯-赛德尔迭代法的程序代码和软件工具6.2学具准备6.2.1笔记本电脑和编程软件6.2.2数值分析教材和相关参考书籍6.2.3高斯-赛德尔迭代法的案例分析和作业练习6.2.4小组讨论和问题解答的场地和设备6.3教学资源准备6.3.1高斯-赛德尔迭代法的在线课程和视频教程6.3.2高斯-赛德尔迭代法的学术论文和研究成果6.3.3高斯-赛德尔迭代法的软件工具和程序库6.3.4高斯-赛德尔迭代法的实际应用案例和项目七、教学过程7.1导入新课7.1.1引入数值分析和高斯-赛德尔迭代法的背景7.1.2提出问题和挑战,激发学生的兴趣和好奇心7.1.3回顾迭代法的基本概念和分类7.1.4阐述高斯-赛德尔迭代法的重要性和应用领域7.2知识讲解7.2.1详细讲解高斯-赛德尔迭代法的数学原理和迭代公式7.2.2通过实例演示高斯-赛德尔迭代法的应用和计算过程7.2.3分析高斯-赛德尔迭代法的收敛性和计算效率7.2.4讲解高斯-赛德尔迭代法的编程实现和调试技巧7.3实践操作7.3.1分组进行高斯-赛德尔迭代法的编程实现和调试7.3.2通过案例分析和作业练习巩固知识点7.3.3引导学生进行小组讨论和问题解答7.3.4提供反馈和指导,帮助学生提高编程能力和问题解决能力7.4.2引导学生对高斯-赛德尔迭代法的理解和应用进行反思7.4.3提供进一步学习和研究的建议和资源7.4.4鼓励学生参与相关的学术活动和项目实践八、板书设计8.1高斯-赛德尔迭代法的基本原理和迭代公式8.1.1高斯-赛德尔迭代法的迭代公式8.1.2高斯-赛德尔迭代法的矩阵形式8.1.3高斯-赛德尔迭代法的收敛条件8.1.4高斯-赛德尔迭代法的计算步骤8.2高斯-赛德尔迭代法的应用案例8.2.1电路分析中的高斯-赛德尔迭代法应用8.2.2热传导问题中的高斯-赛德尔迭代法应用8.2.3流体力学中的高斯-赛德尔迭代法应用8.2.4经济模型中的高斯-赛德尔迭代法应用8.3高斯-赛德尔迭代法的编程实现和调试8.3.1高斯-赛德尔迭代法的算法步骤8.3.2高斯-赛德尔迭代法的编程实现8.3.3高斯-赛德尔迭代法的程序调试与优化8.3.4高斯-赛德尔迭代法的软件工具介绍九、作业设计9.1基础练习题9.1.1编写高斯-赛德尔迭代法的程序代码9.1.2使用高斯-赛德尔迭代法解决线性方程组问题9.1.3分析高斯-赛德尔迭代法的收敛性和计算效率9.1.4比较高斯-赛德尔迭代法与其他迭代法的优缺点9.2案例分析题9.2.1分析电路分析中的高斯-赛德尔迭代法应用案例9.2.2分析热传导问题中的高斯-赛德尔迭代法应用案例9.2.3分析流体力学中的高斯-赛德尔迭代法应用案例9.2.4分析经济模型中的高斯-赛德尔迭代法应用案例9.3扩展阅读与思考题9.3.1阅读相关的学术论文和研究成果9.3.2思考高斯-赛德尔迭代法的改进和优化方法9.3.3探索高斯-赛德尔迭代法在其他领域的应用9.3.4分析高斯-赛德尔迭代法在并行计算中的应用十、课后反思及拓展延伸10.1教学反思10.1.1反思教学内容的组织和讲解方式10.1.2反思学生的参与度和学习效果10.1.3反思教学方法和策略的有效性10.1.4反思教学资源和材料的适用性10.2拓展延伸10.2.1探索高斯-赛德尔迭代法的进一步研究和应用10.2.2学习其他数值分析方法和算法10.2.3参与相关的学术活动和项目实践10.2.4拓宽国际视野,了解数值分析的前沿动态重点关注环节的补充和说明:1.高斯-赛德尔迭代法的数学原理和迭代公式的讲解,确保学生理解并掌握基本概念。

高斯-塞德尔(Gauss-Seidel)迭代法

高斯-塞德尔(Gauss-Seidel)迭代法

将A分裂成A =L+D+U,则 Ax b 等价于
( L+D+U )x = b
于是,则高斯—塞德尔迭代过程
Dx(k1) Lx(k1) Ux(k) b
因为 D 0 ,所以 D L D 0

(D L)x(k1) Ux (k) b
x(k1) (D L)1Ux (k) (D L)1b
数值计算方法
高斯-塞德尔(Gauss-Seidel)迭代法
1.1 高斯-塞德尔迭代法的基本思想
在Jacobi迭代法中,每次迭代只用到前一次的 迭代值,若每次迭代充分利用当前最新的迭代值,
即在求
x (k 1) i
时用新分量
x1( k
1)
,
x
(k 2
1)
,,
x (k 1) i 1
代替旧分量
x1(
k
)
,
x1(k
x
(k 2
1) 1)
( x2(k ) x3(k ) (2x1(k1)
1) / 8 x3(k) 4) /10
x3(k
1)
( x1(k 1)
x (k 1) 2
3) / 5
取初始迭代向量 x(0) (0 ,0 ,0)T ,迭代结果为:
1.2 Gauss—Seidel 迭代法的矩阵表示
令 G1 (D L)1U , d1 (D L)1b
则高斯-塞德尔迭代形式为:
x (k 1) G1 x (k ) d1
1.3 高斯—塞德尔迭代算法实现
高斯-塞德尔迭代算法的计算步骤与流程图与
雅可比迭代法大致相同,只是一旦求出变元 xi
的某个新值
后, x (k1) i
就改用新值

高斯—塞德尔迭代法

高斯—塞德尔迭代法

高斯 - 塞德尔迭代法
1.高斯 - 塞德尔迭代法公式的矩阵形式
首先将高斯 - 塞德尔迭代法的公式表示为矩阵形式,为此设
这里是系数矩阵 A 的对角部分,是严格下三角部分,是严格上三角部分,则高斯 - 塞德尔迭代法的公式可表示为
(1)
用矩阵乘等式两边得
再用矩阵乘等式两边得
(2)
其中矩阵称为高斯—塞德尔迭代矩阵。

由此可见,高斯 - 塞德尔迭代法是一般迭代法中迭代矩阵为的
特殊情形。

需要指出的是,由于矩阵难于计算,所以式(2)多用在理论分析中。

2.高斯—塞德尔迭代法计算框图(见图)
高斯—塞德尔迭代法计算框图
3.高斯—塞德尔迭代法计算方法的代码实现(见GaoSiSaiDeEr.c)
4.结果分析:。

【论文】浅析Gauss-Seidel迭代在方程迭代计算中的应用

【论文】浅析Gauss-Seidel迭代在方程迭代计算中的应用

浅析Gauss-Seidel 迭代在方程迭代计算中的应用摘要:科学研究与生产实践中许多问题都可归结为方程组的求解,对于方程组的求解,主要有直接法求解和迭代法求解,我们通常用的迭代法有Jacobi,Gauss-Seidel 迭代法。

本文主要针对Gauss-Seidel 迭代法在三类方程组迭代计算中的应用进行研究。

一、Gauss-Seidel 迭代法在求解大型稀疏线性方程组中的应用。

Gauss-Seidel 迭代法充分利用矩阵的稀疏性去解大型稀疏线性代数方程组。

本文通过实际算例验证并分析了它的计算速度和效率。

二、Gauss-Seidel 迭代法在求解H-矩阵线性方程组中的应用。

本文针对系数矩阵 A 为H -矩阵, 为线性方程组 Ax =b 引入了两种形式的预处理矩阵 I +S 和 I +S , 给出了相应的预处理 Gauss-Seidel 方法。

三、异步并行非线性对称Gauss-Seidel 迭代法在求解特殊非线性方程组的应用。

利用非线性方程组的特殊结构,建立了一类并行非线性 Gauss-Siedel 型迭代算法。

关键词:Gauss-Seidel 迭代法,线性方程组,H -矩阵,非线性方程组科学研究与生产实践中许多问题都可归结为线性方程组的求解,高效求解线性方程组成为许多科学与工程计算的核心。

解线性方程组的传统方法是利用高斯消元法或矩阵的三角分解法等直接求解,虽然传统方法具有理论上直接得到真解的优点,但当系数矩阵条件数很大时,存在严重的稳定性问题。

同时,当系数矩阵的非零元结构不规则或带宽较大时,其计算量与存储量也十分地大。

与直接法相比,迭代法只需存储原系数矩阵,对应于预处理的几个辅助矩阵和少量的几个向量,且迭代法中除求解辅助线性方程组外,其余的计算主要是系数矩阵与向量的乘积,从而能充分利用系数矩阵的特性来减少计算量。

而且随着计算机技术的发展,计算机的存储量日益增大,计算速度也迅速提高,线性方程组的迭代求解在科学与工程计算中也起着越来越重要的作用。

Gauss~Seidel迭代法求解线性方程组

Gauss~Seidel迭代法求解线性方程组
x[i]/=A[i][i];
else
return1;
}
++k;
}while(IsSatisfyPricision(x,x_former,n) && k<MAX_Number);
if(k>=MAX_Number)
return1;
else
{
printf("\nGauss-Seidel迭代次数为%d 次",k);
3.初始向量
得到:
迭代12次后算出
x[1] = -4.0
x[2] = 3.0
x[3] = 2.0
五.程序
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<math.h>
#defineMAX_n100
#definePRECISION0.0000001
{
inti;
for(i=1;i<=n;++i)
printf("\nx[%d]=%f",i,x[i]);
}
intIsSatisfyPricision(floatx1[],floatx2[],intn)//判断是否在规定精度内
{
inti;
for(i=1;i<=n;++i)
if(fabs(x1[i]-x2[i])>PRECISION)return1;
#defineMAX_Number1000
voidVectorInput(floatx[],intn)//输入初始向量
{
inti;

雅克比迭代法和高斯赛德尔迭代法的算法描述

雅克比迭代法和高斯赛德尔迭代法的算法描述

雅克比迭代法和高斯赛德尔迭代法的算法描述一. 雅克比迭代法雅克比迭代法(Jacobi Iteration)是计算数值解的一种迭代方法,它遵循一个简单的步骤:给定问题的初始值,按照一定的规则,用求出某一个矩阵元素,替换当前值,得到下一个矩阵值,重复这个步骤,直到满足某一个条件,即为所求解的结果。

雅克比迭代法求解矩阵问题的一般步骤为:(1)给定初始矩阵A和右端值矩阵B,将第i行第j列的元素表示为aij,bi;(2)第i行其它元素之和定义为s(i) =∑(j≠i)|a(i, j)|,亦即∑|aij|;(3)如果s(i)不等于0,则第i行第i列元素的值更新为xi=1 (b(i) ∑(j≠i)[a(i, j)x(j)])/a(i, i)(4)重复步骤3,直到满足|X(i)X(i)|<ε(ε为设定的误差),此时x即为所求解的结果。

二. 高斯-赛德尔迭代法高斯-赛德尔迭代法(Gauss-Seidel Iteration)是另一种迭代方法,算法的基本思想也是:通过迭代,计算出当前矩阵的第i行第j列的元素xi;然后更新第i行第j列元素的值,继续迭代,直到某种条件满足,即可求出矩阵的解。

高斯-赛德尔迭代法的基本步骤为:(1)给定初始矩阵A和右端值矩阵B,将第i行第j列的元素表示为aij,bi;(2)第i行其它元素之和定义为s(i) =∑(j≠i)|a(i, j)|,亦即∑|aij|;(3)如果s(i)不等于0,则第i行第i列元素的值更新为xi=1 (b(i) ∑(j<i)[a(i, j)x(j)]∑(j>i)[a(i,j)x(j)] )/a(i, i)(4)重复步骤3,直到满足|X(i)X(i)|<ε(ε为设定的误差),此时x即为所求解的结果。

总结从上面的对比来看,雅克比迭代法和高斯赛德尔迭代法的步骤基本一致,均采用迭代的方式求解矩阵A的解X,不同的是,高斯赛德尔迭代法在更新矩阵A的第i行第i列元素时,采用把小于i的j元素的值替换成当前迭代求得的值来计算,而雅克比迭代法采用把全部j元素的值替换成当前迭代求得的值来计算。

研究生数值分析(12)高斯-赛德尔(Gauss-Seidel)迭代法

研究生数值分析(12)高斯-赛德尔(Gauss-Seidel)迭代法
的模的最大值称为矩阵 A 的谱半径,记作 ( A)

( A)

max
1in
i
前面,我们在应用雅可比迭代法与高斯-赛德尔迭 代法解一阶线性方程组时,判断各迭代公式是收敛还
是发散,都要计算雅可比迭代矩阵 BJ 与高斯-赛德尔
迭代矩阵 BG 的特征值.由于矩阵 A 有些算子范数(比

A与
A 1 )远比矩阵 A 的特征值容易计算,为此给
雅可比迭代法与高斯-赛德尔迭代法都收敛。
定理5 若方程组 AX=b 的系数矩阵 A [aij ]nn 为对称正定矩阵。则对任意初始向量 X (0) 高斯 -赛德尔迭代法都收敛。
只要方程组 AX=b 的系数矩阵 A [aij ]nn 满足 定理4或定理5的条件,就可以十分方便地判断相 应迭代过程的收敛性。

X (k1) (D L)1UX (k ) (D L)1b

BG (D L)1U
(称为高斯-赛德尔(Gauss-Seidel)迭代矩阵),
fG (D L)1b
则得 X (k 1) BG X (k ) fG 为高斯-赛德尔迭代法的矩阵表示形式。
我们用定理2来判断高斯-赛德尔迭代公式是否
代入得 k 21.18 ,故Jacobi迭代22次即可;
将 BG 0.3, X (0) (0,0,0)T , X (1) (0.3000,1.5600, 2.68400)T 代入得 k 8.76 ,故Gauss-Seidel迭代9次就可以。
对于雅可比迭代法与高斯-赛德尔迭代法,还 有一些使用方便的充分条件,其中主要有:
A r
于是 (A) A r
定理给出了一阶线性定常迭代法 X (k1) BX (k) f

Gauss-Seidel迭代算法专题

Gauss-Seidel迭代算法专题

Gauss-Seidel 迭代法算法实现解线性代数方程组是科学研究和工程计算中一个非常重要的问题。

无论是在数学问题方面的插值公式(包括样条插值)、求积公式、微分方程差分格式的构造,还是在工程科学中的诸如电路分析、分子构造、大地测量等方面,以及在一些经济学科和其他社会科学学科中的数量研究中,经常会遇到求解线性方程组。

线性方程组的解法大致分为直接法与迭代法两大类。

每一类方法中都有很多经典的方法,各有特色。

这里我们将介绍Gauss-Seidel 迭代法的基本理论及算法实现(以Matlab 为平台)。

1、问题描述设n nA R×∈,n b R ∈,A 非奇异,nx R ∈满足方程组Ax b = (2.1)如果能找到距阵n nB R ×∈,向量nf R ∈,使I B −可逆,而且方程组x Bx f =+ (2.2)的唯一解就是方程组(2.1)的解,则可从式(2.2)构造一个定常的线性迭代公式(1)()k k x Bx f +=+ (2.3)给定初始向量(0)n xR ∈,由(2.3)可以产生序列{}()k x ,若它有极限*x ,显然*x 就是(2.1)和(2.2)的解。

现在问题转化为如何找一个合适的B 和f ,使式(2.3)具有较好的迭代效果。

2、Gauss-Seidel 迭代公式在式(2.3)中,若在每个分量计算出来之后,下一个分量的计算就利用最新的计算结果。

这样,在整个迭代过程中只要一组单元存放迭代向量,其分量形式的计算公式为1(1)(1)()11()/,1,2,,.i nk k k ii ii jijjii j j i xb a xa xa i n −++==+=−−=∑∑L (2.4)这就是Gauss-Seidel 迭代法,简称GS 法。

在式(2.1)中,记A D L U =−− (2.5)其中1122(,,,)nn D diag a a a =L ,即A 的对角部分,而21313212,100,00n n n n a a a L a a a −⎡⎤⎢⎥⎢⎥⎢⎥=−⎢⎥⎢⎥⎢⎥⎣⎦O M M O L 121312321,00.00n n n n a a a a a U a −⎡⎤⎢⎥⎢⎥⎢⎥=−⎢⎥⎢⎥⎢⎥⎣⎦L L O M M O (2.6)即L −和U −分别是A 的严格下、上三角部分(不包括对角线)。

高斯赛德尔迭代计算方法

高斯赛德尔迭代计算方法

高斯赛德尔迭代计算方法高斯赛德尔迭代法是数值计算中常用的求解线性方程组的方法之一。

与高斯-约旦消元法和LU分解法相比,高斯赛德尔迭代法具有计算量小、迭代次数少、易于程序实现等优点,因此在实际的工程计算中,高斯赛德尔迭代法得到了广泛的应用。

高斯赛德尔迭代法主要采用了迭代思想,通过多次迭代来逐步逼近方程组的近似解。

其基本思想是:首先将线性方程组中的未知量分组,按照某种顺序,每次迭代中只求解一个未知量组的方程,而将其他未知量组看作常数,直到所有的未知量组均得到合法的解为止。

下面我们来具体探讨一下高斯赛德尔迭代法的具体实现。

1. 确定初始值在采用高斯赛德尔迭代法求解线性方程组时,需要先确定初始向量 x^(0)。

通常情况下,我们可以将 x^(0) 各个分量取为 0 或者随机取值。

一般情况下,采用前一次计算得到的解作为下一次的初始向量 x^(k+1) 的值。

2. 进行迭代在第 k 次迭代中,我们需要求解的是第 k 个未知量组的方程,公式如下:x(k+1)i = (bi - Σ(aij*x(k+1)j,j<i) - Σ(aij*x(k)j,j>i))/aii其中,bi 是线性方程组中第 i 个方程的常数项,aij 指的是第 i行第 j 列的系数,当 j<i 时,aij 为上三角的元素,当 j>i 时,aij 为下三角的元素。

x(k)j 为第k 次迭代时第j 个未知量的值,而 x(k+1)j 则代表第 k+1 次迭代后第 j 个未知量的值。

3. 判断迭代是否结束每当进行一次迭代操作后,我们需要计算当前的近似解向量x^(k+1) 和上一次近似解向量 x^(k) 的误差,如果误差小于预先给定的阈值 eps,那么我们就认为迭代已经收敛,即获得了近似解,退出迭代操作。

否则,我们继续进行迭代操作,在迭代次数达到预先设定的最大值后,若仍未收敛,则认为该方程组无解或有无穷解。

综上所述,高斯赛德尔迭代法是一种比较简单而有效的求解线性方程组的方法。

高斯-赛德尔迭代

高斯-赛德尔迭代

高斯-赛德尔迭代-CAL-FENGHAI.-(YICAI)-Company One12012-2013(1)专业课程实践论文高斯-赛德尔迭代张禹廷,0818180111,R数学08-1班23一、算法理论高斯-赛德尔迭代是计算)1(+k x 的第i 个分量)1(+k i x 的方法,利用了已经计算出得最新分量)1,...,2,1()1(-==+i j x k j .高斯-赛德尔迭代法可以看作雅克比迭代法的一种改进.高斯-赛德尔迭代法没迭代一次只需计算一次矩阵与向量的乘法选取分裂矩阵M 为A 的下三角部分,即选取L D M -=(下三角矩阵),N M A -=,于是得到解b Ax =的高斯-赛德尔(Gauss-Seidel )迭代法⎪⎩⎪⎨⎧=+=+,...,1,0,,)()1()0(k f Bx xx k k 初始向量 (1)其中.)(,)()(111b L D f G U L D A L D I B ----=≡-=--=称U L D G 1)(--=为解b Ax =的高斯-赛德尔迭代法的迭代矩阵.下面给出高斯-赛德尔迭代法的分量计算公式.记T k n k i k k x x x x ),...,,...,()()()(1)(=由(1)式有,)()()1(b Ux x L D k k +=-+或,)()1()1(b Ux Lx Dx k k k ++=++4即∑∑-=+=++=--=111)()1()1(.,...,,2,1,i j n i j k j ij k j ij i k i ii n i x a xa b x a于是解b Ax =的高斯-赛德尔迭代法计算公式为()()⎪⎪⎩⎪⎪⎨⎧==--==∑∑+=-=++.,1,0,,2,1/)(),,(1)(11)1()1()0()0(1)0( k n i a x a x a b x x x x ii ni j k j ij i j k j ii i k iT n二、算法框图三、算法程序5#include "stdio.h"#include "math.h"# define m 3float a[m][m];float c[m];void gaosi();void main(){int i,j;float x[m],x1[m],eps[m];float s=0;float t=0;int p=1;int q=1;int k=0;float eps1;gaosi();for(i=0;i<=m-1;i++){for(j=0;j<=m-1;j++){s=float(s+fabs(a[i][j])); t=float(t+fabs(a[j][i])); }q=q&&(s<2*fabs(a[i][i])); p=p&&(t<2*fabs(a[i][i]));6s=0;t=0;}if((p+q)==0)printf("ERROR!");else{for(i=0;i<=m-1;i++){x[i]=0;x1[i]=0;}do{eps1=x[0]-x1[0];for(i=0;i<=m-1;i++){for(j=0;j<=m-1;j++) s=s+a[i][j]*x[j]; x[i]=(c[i]+a[i][i]*x[i]-s)/a[i][i]; s=0;eps[i]=float(fabs(x[i]-x1[i]));x1[i]=x[i];eps1=(eps1>eps[i])eps1:eps[i];printf("x%d=%f",i,x[i]);printf("\n");}7k=k+1;}while(eps1>1e-3);printf("迭代 %d 次",k);}}void gaosi(){int i,j;float b[m*m];printf("请输入一个矩阵a:\n"); for(i=0;i<=m-1;i++){for(j=0;j<=m-1;j++){scanf("%f",&b[j+i*m]);a[i][j]=b[j+i*m];}}printf("请输入矩阵b\n");for(i=0;i<=m-1;i++)scanf("%f",&c[i]);}89 四、算法实现例1.利用高斯-赛德尔法迭代解方程⎪⎩⎪⎨⎧=++=-+=+-3612333311420238321321321x x x x x x x x x解:运行程序(1) 显示出 请输入一个矩阵a :输入⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--12331114238,回车。

研究生数值分析高斯-赛德尔(Gauss-Seidel)迭代法

研究生数值分析高斯-赛德尔(Gauss-Seidel)迭代法

迭代法的发展趋势和未来研究方向
非线性问题
将高斯-赛德尔迭代法应用于非线性问题是一个具有挑战性的方 向,也是未来研究的重要课题。
理论分析
深入分析高斯-赛德尔迭代法的收敛性和误差估计,为算法改进 提供理论支持。
应用领域拓展
将高斯-赛德尔迭代法应用于更多领域,如工程、物理、经济等, 解决实际问题。
谢谢观看
05
高斯-赛德尔迭代法的应 用
在线性方程组求解中的应用
01
02
03
线性方程组求解是高斯赛德尔迭代法的重要应用 之一。对于给定的线性方 程组Ax=b,高斯-赛德尔 迭代法可以用来求解x的
值。
通过迭代的方式,高斯赛德尔迭代法不断逼近 方程的解,直到满足一
定的收敛条件。
该方法在数值分析中广 泛应用于解决线性方程 组问题,具有较高的稳
高斯-赛德尔迭代法是一种直观且易 于理解的迭代方法,计算过程相对简 单,易于编程实现。
收敛速度快
对于某些问题,高斯-赛德尔迭代法可 能比其他迭代方法具有更快的收敛速 度。
高斯-赛德尔迭代法的优缺点
• 适用于多种线性系统:该方法适用于多种线性系统,包括 稀疏矩阵和稠密矩阵。
高斯-赛德尔迭代法的优缺点
松弛法(SOR方法)
总结词
松弛法是一种改进的高斯-赛德尔迭代法,通过引入松弛参数,使得迭代过程更 加灵活,提高了收敛速度。
详细描述
松弛法(SOR方法)是在高斯-赛德尔迭代法的基础上,引入了一个松弛参数,使得 迭代过程中每一步的解不仅依赖于前一步的解,还与前几步的解有关。这种方法 能够更好地处理非严格对角占优的线性系技巧通过优化迭代过程中的参数或采用其他方法, 加速高斯-赛德尔迭代法的收敛速度。

高斯-赛德尔迭代法的红黑着色并行算法

高斯-赛德尔迭代法的红黑着色并行算法

高斯-赛德尔迭代法的红黑着色并行算法高斯-赛德尔(Gauss-Seidel)迭代法是一种用于求解线性方程组的迭代方法。

而红黑着色并行算法则是一种优化高斯-赛德尔迭代法的并行计算方法。

红黑着色并行算法的基本思想是将问题的计算域分割为红色和黑色两个集合,然后将计算任务按照这两种颜色分配给不同的处理器或计算单元进行并行计算。

通过交替更新红色与黑色点的值,并利用已经更新的邻居值进行迭代,可以加速收敛速度。

以下是红黑着色并行算法在Gauss-Seidel迭代法中的基本步骤:
1.将问题的计算域按照红色和黑色着色规则进行划分。

2.初始化红色和黑色点的数值。

3.交替进行红色和黑色点的更新,使用已经更新的邻居值进行计算。

4.重复步骤3,直至收敛或达到指定的迭代次数。

在红色和黑色的交替更新过程中,需要注意的是确保在更新某个点的数值时,其邻居点的数值已经被更新过。

因此,在每次迭代之后,需要同步所有处理器或计算单元之间的数据,以保持一致性。

红黑着色并行算法在并行计算中能够有效利用多处理器或多计算单元的计算能力,加速求解线性方程组的过程。

它常用于求解大规模的稀疏线性方程组或图算法等问题。

Gauss-Seidel迭代矩阵求法的思考

Gauss-Seidel迭代矩阵求法的思考

Gauss-Seidel 迭代矩阵求法的思考在迭代法收敛性的判别中,我们有充分条件:若迭代矩阵B 的某种范数1<=q B ,则迭代法 ,1,0,)()1(=+=+k d Bx x k k 对任意的初始向量)0(x 都收敛于方程组b Ax =的精确解*x 。

从这个条件中我们可以看出,想要知道迭代法是否收敛,就要知道迭代矩阵(当然如果系数矩阵是正定的或严格对角占优的,那就不用知道其迭代矩阵,因为这时它的Jacobi 迭代和Gauss-Seidel 迭代一定收敛),Jacobi 迭代矩阵为A D I U L D B J 11)(---=+-=,Gauss-Seidel 迭代矩阵,U L D B G 1)(-+-=这两个矩阵中都涉及到了矩阵的逆。

从上高等代数时学到矩阵的逆开始,就一直惧怕有关矩阵逆的题目,因为求矩阵A 的逆*11A AA =-,这就必须求出A 的行列式A 与A 的伴随矩阵*A ,对于求矩阵A 的行列式,就是一个繁琐的过程,计算量大且易出错,而这儿还不仅如此,这儿还要求出矩阵A 的伴随矩阵*A 。

如果矩阵⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=nn n n n n a a a a a a a a a A 212222111211,则⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=nn n nn n A A A A A A A A A A 212221212111*,而其中的nnj n j n n ni j i j i i n i j i j i i n j j a a a a a a a a a a a a a a a a A1,1,1,11,11,11,1,11,11,11,111,11,111ij+-+++-++-+----+-=,因此求*A 的计算量比求A 的行列式的计算量还要大的多,所以1-A 很难求。

因此数学家便开始寻找求1-A 的相对容易的方法,其中有一种初等变换的方法,即对()E A 进行初等行变换,当把A 变成E 时,E 便变成了1-A ,此方法要简单的多,但在变换过程中要消耗大量空间。

高斯-塞德尔迭代法

高斯-塞德尔迭代法

高斯-塞德尔迭代法
高斯-赛德尔迭代(gauss–seidel method)是数值线性代数中的一个迭代法,可用
来求出线性方程组解的近似值。

该方法以卡尔·弗里德里希·高斯和路德维希·赛德尔命名。

同雅可比法一样,高斯-赛德尔迭代是基于矩阵分解原理。

在数值线性代数中,gauss-seidel方法也称作liebmann方法或已连续加速度方法,
就是用作解线性方程组的运算方法。

它以德国数学家卡尔·弗里德里希·高斯(carl friedrich gauss)和菲利普·路德维希·冯·塞德尔(philipp ludwig von seidel)命名,与雅基数排序方法相近。

高斯-赛德尔迭代法是解线性方程组的常用迭代法之一,设线性方程组为a1x1 +a2x2 +..+ cintn =b.s
(i= 1,2,,n),
高斯赛德尔迭代法的迭代公式,虽然它可以应用于对角线上具有非零元素的任何矩阵,但只能在矩阵是对角线主导的或对称的和正定的情况下,保证收敛。

在年,只在高斯给
他的学生gerling的私人信中提到。

年之前由塞德尔自行出版。

高斯-赛德尔法--数值分析线性方程组的迭代解法

高斯-赛德尔法--数值分析线性方程组的迭代解法
{
r=0;
for(i=0;i<M;i+j=0;j<M;j++)
if(j!=i)q=q+a[i][j]*x[j];
x[i]=(a[i][N-1]-q)/a[i][i];
if(fabs(x[i]-t)>r)r=fabs(x[i]-t);
}
if(r<eps)break;
高斯-塞德尔迭代法公式:
1.方程组形式:
2.矩阵形式:
其中高斯-塞德尔迭代矩阵
三、程序设计
#include<stdio.h>
#include<math.h>
#define M 3
#define N 4
main()
{
double a[M][N]={{8,-3,2,20},
{4,11,-1,33},
{6,3,12,36},
};
double x[M]={0,0,0};//初值
double r,t,q,eps=0.0000202;//需要精度
int k,i,j,T=100;
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
printf("%1f",a[i][j]);
printf("\n");
}
for(k=0;k<T;k++)
printf("\nk=%d,",k);
for(i=0;i<M;i++)
printf("\nx[%d]=%lf",i,x[i]);
}
if(k==T)printf("\nNo");
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
如在例8例9中,由于系数矩阵A是严格对角 占优,由定理4立即可断定用雅可比迭代法与高斯 -赛德尔迭代法求解时,迭代过程都收敛。
4 2 2
又如矩阵
A


2
2 3
2 3 14
是对称正定阵(实对称阵是正定阵的,如果实二次型
f (x1, x2 ,L , xn ) X T AX
10 2 1 2 10 1 0 2 5
即 (500 2 54 2) 0
解得
1

0, 2

27
1729 500
, 3

27
1729 500
于是
(BG )

27 1729 500

0.1372
1
因而高斯-赛德尔迭代公式是收敛的。
上式左端为将系数矩阵 A 的对角线及对角线
以下元素同乘以 λ 后所得新矩阵的行列式。
例9 用高斯-赛德尔迭代法解方程组
10x1 2x2 x3 3 2x1 10x2 x3 15 x1 2x2 5x3 10
解:相应的高斯-赛德尔迭代公式为


x (k 1) 1
x (k 1) 2

0.2x2(k) 0.1x3(k) 0.3 0.2x1(k1) 0.1x3(k) 1.5

x3(k
1)

0.2 x1( k 1)
0.4x2(k1)
2
取迭代初值
X (0)

(
x1(
0)
,
x2(0
)
,
x (0) 3
)T
(0, 0, 0)T
按此迭代公式进行迭代,计算结果为
的特征向量,即 AX= λX, (X ≠0)
由范数的性质立即可得
X X AX
r
因为 X ≠0 , 所以
A r
即A的任一特征值的模都不超过
A r
于是 (A) A r
定理给出了一阶线性定常迭代法 X (k1) BX (k) f
收敛的充分条件,它表明只要迭代矩阵 B 的某种子 范数 B 小于1,立即可以断定该迭代过程对任给
现将 X (k1) 显式化,由 (D L) X (k1) UX (k) b

X (k1) (D L)1UX (k ) (D L)1b

BG (D L)1U
(称为高斯-赛德尔(Gauss-Seidel)迭代矩阵),
fG (D L)1b
则得 X (k 1) BG X (k ) fG 为高斯-赛德尔迭代法的矩阵表示形式。
2 高斯-赛德尔(Gauss-Seidel)迭代法
研究雅可比迭代法,我们发现在逐个求 X (k1)
的分量时,当计算到
xi(k 1) 时,分量
x1(k 1) ,L
, x (k 1) i 1
都已经求得,而仍用旧分量
x1(k ) ,L
,
x (k i 1
)
计算
x (k 1) i
。由于新计算出的分量比旧分量准确些,
0.2 0.4 0
BJ 0.6 1 雅可比迭代过程必收敛;
高斯-赛德尔迭代矩阵
0 BG 0
0
0.2 0.04 0.056
0.1
0.12

0.068
BG 0.3 1 高斯-赛德尔迭代过程也收敛。
由定理的误差估计式
X (k ) X * B k X (1) X (0) 1 B
是发散,都要计算雅可比迭代矩阵 BJ 与高斯-赛德尔
迭代矩阵 BG 的特征值.由于矩阵 A 有些算子范数(比

A与
A 1 )远比矩阵 A 的特征值容易计算,为此给
出如下结论。
定理3 矩阵A的谱半径不超过矩阵A的任何
一种算子范数 , 即
(A)
A r
证明:设λ为A的任一特征值,X为对应于λ的A
k 1, 2,3,L
可以看出, B 越小收敛速度越快,
且可用来估计迭代次数。
在例8例9中,显然 BG 比 BJ 小, 所以高斯-赛德尔迭代法比雅可比迭代法收敛速度快。
若在例8例9中要求近似解 X (k) 的误差
X (k) X * 104
则由误差估计式知,只要 k 满足
Bk
r
初始向量都收敛于方程组AX=b的唯一解 X * 在例8例9中,我们分别用雅可比迭代法和高斯-
赛德尔迭代法解方程组
10x1 2x2 x3 3 2x1 10x2 x3 15 x1 2x2 5x3 10
雅可比迭代矩阵
0 0.2 0.1 BJ 0.2 0 0.1

a x (k1) i,i1 i1

a x (k) i,i1 i1
L
ain xn(k) bi )
L L


xn(
k
1)

1 ann
(an1 x1( k 1)

a x (k1) n2 2
L

a x (k1) n,n1 n1

bn
)
(5)
其矩阵表示形式为 X (k1) D1(LX (k1) UX (k) b)
X (1) X (0) 104
1 B

将 BJ 0.6, X (0) (0,0,0)T , X (1) (0.3000,1.5000, 2.0000)T
代入得 k 21.18 ,故Jacobi迭代22次即可;
将 BG 0.3, X (0) (0,0,0)T , X (1) (0.3000,1.5600, 2.68400)T 代入得 k 8.76 ,故Gauss-Seidel迭代9次就可以。
由定理2知,用雅可比迭代法求解,迭代过程收 敛,用高斯-赛德尔迭代法求解,迭代过程发散。
练习:考察用高斯-赛德尔迭代法解方程组 AX=b 的收敛性,其中
1 0 1
A 1 1
0

1 2 3
3 迭代法收敛条件与误差估计 我们先引入一个叫矩阵谱半径的概念。
定义 矩阵 A Rnn 的所有特征值 i (i 1, 2,L , n)
的模的最大值称为矩阵 A 的谱半径,记作 ( A)

( A)

max
1in
i
前面,我们在应用雅可比迭代法与高斯-赛德尔迭 代法解一阶线性方程组时,判断各迭代公式是收敛还
因此设想一旦新分量
x1(k 1) ,L
, x (k 1) i 1
求出,马上就用新分量
x1(k 1) ,L
, x (k 1) i 1
代替雅可比迭代法中
来求 x1( k ) ,L
,
x (k ) i 1
x (k 1) i
, 这就是高斯-赛德尔(Gauss-Seidel)迭代法。
高斯-赛德尔迭代公式如下:

x1(k
1)


1 a11
(a12 x2(k)

a13 x3( k )
L

a1n
x (k) n

b1)

x2(k
1)


1 a11
(a21 x1( k 1)

a23
x3(k
)
L
a2n xn(k) b2 )
L L


xi
(
k
1)


1 aii
(ai1x1(k1) ai2 x2(k1) L
正定),由定理5可判定用高斯-赛德尔迭代法求解方程组
AX b
时,迭代过程一定收敛。
例10 考察用雅可比迭代法和高斯-赛德尔迭代法 解方程组 AX=b 的收敛性,其中
1 2 2 1
A 1 1
1

,
b

1
2 2 1 1
解:先计算迭代矩阵
0 2 2
对于雅可比迭代法与高斯-赛德尔迭代法,还 有一些使用方便的充分条件,其中主要有:
定理4 若方程组AX=b的系数矩阵 A [aij ]nn
按行严格对角占优或按列严格对角占优,即满足条件
n
aii aij
(i 1, 2,L , n)
j 1 ji
n
或 a jj aij
( j 1, 2,L , n)
i 1 i j
则方程组AX=b有唯一解,且对任意初始向量 X (0)
雅可比迭代法与高斯-赛德尔迭代法都收敛。
定理5 若方程组 AX=b 的系数矩阵 A [aij ]nn 为对称正定矩阵。则对任意初始向量 X (0) 高斯 -赛德尔迭代法都收敛。
只要方程组 AX=b 的系数矩阵 A [aij ]nn 满足 定理4或定理5的条件,就可以十分方便地判断相 应迭代过程的收敛性。
BJ

D1(L U )


1
0
1
2 2 0
再计算
0 2 2 BG (D L)1U 0 2 3
0 0 2
BJ与BG的特征值和谱半径
i (BJ ) 0, (i 1, 2,3), (BJ ) 0 1
1(BG ) 0, 2,3 (BG ) 2, (BG ) 2 1
我们用定理2来判断高斯-赛德尔迭代公式是否
收敛,需要考虑高斯-赛德尔迭代矩阵 BG (D L)1U
的特征方程 I BG 0

I (D L)1U 0
将上式写成 (D L)1 (D L) U 0
由于
(D L)1 0
所以
(D L) U 0
相关文档
最新文档