第七章解线性方程组的迭代法
计算方法3_线性方程组迭代解法
计算方法3_线性方程组迭代解法线性方程组的迭代解法是解决线性方程组的一种常见方法,常用于大规模的线性方程组求解。
该方法通过不断迭代更新解的近似值,直到满足一定的收敛准则为止。
线性方程组的迭代解法有很多种,其中最经典的是雅可比迭代法、高斯-赛德尔迭代法和超松弛迭代法。
本文将分别介绍这三种迭代解法及其计算方法。
雅可比迭代法是一种比较简单的线性方程组迭代解法,它的基本思想是先将线性方程组转化为对角占优的形式,然后通过迭代求解逐渐接近精确解。
雅可比迭代法的迭代公式为:其中,x^(k+1)是第k+1次迭代的近似解,n是未知数的个数,a_ij 是系数矩阵A的元素,f_i是方程组的右端向量的元素。
雅可比迭代法的计算步骤如下:1.将线性方程组转化为对角占优的形式,即保证矩阵A的对角元素绝对值大于其它元素的绝对值。
2.初始化向量x^(0),设定迭代终止准则。
3.根据雅可比迭代公式,计算x^(k+1)。
4.判断迭代终止准则是否满足,如果满足,则停止迭代,返回近似解x^(k+1);否则,继续进行下一次迭代。
高斯-赛德尔迭代法是雅可比迭代法的改进方法,它的基本思想是在每次迭代计算x^(k+1)时,利用已经计算出的近似解作为x的一部分。
高斯-赛德尔迭代法的迭代公式为:其中,x^(k+1)_i是第k+1次迭代的近似解中第i个未知数的值,x^(k)_i是第k次迭代的近似解中第i个未知数的值。
高斯-赛德尔迭代法的计算步骤如下:1.将线性方程组转化为对角占优的形式。
2.初始化向量x^(0),设定迭代终止准则。
3.根据高斯-赛德尔迭代公式,计算x^(k+1)。
4.判断迭代终止准则是否满足,如果满足,则停止迭代,返回近似解x^(k+1);否则,继续进行下一次迭代。
超松弛迭代法是对高斯-赛德尔迭代法的一种改进方法,它引入了松弛因子ω,通过调整参数ω的值,可以加快迭代的收敛速度。
超松弛迭代法的迭代公式为:其中,0<ω<2,x^(k+1)_i是第k+1次迭代的近似解中第i个未知数的值,x^(k)_i是第k次迭代的近似解中第i个未知数的值。
线性方程组的迭代式求解方法
线性方程组的迭代式求解方法迭代法解方程的基本原理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 。
解线性方程组的迭代法
解线性方程组的迭代法Haha送给需要的学弟学妹摘要:因为理论的分析表明,求解病态的线性方程组是困难的,但是实际情况是否如此,需要我们来具体检验。
系数矩阵H 为Hilbert 矩阵,是著名的病态问题。
因而决定求解Hx b =此线性方程组来验证上述问题。
详细过程是通过用Gauss 消去法、J 迭代法、GS 迭代法和SOR 迭代法四种方法求解Hx b =线性方程组。
关键词:病态方程组、Gauss 消去法、J 迭代法、GS 迭代法、SOR 迭代法目录:一、问题背景介绍二、建立正确额数学模型 三、求解模型的数学原理1、Gauss 消去法求解原理2、Jacobi 迭代法求解原理3、G-S 迭代法求解原理4、SOR 迭代法求解原理5、Jacobi 和G-S 两种迭代法收敛的充要条件 四、计算过程(一)Hilbert 矩阵维数n=6时1、Gauss 消去法求解2、Jacobi 迭代法求解3、G-S 迭代法求解4、SOR 迭代法求解(二)Hilbert 矩阵维数n=20、50和100时1、G-S 迭代法求解图形2、SOR 迭代法求解图形 五、编写计算程序 六、解释计算结果1、Gauss 消去法误差分析2、G-S 迭代法误差分析3、SOR 迭代法误差分析G-S 迭代法与SOR 迭代法的误差比较 七、心得体会正文:一、问题背景介绍。
理论的分析表明,求解病态的线性方程组是困难的。
实际情况是否如此,会出现怎样的现象呢?二、建立正确的数学模型。
考虑方程组Hx b =的求解,其中系数矩阵H 为Hilbert 矩阵,,,1(), , ,1,2,,1i j n n i j H h h i j n i j ⨯===+-这是一个著名的病态问题。
通过首先给定解(为方便计算,笔者取x 的各个分量等于1),再计算出右端,b Hx =这样Hx b =的解就明确了,再用Gauss 消去法、J 迭代法、GS 迭代法和SOR 迭代法四种方法分别求解,Hx b =将求解结果与给定解比较,而后求出上述四种方法的误差,得出哪种方法比较好。
数值方法线性方程组的迭代法
迭代法的特点
若在求解过程中 xkx*(k) ,由 xk+1=(xk)产生的迭代 xk 向x*的逼近 ,在数次迭代求解 之后,由于机器跳动产生的xk 值误差或是有效数字产生的舍 入误差,都会在第k+1次迭代 计算中自动弥补过来或逐步纠 正过来。因此,在 迭代求解 过程中产生的各种误差是可以 忽略的,即迭代求解无累积误 差,实际上, xk只是解的一个 近似,机器的舍入误差并不改 变它的此性质。
x ( k ) x* B k ( x ( 0) x*) 由 x ( k ) x * B k ( x ( 0) x*) B k x ( 0) x * B k x ( 0) x *
lim
k
x(k ) x *
定理2:若||B||<1,则迭代法
对矩阵也有类似的结论
下一页
如果 矩阵 A=(aij)满足 n |aii|> |aij|
j=1,ji
i=1,2,……n,
则称方阵A是严格(行)对角占优的.
U
A=
a11 a21 … an1
a12 a13 … a22 a23 … … … … an3 an4 …
-4 2 1 1 -9 7 2 -6 10
定理1:对任意初始向量x(0)及任意右段向量 g,由此产生的迭代向 量序列{x(k)}收敛的充要条件是
B 1
证明:必要性:设{x(k)}收敛,其极限为 x*
x * Bx* g
,则
x ( k ) x * B x ( k 1) x * B k x ( 0 ) x * 两边取极限
引言
• 直接法是通过有限步运算后得到线性方程组的 解,解线性方程组还有另一种解法,称为迭代 法,它的基本思想是将线性方程组 Ax=b 化为 • x=Bx+f • 再由此构造向量序列{x (k)}: • x(k+1)=Bx (k)+f • 若{x (k)}收敛至某个向量x *,则可得向量x *就是 所求方程组 AX=b 的准确解. • 线性方程组的迭代法主要有Jocobi迭代法、 Seidel迭代法和超松弛(Sor)迭代法.
解线性方程组的迭代法
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)
‖
解线性方程组 的迭代法
线性方程组迭代法
线性方程组迭代法
线性方程组迭代法,又称坐标下降法,是一种用于解线性方程组的迭代求解方法,常用于线性规划以及单纯形法等技术。
早在上世纪50年代,此方法就在解决
线性规划问题中得到了广泛应用,到目前为止,这种技术仍然广泛使用。
线性方程组迭代法是一种基于不断迭代调整变量,使目标函数达到最优结果的
迭代求解法。
其基本步骤是:
(1) 初始化目标函数变量:首先,初始化线性方程组的目标函数的变量;
(2) 评估梯度:选择合适的算法计算目标函数的梯度;
(3) 根据该梯度更新变量:更新目标函数变量的值,使得在此次更新之后的值
更加有利于满足线性方程组的要求;
(4) 重复上述步骤,直到目标函数足够接近最优值为止;
线性方程组迭代法能够快速地求解出线性规划问题的最优解,因此,它在计算
机上经常被用来优化问题,进而提高系统运行效率。
随着网络技术的发展,线性方程组迭代法在互联网领域得到了广泛应用,这在大大缩短了计算机程序的运行时间,提高了互联网的效率。
同时,线性方程组迭代法也有助于提高系统的性能,改善用户的体验,提升企业的品牌形象。
高斯-赛得尔迭代法
b12x2(k) b13x3(k)
x2(k
1)
b x (k1) 21 1
b23x3(k)
b x (k) 1n1 n1
b1n xn(k)
g1
b x( 2n1 n1
k
)
b2nxn(k)
g2
x (k1) n
b x (k1) n1 1
bn2
x (k1) 2
bn3x3(k1)
b x (k1) nn1 n1
9
解线性方程组的迭代法
例 用Gauss-Seidel迭代法求线性方程组
10x1 x2 2x3 72,
x1 10x2 2x3 83,
x1 x2 5x3 42,
x1 0.1x2 0.2x3 7.2 x2 0.1x1 0.2x3 8.3 x3 0.2x1 0.2x2 8.4
x )
x (k 1) 2
0.4x2(k )
0.7( x1(k 1)
x (k) 3
)
x (k 1) 3
0.4x3(k ) 0.7(1.8 x2(k1) )
20
解线性方程组的迭代法
x (k 1) 1
0.4x1(k )
0.7(1 x2(k) )
参数 , 误差限 , 最大容许迭代次数N.
2. 置 k 1.
3.计算
18
解线性方程组的迭代法
n
x1 (1 ) x1(0) (b1
a1
j
x(0) j
)
/
a11
j2
i 1
n
xi (1 )xi(0) (bi aij x j
aij
x
(0) j
)
/
aii
j 1
数值分析实验报告--实验6--解线性方程组的迭代法
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。
线性方程组的直接解法迭代解法
广东金融学院实验报告课程名称:数值分析实验目的及要求实验目的:题一:通过数值实验,从中体会解线性方程组选主元的必要性和LU分解法的优点,以及方程组系数矩阵和右端向最的微小变化对解向最的影响。
比较各种直接接法在解线性方程组中的效果;题二:认识齐种迭代法收敛的含义、影响齐迭代法收敛速度的因素。
实验要求:题一:(1)在MATLAB中编写程序用列主元高斯消去法和LU分解求解上述方程组,输出曲b中矩阵A 及向量b和A二LU分解中的L及U, detA及解向量X.(2)将方程组中的2. 099999改为2. 1, 5. 900001改为5. 9,用列主元高斯消去法求解变换后的方程组,输出解向最x及detA,并与(1)中的结果比较。
(3)用MATLAB的内部函数inv求出系数矩阵的逆矩阵,再输入命令x=inv(A)*b,即可求出方程组的解。
请与列主元高斯消公法和LU分解法求出的解进行比较,体会选主元的方法具有良好的数值稳定性。
用MATLAB的内部曲数det求出系数行列式的值,并与(1)、(2)中输出的系数行列式的值进行比较。
(4)比较以上各种直接解法在解线性方程组中的效果。
题二:(1)选取不同的初始向M:X(0)及右端向最b,给泄迭代误差要求,用Jacobi迭代法和Gauss-Seidel迭代法求解,观察得到的序列是否收敛?若收敛,记录迭代次数,分析计算结果并得出你的结论。
列岀算法清单。
(2)用SOR迭代法求上述方程组的解,松弛系数血取1<69<2的不同的三个值,在< 10"5时停止迭代,记录迭代次数,分析计算结呆与松弛系数血的关系并得出你的结论。
(3)用MATLAB的内部函数inv求出系数矩阵的逆矩阵.再输入命令^inv(A)*b>即可求出上述各个方程组的解.并与上述三种方法求出的解进行比较。
请将比较结果列入卜表。
方程组的解X1 Xr■迭代次数误差楮确解Jacibi解法Gause・seidel 解法SOR 解法00= 60= 60=实验环境及相关情况(包含使用软件、实验设备、主要仪器及材料等)1. Win72. Mat lab 7.0实验内容及步骤(包含简要的实验步骤流程) 实验内容:题一:解卜列线性方程组'10 -7‘X 】、(8、-3 2.099999 62Xr5.9000015-1 5 -15、12> 0< 1 >题二研究解线性方程组 做=b 迭代法的收敛性、收敛速度以及SOR 方法中/佳松弛因子的选取问题, 用迭代法求解做二b,其中・4 -1r■7 A=4 -81 ,b =-21-2 ■1515实验结果(包括程序或图表、结论陈述.数据记录及分析等,可附页)题一:直接解法解线性方程组(1)列主兀高斯消去法与LU 分解求解列主元高斯消去法:编写matalab 程序(见附录gaosi.m ),输出矩阵10.000 -7.000 0.000= 0.000 2.5000-5.000一 0.000 0.0006.0000020.000 0.000 0.000向量8 b =1 8.300 L5.0800J解向量:X = (0 ・-1 , 1 r I )7 其中系数行列式的值det (A )=762.00009LU 分解求解:编J matalab 程序(见附录zhjLU. m 和LU ・m ),执行输出:-1.5 2.300 5.080-3.0001.000000.00000.5000 -25000001.0000 0.2000 -24000000.9600 10.0000 -7.0000 0.0000 1.0000n = 0.0000-0.0000010.0000 2.3000 —0.0000 0.000015000000 57500000.0000 0.0000 0.0000 5.0800在matlab 命令窗II 输入L*U ,可以得到A 二L*U ,即分解结果正确。
线性方程组的迭代解法及收敛分析
1.9583
0.8468
0.2974
9
1.0975
2.0954
2.8217
1.9788
0.8847
0.2533
10
1.0850
2.0738
2.8671
1.9735
0.8969
0.2041
11
1.0673
2.0645
2.8802
1.9843
0.9200
0.1723
12
1.0577
2.0509
2.9077
1.9828
0.9303
0.1400
13
1.0463
2.0437
2.9191
1.9887
0.9448
0.1174
14
1.0392
2.0350
2.9363
1.9886
0.9527
0.0959
15
1.0318
2.0297
2.9451
1.9920
0.9620
0.0801
16
1.0267
2.0241
Keywords:MATLAB,Mathematical model,Iterative method,ConvergenceSystem of linear equations
1
在实际生活中,存在着大量求解线性方程组的问题。这些方程组具有数据量大,系数矩阵稀疏,在一定精度保证下,只需要求解近似解等特点。线性方程组的迭代解法特别适合于这类方程组的求解,它具有程序设计简单,需要计算机的贮存单元少等特点,但也有收敛性与收敛速度问题。因此,研究线性方程组的迭代解法及收敛分析对于解决实际问题具有非常重要的作用。
线性代数方程组迭代法PPT课件
超松弛法
收敛速度快
总结词
总结词
计算量较大
ABCD
详细描述
超松弛法具有较快的收敛速度,尤其对于大型线 性方程组,能够显著减少迭代次数。
详细描述
由于超松弛法的计算量较大,因此在实际应用中 可能需要考虑计算效率的问题。
CHAPTER 04
迭代法的实现步骤
初始化
设置初值
为方程组的解向量设定一个初始值。
迭代法的应用场景
当方程组的系数矩阵难以直接求解时 ,迭代法可以作为一种有效的替代方 案。
在科学计算、工程技术和经济领域中 ,许多问题可以转化为线性代数方程 组求解,而迭代法在这些领域有广泛 的应用。
迭代法的优缺点
优点
迭代法通常比直接法更加灵活和通用,对于大规模和高维度的线性代数方程组, 迭代法更加高效。
缺点
迭代法需要选择合适的迭代公式和参数,并且需要满足收敛条件,否则可能无 法得到正确的解。此外,迭代法的计算过程比较复杂,需要较高的计算成本。
CHAPTER 02
迭代法的基本原理
迭代法的数学模型
迭代法是一种求解线性代数方程组的数值方法,通过不断迭代逼近方程的 解。
迭代法的数学模型通常表示为:$x_{n+1} = T(x_n)$,其中$x_n$表示第 $n$次迭代时的近似解,$T(x)$表示迭代函数。
03
非线性方程组的迭代法在求解优化问题、控制问题 等领域有广泛应用。
在优化问题中的应用
01
迭代法在优化问题中也有广泛应用,如求解无约束优化问题、 约束优化问题和多目标优化问题等。
02
常见的优化问题迭代法包括梯度下降法、牛顿法和共轭梯度法
等。
这些方法通过不断迭代来逼近最优解,广泛应用于机器学习、
6、解线性代数方程组的迭代法
(i, j 1,2,, n)
k
则称{ Ak }收敛于A,记为 lim Ak A.
例4 设矩阵序列 A 0
1 2 2 2 k kk 1 , , Ak , , , A k 0 2 0 且 | | 1,考查其极限.lim kk lim k lim 1 0. k k k k k k 1
1. xi 0.0(i 1,2,, n), 2. 对于k 1,2,, N 0 ,
nn
非奇异,
且aii 0(i 1,2,, n), 数组x(n)开始存放x ( 0) , 后存放x ( k ) ,
xi (bi aij x j aij x j ) aii (i 1,2,, n), j 1 j i 1
(1.4)
即
x(k+1)=B0x(k)+f, (k=0,1,2,„)
x (10) (3.000032 , 1.999838 , 0.9998813 )T , ε (10)
0.000187 , 其中ε (10) x (10) x * .
一般地,由Ax b变形得到等价的x Bx f .
0 a11 0 a12 a1n a a22 0 21 0 ,U , L . D an1,n a ann 0 n1 an,n 1 0
(k )
并有一阶定常迭代法 x Bx f (3.3)
引进误差向量ε ( k ) x ( k ) x*,则 ε ( k 1) Bε ( k ) B k ε ( 0) .
线性方程组求解的迭代算法
线性方程组求解的迭代算法线性方程组是数学中常见的问题之一,求解线性方程组是很多科学和工程领域中必需的基本任务。
而迭代算法是一种常见的求解线性方程组的方法之一,通过不断逼近线性方程组的解来达到求解的目的。
本文将介绍一些常见的线性方程组迭代算法及其原理。
一、雅可比迭代法雅可比迭代法是最早被提出的线性方程组迭代算法之一。
其思想是通过不断迭代,在每一步都利用先前求得的近似解来逼近方程组的解。
具体算法如下:假设给定的线性方程组为Ax=b,其中A为系数矩阵,b为常数向量,x为未知向量。
1. 首先,将方程组转化为x=D^-1(b-Rx),其中D为一个对角矩阵,R为矩阵A的剩余部分。
2. 设定一个初始解向量x0。
3. 迭代计算:重复执行以下步骤,直到满足终止条件。
a. 计算下一次迭代的解向量:x_k+1 = D^-1(b-Rx_k),其中k为当前迭代的次数。
b. 检查终止条件是否被满足,如果是,则停止迭代;否则,返回步骤a。
雅可比迭代法的收敛性与系数矩阵A的特征值有关。
当A是严格对角占优矩阵时,迭代法收敛。
二、高斯-赛德尔迭代法高斯-赛德尔迭代法是雅可比迭代法的一种改进方法。
在每一次迭代中,新的解向量x_k+1的计算会利用到之前已经计算得到的近似解向量的信息,从而加快迭代的速度。
具体算法如下:1. 设定一个初始解向量x0。
2. 迭代计算:重复执行以下步骤,直到满足终止条件。
a. 对于每个方程i,计算下一次迭代的解向量的每个分量:x_k+1[i] = (1/A[i][i]) * (b[i]-Σ(A[i][j]*x_k[j],其中j为1到i-1之间的所有整数。
b. 检查终止条件是否被满足,如果是,则停止迭代;否则,返回步骤a。
高斯-赛德尔迭代法相比于雅可比迭代法,在每一次迭代中都会利用到之前计算得到的近似解向量的信息,因此收敛速度更快。
三、超松弛迭代法超松弛迭代法是对雅可比迭代法和高斯-赛德尔迭代法的进一步改进。
通过引入松弛因子ω,可以加速迭代的收敛速度。
第七章 线性代数方程组的迭代法
(7.4)
BJ D1(L U )
a1 11
a1 22
0
a21
0
0 a12
0
a13 L a23 L
a1n a2n
a1 33 O
a31
a32
0
M M M
O
0
L O
a3n M
a1 nn
an1
an2
an3
L
0
a32
0
M M M O
an1 an2 an3 L 0
U
0
L O
a3n M
0
Ax b (D L U )x b Dx (L U )x b x D1(L U )x D1b
则雅克比迭代法的矩阵形式为:
x(k1) D1(L U )x(k ) D1b BJ x(k ) f (k 0,1,L )
(Sequential Over-Relaxation)
(1)迭代
~xi(k1)
1 aii
bi
i1
aij
x
(k j
1)
j1
n
aij
x
(k j
)
ji1
(2)加速
x(k 1) i
(1 )xi(k)
x%ik 1
(i 1, 2,L , n)
即
x(k1) i
(1 )xi(k)
aii
bi
0
0
a12 a11
a13
L
a11
a1n a11
a21 a22
0
a23 L a22
a2 n a22
a31 a33
a32 a33
线性方程组的迭代法
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 )
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
迭代法概述
迭代法的基本思想是构造一串收敛到解的序 列,即建立一种从已有近似解计算新的近似解的 规则。由不同的计算规则得到不同的迭代法,本 章介绍单步定常线性迭代法。
对线性方程组 Ax b , bn )T 其中A ( aij ) nn 非奇异矩阵,b (b1 , 构造其形如 x Mx g 的同解方程组,其中M 为n阶方阵,g R n。 任取初始向量x (0) R n , 代入迭代公式 x ( k 1) Mx ( k ) g (k=0,1,2, ) 产生向量序列{x ( k ) },当k 充分大时,以x ( k )作为 方程组Ax b的近似解,这就是求解线性方程组 的单步定常线性迭代法。 M 称为迭代矩阵。
2
若系数矩阵非奇异即
b x
12
b13 x 3
a
23
ii
0 (i 1, 2,
b1n x n
2n n
, n), 则有
1 2
b x
21 n1
1
b x
n2 2
3
g b x g
b x b x
1
b n3 x 3
g
n
其中bij
aij aii
, (i j , i, j 1, 2,
14
高斯—塞德尔迭代法(续3)
如果用矩阵A来表示,记 0 a 21 L a31 an1 则 0 0 a32 an 2 ann 1 U D 1U 0 0 0 a12 0 U 0 a13 a23 a1n a2 n an 1n 0
此过程所给出的迭代法称为Jacobi迭代法,又称简单
矩阵简化记法
0 B b 21 b n1
b b
12
0
b b
n2
1 0 2n 0 0
1n
0 1 0
b12 0 1 1 0 b 21 1 b n1 b n 2
k k
即x是方程组Ax b的解。
5
雅可比(Jacobi)迭代法
a 11 x1 a 12 x 2 a 21 x1 a 22 x 2 a n1 x1 a n1 x 2
x 1 x2 xn
a 1n x n b1 a 2n x n b 2 a nn x n b n
b
12
0
b b
b
n2
2, n 0
1n
( I L) x ( k 1) U x ( k ) g
因为 I L 1, 故( I L) 1 存在,上式可改写为 x ( k 1) ( I L ) 1U x ( k ) ( I L ) 1 g
同样
g
(g
1, g 2,
, g n)
T
(b1
ቤተ መጻሕፍቲ ባይዱ
a11, b 2 a 22 ,
, b n a nn)
T
D b
8
1
收敛与解
Jacobi 迭代 若收敛
*
x
(k)
(n 1)
Bx g
*
(n)
n 0,,, 1 2
{x } x
,则
x
即
Bx g
*
( I B) x* g D 1 Ax* D 1b Ax* b
定义:设{ A( k ) }为n阶方阵序列,A为n阶方阵,如果 lim A( k ) A 0
k
其中 为矩阵范数,则称序列{ A( k ) }收敛于矩阵A,记为 lim A( k ) A
k (k ) 定理:设{ A( k ) } ( aij ) ( k 1, 2,
), A ( aij )均为n阶方阵, , n)
L D 1 L,
I L D 1 D D 1 L D 1 ( D L) 由 x ( k 1) ( I L) 1U x ( k ) ( I L) 1 g x ( k 1) ( D L) 1Ux ( k ) ( D L) 1 b 式中矩阵 M ( D L) 1U 为Gauss Seidel迭代法的迭代矩阵。
则矩阵序列{ A( k ) }收敛于矩阵A的充要条件为
(k ) lim aij aij k
(i, j 1, 2,
证明略。 定理表明,向量序列和矩阵序列的收敛可以归结为对应 分量或对应元素序列的收敛。 若按x ( k 1) Mx ( k ) g 产生的向量序列{x ( k ) }收敛于向量x, 则有 x lim x ( k 1) lim[ Mx ( k ) g ] Mx g
3
收敛性定理
定义:设{x ( k ) }为R n中的向量序列,x R n,如果 lim x ( k ) x 0
k
其中 为向量范数,则称序列{x ( k ) }收敛于x,记为 lim x ( k ) x
k
定理:R n中的向量序列{x ( k ) }收敛于R n中的向量x当且仅当 lim xi( k ) xi
而对任意1 i n,有0 xi( k ) xi max x (jk ) x j x ( k ) x 由极限存在准则得 即
k
lim xi( k ) xi =0
k
(i 1, 2, , n)
, n)
lim xi( k ) xi
(i 1, 2,
4
收敛性定理(续)
g1 g g 2 gn
x Bx g
(1) (0) 选初值向量x (0) 代入 x (1) , x Bx g,代入x (1)
,如此继续下去,就产生一个向量序列{x ( k ) } x ( k 1) Bx ( k ) g (k 0,1, 2, )
(0) , bn ), 维数n, x (0) ( x1(0) , x2 , (0) , xn ),
, 最大容许迭代次数N .
2.置k 1. 3.对i 1, 2, ,n xi (bi aij x (0) j ) / aii
j 1 j i n
4.若 x x (0) , 输出x, 停机;否则转5。 5.若k N , 置k 1 k , xi xi(0) (i 1, 2, 否则,输出失败信息,停机。 评价:公式简单,每迭代一次只需计算一次矩阵和向量 的乘法,不改变M 的稀疏性,需两组工作单元,存x ( k ) , x ( k 1) 。
故如果序列收敛, 则收敛到解。B称迭代矩阵。
9
雅可比(Jacobi)迭代法例子
10x1 x2 2 x3 72 例:用Jacobi迭代法求解 x1 10 x2 2 x3 83 x x 5 x 42 1 2 3 解: B I D 1 A 1 0 0 1 0 0 10 10 1 2 0 1 0 1 10 2 0.1 0 1 0 0 10 0 0 1 1 1 5 0.2 1 0 0 5 g D 1b (7.2,8.3,8.4)T x (2) Bx (1) g (9.71,10.70,11.5)T 精确解为x (11,12,13)T .
b1n b 2 n 1
1 a11 a11 1 a 21 a 22 I 1 a nn a n1
a12 a1n a 22 a 2n 1 I- D A a n2 a nn
k (k ) (k ) 其中x ( k ) ( x1 , x2 ,
(i 1, 2,
, n) , xn )T 。
(k ) T , xn ) , x ( x1 , x2 , k
证:由定义, { x ( k ) }收敛于x即
lim x ( k ) x 0
1 j n
, n), g i
bi (i 1, 2, aii
, n).
6
雅可比(Jacobi)迭代法(续)
0 b12 b 0 若记 B 21 bn1 bn 2 则方程组可简记为 x (2) 满足 迭代法。
7
b13 b23 bn 3
b1n 1 b2 n 1 bnn 1
b1n b2 n 0
15
高斯—塞德尔迭代法(续4)
近似解向量x ( k )和x ( k 1)。若把迭代公式改写成
12
高斯—塞德尔迭代法(续1)
(k ) (k ) (k ) ( k 1) g x b b b 1 12 x 2 13 x 3 1n x n 1 ( k 1) (k ) (k ) ( k 1) g x2 b b b 21 x 1 23 x 3 2n x n 2 ( k 1) ( k 1) ( k 1) ( k 1) g b n1 x1 b n 2 x 2 b n,n1 x n1 n xn 这样,在整个计算过程中,只需用n个单元存储近似
主要知识点
• 雅可比迭代法 • 高斯-塞德尔迭代法 • SOR方法 • 迭代法的收敛性及误差估计
1
解线性方程组的迭代法
直接法: 经过有限次运算后可求得方程组精确解的 方法(不计舍入误差!) 迭代法:从解的某个近似值出发,通过构造一个无穷序列 去逼近精确解的方法。(一般有限步内得不到精确解) 直接法比较适用于中小型方程组。对高阶方程组, 既使系数矩阵是稀疏的,但在运算中很难保持稀疏性, 因而有存储量大,程序复杂等不足。 迭代法则能保持矩阵的稀疏性,具有计算简单,编制 程序容易的优点,并在许多情况下收敛较快。故能有效 地解一些高阶方程组。