研究线性方程组迭代收敛速度
- 格式:doc
- 大小:366.50 KB
- 文档页数:15
迭代相关收敛法(concor)
迭代相关收敛法(Conjugate Gradient Method)是求解线性方程组的一类迭代方法,具有收敛速度快、存储空间少等优点,在高维计算中得到广泛应用。
迭代方法是解决大规模线性方程组的重要方法之一,其基本思想是用一个初始估计解,通过迭代循环逐步优化,最终得到方程组的精确解。
Conjugate Gradient Method就是一种比较典型的迭代方法,其基本思想是每次迭代都在一组相互垂直的方向上沿着最快下降的
方向进行迭代,从而达到快速收敛的目的。
具体而言,Conjugate Gradient Method包括以下步骤:
1. 对于初始估计解x0,计算Ax0和r0=b-Ax0(其中A是系数矩阵,b是常数矢量,r0是误差向量)。
2. 初始化搜索方向p1=r0,初始迭代次数为k=1。
3. 沿着搜索方向pk进行迭代求解,得到第k+1步的迭代解xk+1,误差向量
rk+1=b-Axk+1,并计算ρk+1=||rk+1||2。
4. 判断停止条件,如果达到了预设的收敛精度,则停止迭代;否则,更新搜索方向
pk+1=rk+1+βkp,其中βk=ρk+1/ρk。
5. 更新迭代次数k=k+1,返回步骤3。
解线性方程组的迭代法收敛速度实验六解线性方程组的迭代法收敛速度.一、实验内容(1)选取不同的初始向量)0(x ,在给定的迭代误差要求下,用雅可比迭代和高斯-赛德尔迭代法法求解,观察得到的序列是否收敛?若收敛,记录迭代次数,分析计算结果并得出你的结论.(2)用SOR 迭代法求上述方程组的解,松弛系数ω取1<ω<2的不同值,在给定的迭代误差要求下.记录迭代次数,分析计算结果并得出你的结论.二、方法步骤雅克比迭代法:(1)输入A =(a ij )n×n ,b =(b 1,b 2,…,b n )T ,维数n ,x (0)=(x 1(0),x 2(0),…,x n (0))T ,容许误差ε,最大容许迭代次数N.(2)对i=1,2,3,…,n,置x i =x i(0). (3)置k=1.(4)对i=1,2,3,…,n,置y i =1a ii (b i∑a ij x j nj=1,j≠i ) (5)若max 1≤i≤≥n ‖y i ?x i ‖<ε输出y i (i =1,2,3,…,n),停机,否则转(6).(6)若kk,y i ==>x i (i =1,2,…,n),转(4),否则,输出失败信息,停机。
高斯-塞德尔迭代法(1)输入A =(a ij )n×n ,b =(b 1,b 2,…,b n )T ,维数n ,,x (0)=(x 1(0),x 2(0),…,x n (0))T ,容许误差ε,最大容许迭代次数N.(2)对i=1,2,3,…,n,置x i =x i (0)(3)置k=1.(4)对i=1,2,3,…,n,置y i =1ii (b i∑a ij x j nj=1,j≠i ) (5)若max 1≤i≤≥n ‖y i ?x i ‖<ε输出y i (i =1,2,3,…,n),停机,否则转(6).(6)若kk,y i ==>x i (i =1,2,…,n),转(4),否则,输出失败信息,停机。
数值分析第三章线性方程组迭代法线性方程组是数值分析中的重要问题之一,涉及求解线性方程组的迭代法也是该领域的研究重点之一、本文将对线性方程组迭代法进行深入探讨。
线性方程组的一般形式为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、设线性方程组⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛-=⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛--------------------------2119381346323125136824381004120291372642212341791110161035243120536217758683233761624491131512013012312240010563568000012132410987654321x x x x x x x x x x()Tx 2,1,1,3,0,2,1,0,1,1*--=2、设对称正定系数阵线性方程组⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫ ⎝⎛---=⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫ ⎝⎛⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫ ⎝⎛---------------------45152292320601924336002141103520411144334310422181233416120653811414023121220024042487654321x x x x x x x x ()Tx 2,0,1,1,2,0,1,1*--=3、三对角形线性方程组⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫ ⎝⎛----=⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫ ⎝⎛⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫ ⎝⎛------------------5541412621357410000000014100000000141000000001410000000014100000000141000000001410000000014100000000141000000001410987654321x x x x x x x x x x ()Tx 1,1,0,3,2,1,0,3,1,2*---=试分别选用Jacobi 迭代法,Gauss-Seidol 迭代法和SOR 方法计算其解。
共轭梯度法求解线性方程组的收敛性分析与研究引言1.初始化初始解x0和残差r0=b-Ax0。
2.计算初始方向d0=r0。
3.对于k=0,1,2,...,进行以下迭代步骤:3.1 计算步长αk,使得x_{k+1}=xk + αkd。
3.2 更新残差rk+1=rk - αkAd。
3.3 计算方向dk+1=rk+1 + βkdk,其中βk=(rk+1·rk+1)/(rk·rk)。
3.4迭代直到达到指定的收敛条件。
迭代次数共轭梯度法是一种迭代算法,因此需要考虑它的迭代次数。
理论上,对于一个n阶的对称正定矩阵A,共轭梯度法最多需要n次迭代才能达到精确解。
这是因为在每一次迭代中,共轭梯度法都能找到一个与前面的方向相互正交的新方向,从而有效地减小了残差的范数。
因此,在实际应用中,共轭梯度法通常具有较快的收敛速度。
误差收敛性共轭梯度法的误差收敛性是衡量其收敛性好坏的重要指标。
理论分析表明,共轭梯度法在最多n次迭代后可以达到精确解。
在实际应用中,共轭梯度法通常在较少的迭代次数后可以达到较高的精度。
这是因为共轭梯度法利用了方向的正交性质,在每一次迭代中都能有效地减小误差。
影响共轭梯度法收敛性的因素1.矩阵A的条件数:矩阵A的条件数越大,共轭梯度法的收敛速度越慢。
2.初始解x0的选择:初始解x0的选择对共轭梯度法的收敛性有较大影响。
通常情况下,可以选择Ax0=b的最小二乘解作为初始解。
3.矩阵A的对称性:矩阵A的对称性可以加速共轭梯度法的收敛速度。
4.终止条件的选择:共轭梯度法的收敛速度和终止条件有关。
通常情况下,可选择残差的范数小于其中一预定精度作为终止条件。
5.迭代次数:共轭梯度法的收敛速度和迭代次数有关。
通常情况下,可以根据实际应用需求,选择合适的迭代次数。
总结与展望共轭梯度法是求解线性方程组的一种重要算法,具有收敛速度快,存储量小等优点。
本文对共轭梯度法的收敛性进行了分析与研究,并讨论了影响共轭梯度法收敛性的因素。
1 / 8数值分析实验六:解线性方程组的迭代法2016113 张威震1 病态线性方程组的求解1.1 问题描述理论的分析表明,求解病态的线性方程组是困难的。
实际情况是否如此,会出现怎样的现象呢?实验内容:考虑方程组Hx=b 的求解,其中系数矩阵H 为Hilbert 矩阵,,,1(),,,1,2,,1i j n n i j H h h i j n i j ⨯===+-这是一个著名的病态问题。
通过首先给定解(例如取为各个分量均为1)再计算出右端b 的办法给出确定的问题。
实验要求:(1)选择问题的维数为6,分别用Gauss 消去法、列主元Gauss 消去法、J 迭代法、GS 迭代法和SOR 迭代法求解方程组,其各自的结果如何?将计算结果与问题的解比较,结论如何?(2)逐步增大问题的维数(至少到100),仍然用上述的方法来解它们,计算的结果如何?计算的结果说明了什么?(3)讨论病态问题求解的算法1.2 算法设计首先编写各种求解方法的函数,Gauss 消去法和列主元高斯消去法使用实验5中编写的函数myGauss.m 即可,Jacobi 迭代法函数文件为myJacobi.m ,GS 迭代法函数文件为myGS.m ,SOR 方法的函数文件为mySOR.m 。
1.3 实验结果1.3.1 不同迭代法球求解方程组的结果比较选择H 为6*6方阵,方程组的精确解为x* = (1, 1, 1, 1, 1, 1)T ,然后用矩阵乘法计算得到b ,再使用Gauss 顺序消去法、Gauss 列主元消去法、Jacobi 迭代法、G-S 迭代法和SOR 方法分别计算得到数值解x1、x2、x3、x4,并计算出各数值解与精确解之间的无穷范数。
Matlab 脚本文件为Experiment6_1.m 。
迭代法的初始解x 0 = (0, 0, 0, 0, 0, 0)T ,收敛准则为||x(k+1)-x(k)||∞<eps=1e-6,SOR方法的松弛因子选择为w=1.3,计算结果如表1。
数值计算方法中的迭代收敛速度分析数值计算方法是一种通过使用数值逼近来解决数学问题的方法。
在数值计算中,迭代方法是一种常用的技术,它通过反复应用某个迭代公式来逼近问题的解。
然而,迭代方法的收敛速度对于问题的求解效率和准确性有着重要的影响。
本文将针对数值计算方法中的迭代收敛速度进行分析。
1. 迭代收敛速度的概念迭代收敛速度是指迭代过程中逼近解的速度。
在数值计算中,我们通常希望迭代方法能够尽快地收敛到问题的解,以提高计算效率。
迭代收敛速度可以通过迭代误差的变化来评估,即每次迭代后解的改变程度。
2. 收敛速度的度量方法为了衡量迭代方法的收敛速度,我们可以使用多种度量方法,其中一种常用的方法是利用迭代误差的变化率。
具体而言,我们可以计算每次迭代后解的改变程度,然后将其与前一次迭代的误差进行比较。
如果每次迭代后误差的变化趋于减小,那么我们可以认为迭代方法具有较快的收敛速度。
3. 收敛速度的影响因素迭代方法的收敛速度受多个因素的影响,包括初始估计解、迭代公式的选择和问题的性质等。
首先,初始估计解的选择对于迭代收敛速度有着重要的影响。
如果初始估计解与真实解较为接近,那么迭代方法往往能够更快地收敛。
其次,迭代公式的选择也会对收敛速度产生影响。
一些迭代公式具有更快的收敛速度,而另一些则相对较慢。
最后,问题的性质也会对收敛速度产生影响。
一些问题可能具有较快的收敛速度,而另一些则可能需要更多的迭代次数才能达到收敛。
4. 常见的迭代方法及其收敛速度分析在数值计算中,有多种常见的迭代方法,如牛顿法、Jacobi迭代法和Gauss-Seidel迭代法等。
这些方法具有不同的收敛速度,并且适用于不同类型的问题。
4.1 牛顿法牛顿法是一种用于求解非线性方程的迭代方法。
它通过不断逼近函数的根来求解方程。
牛顿法的收敛速度通常是二阶收敛的,这意味着每次迭代后误差的平方会减小到原来的四分之一。
4.2 Jacobi迭代法Jacobi迭代法是一种用于求解线性方程组的迭代方法。
研究线性⽅程组迭代收敛速度.研究解线性⽅程组迭代收敛速度⼀.实验⽬的科学研究与⽣产实践中许多问题都可归结为线性⽅程组的求解,⾼效求解线性⽅程组成为了许多科学与⼯程计算的核⼼.迭代法就是⽤某种极限过程去逼近线性⽅程组精确解的⽅法,该⽅法具有对计算机的存贮单元需求少,程序计算简单,原始系数矩阵在计算过程中不变等优点,是求解⼤型稀疏矩阵⽅程组的重要⽅法。
常⽤的迭代法有Jacobi 迭代法、Gauss —seidel 迭代法、逐次超松驰法(SOR 法)等。
⼆.实验摘要由迭代法平均收敛速度与渐进收敛速度的关系引⼊近似估计法,即通过对迭代平均收敛速度取对数,然后利⽤Mathematica 软件对其进⾏拟合,给出拟合函数,最终得到了Jacobi 迭代法、Gauss —seidel 法的平均收敛速度收敛到渐进收敛速度的近似收敛阶,以及逐次超松驰法(SOR 法)的渐进收敛速度,且该法适⽤于其他迭代法收敛速度的估计。
三.迭代法原理1.Jacobi 迭代法(J 法)设⽅程组b Ax =,其中,n n n n ij R a A ??∈=)(,。
n R b x ∈,A 为可逆矩阵,可分裂为,U D L A ++=其中,=-00001,21323121n n n n a a a a a a L ??=-0000,122311312n n n n a a a a a a U=nn a a a D2211从⽽由b Ax =得到,bD x A D I b D x A D D b D x U L D x 111111)()()(------+-=+-=++-=令 A D I B J 1--=, b D f J 1-=, 由此可构造出迭代公式:J k J k f x B x +=+)()1(令初始向量)0,...,0,0()0(=x ,即可得到迭代序列,从⽽逼近⽅程组的解这种⽅法称为Jacobi 迭代法,其中J B 称为Jacobi 迭代矩阵。
线性方程组迭代法收敛速度摘要:迭代法是按照某种规则构造一个向量序列{x k },使其极限向量x *是方程组Ax=b 的精确解。
本实验主要用Jacobi,G_S 和SOR 迭代法解线性方程,认识迭代法的含义以及迭代法初始值和方程组系数矩阵对收敛速度的影响。
关键词:Jacobi,G_S.SOR 迭代法,以及误差分析0.引言:一个方法是否有效要看得到具有某个精确度的近似解而付出的代价如何,通常以运算量和储存量的要求为标志。
在这个标准下,直接在很多情况下比迭代法号,但是对于大型的稀疏方程组来说,迭代法更适用。
学习迭代法一般有几个问题:(1)如何构造迭代数列?(2)构造迭代数列是否收敛? 在什么情况下收敛?(3)如果收敛。
收敛速度如何,迭代法初始值会对收敛速度有什么影响?1.实验内容:用迭代法求解b Ax =,其中2020⨯∈R A 为五对角矩阵202011324111322411113422411113422411113422411342A ⨯⎫⎛--⎪ ⎪ ---⎪ ⎪ ----⎪ =⎪⎪----⎪⎪ ----⎪ ⎪ ⎪--⎝⎭(1)选取不同的初始向量X)0(及右端向量b ,给定迭代误差要求,用Jacobi 迭代法和Gauss-Seidel 迭代法求解,观察得到的序列是否收敛?若收敛,记录迭代次数,分析计算结果并得出你的结论。
(2)用SOR 迭代法求上述方程组的解,松驰系数ω取21<<ω的不同值,在()(1)510k k X X +-∞-≤时停止迭代,记录迭代次数,分析计算结果与松驰系数ω的关系并得出你的结论。
(3)用MathCAD 指令求出系数矩阵的逆矩阵,再求出上述各个方程组的解,并与上述方法求出的解进行比较。
(1)Jacobi 迭代法内容:对Ax b =求解的一种方法,令A D L U =--,其中[]ij A a =,1122(,,,)nn D diag a a a = ,21313212,10000n n n n a a a L a a a -⎡⎤⎢⎥-⎢⎥⎢⎥--=⎢⎥⎢⎥⎢⎥---⎣⎦, 121312321,0000n n n n a a a a a U a ----⎡⎤⎢⎥--⎢⎥⎢⎥=⎢⎥-⎢⎥⎢⎥⎣⎦则方程Ax b =可以写成1k k x Bx g -=+,其中11(),.B D L U g D b --=+=给定一个初始向量0x ,就可得到一个新的向量10x Bx g =+,以此类推,求出2x ,3x 。
数值分析中的迭代方法与收敛性分析迭代方法是数值分析中一种重要的算法,用于求解数值问题。
迭代方法基于一个初始猜测解,并通过不断迭代逼近真实解。
本文将介绍迭代方法的基本原理以及如何进行收敛性分析。
一、迭代方法的原理迭代方法的基本原理是通过不断更新猜测解来逼近真实解。
假设我们要求解一个方程f(x)=0,其中f(x)表示一个函数。
我们可以通过选择一个初始猜测解x0,然后使用迭代公式x_{k+1}=g(x_k)来生成下一个近似解x_{k+1},其中g(x_k)是一个迭代函数。
通过不断迭代,我们希望逐渐接近真实解。
二、常见的迭代方法在数值分析中,有许多常见的迭代方法被广泛应用于求解不同类型的数值问题。
以下是几种常见的迭代方法:1. 不动点迭代法不动点迭代法通过将方程f(x)=0转化为等价的x=g(x)的形式来求解。
其中g(x)是一个迭代函数,可以通过不断迭代x_{k+1}=g(x_k)逼近真实解。
不动点迭代法的收敛性通常需要满足收敛性条件,如Lipschitz条件或收缩映射条件。
2. 牛顿迭代法牛顿迭代法通过利用函数的导数信息来加速收敛速度。
迭代公式为x_{k+1}=x_k-\frac{f(x_k)}{f'(x_k)},其中f'(x_k)表示函数f(x_k)的导数。
牛顿迭代法的收敛性通常需要满足局部收敛性条件,如满足Lipschitz条件和拟凸性条件。
3. 雅可比迭代法雅可比迭代法用于求解线性方程组Ax=b,其中A是系数矩阵,b是常数向量。
迭代公式为x_{k+1}=D^{-1}(b-(L+U)x_k),其中D、L和U分别是矩阵A的对角线、下三角和上三角部分。
雅可比迭代法的收敛性要求系数矩阵A满足严格对角占优条件。
三、迭代方法的收敛性分析在使用迭代方法求解数值问题时,我们需要进行收敛性分析,以确定迭代方法是否能够逼近真实解。
常用的迭代收敛性分析方法包括:1. 收敛域分析收敛域分析用于确定迭代方法的收敛域,即迭代过程中能够保证收敛的初始猜测解的范围。
研究解线性方程组迭代收敛速度一. 实验目的科学研究与生产实践中许多问题都可归结为线性方程组的求解,高效求解线性方程组成为了许多科学与工程计算的核心.迭代法就是用某种极限过程去逼近线性方程组精确解的方法,该方法具有对计算机的存贮单元需求少,程序计算简单,原始系数矩阵在计算过程中不变等优点,是求解大型稀疏矩阵方程组的重要方法。
常用的迭代法有Jacobi 迭代法、Gauss —seidel 迭代法、逐次超松驰法(SOR 法)等。
二. 实验摘要由迭代法平均收敛速度与渐进收敛速度的关系引入近似估计法,即通过对迭代平均收敛速度取对数,然后利用Mathematica 软件对其进行拟合,给出拟合函数,最终得到了Jacobi 迭代法、Gauss —seidel 法的平均收敛速度收敛到渐进收敛速度的近似收敛阶,以及逐次超松驰法(SOR 法)的渐进收敛速度,且该法适用于其他迭代法收敛速度的估计。
三. 迭代法原理1.Jacobi 迭代法(J 法)设方程组b Ax =,其中,n n n n ij R a A ⨯⨯∈=)(,。
n R b x ∈,A 为可逆矩阵,可分裂为,U D L A ++=其中,⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=-00001,21323121n n n n a a a a a a L ΛOO M M ⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=-000,122311312n n n n a a a a a a U M O OΛΛ⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=nn a a a D OO2211 从而由b Ax =得到,bD x A D I b D x A D D b D x U L D x 111111)()()(------+-=+-=++-=令 A D I B J 1--=, b D f J 1-=, 由此可构造出迭代公式:J k J k f x B x +=+)()1(令初始向量)0,...,0,0()0(=x ,即可得到迭代序列,从而逼近方程组的解 这种方法称为Jacobi 迭代法,其中J B 称为Jacobi 迭代矩阵。
2. Gauss-Seidel 迭代法(GS 法)与Jacobi 迭代法类似,将方程组b Ax =中的系数矩阵A 分裂为,U D L A ++=,其中U L D ,,与前面相同。
与Jacobi 迭代法所不同的是,Gauss-Seidel 迭代法将Jacobi 迭代公式中的b Ux Lx Dx k k k +--=+)()()1( 改为 b Ux Lx Dx k k k +--=++)()1()1(从而b Ax =可写成矩阵形式b Ux x D L k k +-=++)()1()(,若设1)(-+D L 存在,则b D L Ux D L x k k 1)(1)1()()(--++++-=,其中,U D L B G 1)(-+-=,b D L f 1)(-+=,于是Gauss —Seidel 迭代公式的矩阵形式为fx B xk G k +=+)()1(。
其中,G B 称为式(1)的Gauss —Seidel 迭代法的迭代矩阵。
注:由于Gauss-Seidel 迭代充分利用了迭代过程的新信息,一般来说,它的迭代效果要比Jacobi 迭代好。
3.逐次超松弛方法(SOR 法)根据Gauss-Seidel 迭代法的迭代原理)()()1(1)1(b Ux Lx D x k k k +--=+-+,我们将其修改为)1()()1()1(+-++-=k k k xw xw x,即对)(k x和)1(+-k x加入一个权因子,在这里我们称w 为迭代公式的松弛系数。
令)()()1(1)1(b Ux Lx D xk k k +--=+-+-(Gauss —Seidel 迭代法),则)()1()1()()1(1)()1()()1(b Ux Lx wD x w xw xw xk k k k k k +--+-=+-=+-+-+从而b wL D w x wU D w wL D x k k 1)(1)1()(])1[()(--+++--+=])1[()(1wU D w wL D G w --+=-,1)(-+=wL D w f w 所以w k w k f x G x +=+)()1(将其写成分量的形式我们称该公式为基于Gauss —Seidel 迭代下的超松弛迭代公式。
注:1) 关于松弛系数w 的选取,我们有以下性质: (i ).设方程组b Ax =,其中,nn n n ij R a A ⨯⨯∈=)(,nR b x ∈,,则解方程的SOR迭代法收敛的必要条件是20<<w ; (ii )若A 为正定的对称矩阵,且20<<w ,则方程组b Ax =关于SOR 迭代法是收敛的; (iii )若A 为正定的对称三对角矩阵,JB 为Jacobi 迭代矩阵,若J B 的谱半径1)(<J B ρ,记)(J B ρμ=,则SOR 法的最优松弛因子为2112μ-+=b w且⎪⎩⎪⎨⎧<≤-≤<--+=2104/)1(4)(222w w w w w w w w G b bw μμρ2) 由松弛系数的性质可知,通常只有当方程组的系数矩阵A 为正定的对称矩阵时我们才使用SOR 法;3) 当松弛系数1=w 时,SOR 法记为GS 方法; 4) 关于(iii )提到的谱半径定义为:假设A 为n 阶可逆矩阵,n λλλ,...,,21是它的n 个特征值,我们称||m ax )(1i ni A λρ≤≤=为A 的谱半径。
容易证明A 的谱半径是A 的所有诱导范数的下确界,即||||inf )(||||A A ⋅=ρ其中,矩阵的范数如:∑=≤≤=n i ij n j a A 111||max ||||,∑=≤≤∞=nj ij n i a A 11||max ||||,)(||||2A A A T ρ= 。
下面我们就来讨论以上方法的迭代收敛速度,首先我们介绍收敛速度快慢的比较方法。
四. 迭代法收敛速度的比较1.这两种迭代方法收敛性与)(0∞→→k B k 是否成立有关,且收敛速度与0→k B 的速度有关。
当1)(<B ρ时, k B 趋于零矩阵的速度有赖于)(B ρ的大小。
一般说来,)(B ρ越小,则k B 趋于零矩阵的速度越快,反之就越慢。
通常,当1)(<B ρ时,可以用正数)(ln B ρ-的大小作为迭代法渐进收敛速度的度量。
这时)(ln B ρ-越大,迭代法的收敛速度愈大。
2.平均收敛速度与渐进收敛速度之间的联系对于收敛的迭代法...)2,1,0(1=+=+k f Bx x k k ,)||ln(||/1k k k B R -=称为平均收敛速度(它与所用的范数以及k 有关);)(ln B R ρ-=∞称为渐进收敛速度。
可以证明k k R R ∞→∞=lim ,因此当∞→k 时假设成立下列渐近关系式c R R pkk →+1(常数),为估计平均收敛速度收敛到渐进收敛速度的阶,当k 充分大时有如下近似形式:1,1>>≈+k c R R kk 两边取对数得:c R p R k k ln ln ln +≈此式说明当k 比较大时,1ln +k R 与k R ln 有近似的线性关系,而它们的斜率刚好为收敛阶P ,这样可以通过当k 比较大时作出1ln +k R 与k R ln 的拟合曲线来估计出P 值。
五. 实验举例例1:考虑五阶方程组⎪⎪⎪⎩⎪⎪⎪⎨⎧-=+-=-+--=-=-+-=--1202412342355454143521541x x x x x x x x x x x x x 1. 其Jacobi 迭代法的迭代矩阵为⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛=05.00005.000025.005.000025.000025.02.06.0000J B渐进收敛速度为:41301462.0)66165261.0ln())(ln(=-=-=∞J B R ρ则迭代平均收敛速度k R (见表1)以及取对数后作最小二乘拟合图像(见图1)如下所示:表1图11.5 1.4 1.3 1.2 1.1 1.01.201.151.101.051.000.95即53345499.0)ln(44226443.0)ln(1-=+k k R R从而得到收敛阶为 p=0.442264432. 该方程组的Gauss —Seidel 迭代矩阵为:⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛=275.0075.000055.015.000005.00003.015.00002.06.0000G B其渐进收敛速度为85566611.0)425.0ln())(ln(=-=-=∞G B R ρ则迭代平均收敛速度k R (见表2)以及取对数后作最小二乘拟合图像(见图2)如下所示:图21.41.21.00.80.60.40.90.80.70.60.50.40.3即11593362.0)ln(58472143.0)ln(1-=+k k R R从而得到收敛阶为 p=0.58472143。
注:在本例中,由于方程组的系数矩阵严格对角占优,故前述两种迭代过程均收敛,依实际迭代过程:对Jacobi 迭代有67-32)31()32(10106.4345694||||||||-<⨯=-x x x 而Gauss —Seidel 迭代有67-18)17()18(10105.5402987||||||||-<⨯=-x x x ,即二者均收敛,但后者更快一些。
这与收敛阶p=0.585>0.442之间关系一致。
例2:考虑方程组⎪⎩⎪⎨⎧-=+-=-+=+244304324343232121x x x x x x x 用SOR 迭代公式可得取初试量为T x )0,0,0()0(=,迭代至第14次后的结果为当1=w 时 ,T x )5.0005551- 3.9977796, 3.0026645,()14(=当24.1=w 时,T x ) 5.- 3.9999999, 3.0000002,()14(=可见取24.1=w 时的收敛速度比1=w 时的收敛速度要快。
若要精确到小数后7位,当1=w (GS 法)时需迭代31次,而当24.1=w (SOR 法)时只需迭代14次,它表明松弛因子w 选取的好坏,对收敛速度影响很大。
六. 程序设计及实验结果1. Jacobi 迭代法,用mathematica 编写程序如下:(i )计算迭代矩阵Clear[Evaluate[Context[]<>"*"]]A={{5,0,0,-3,-1},{-1,4,0,0,-1},{0,0,2,-1,0},{-1,0,0,4,-2},{0,0,0,-1,2}}; b={2,3,-1,0,-1};L=Table[If[i>j,A[[i,j]],0],{i,Length[A]},{j,Length[Transpos e[A]]}];D1=Table[If[i==j,A[[i,j]],0],{i,Length[A]},{j,Length[Transp ose[A]]}];U=Table[If[i<j,A[[i,j]],0],{i,Length[A]},{j,Length[Transpos e[A]]}];I1=IdentityMatrix[Length[A]]; BJ=I1-Inverse[D1].A//N fJ=Inverse[D1].b//N; 运行结果为⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛=05.00005.000025.005.000025.000025.02.06.0000J B(ii )计算方程组的解精确到小数点后7位时,迭代次数、最后一次迭代的结果、最后两次的相对误差。