第三章 解线性方程组的迭代法
计算方法(3)第三章 线性代数方程组的解法
“回代”解得
xn
bn ann
xk
1 akk
[bk
n
akj x j ]
j k 1
其中aii 0 (i 1,2,......, n)
(k n 1, n 2, ,1)
返回变量
函数名
function X=backsub(A,b) 参数表
%Input—A is an n×n upper- triangular nonsingullar matrix % ---b is an n×1 matrix
x1
xi
b1 / a11
i 1
(bi aik
k 1
xk ) / aii
(i
2,3,
, n)
如上解三角形方程组的方法称为回代法.
二. 高斯消元法(Gaussian Elimination)
高斯消元法的求解过程,可大致分为两个阶段:首先, 把原方程组化为上三角形方程组,称之为“消元”过 程;然后,用逆次序逐一求出上三角方程组(原方程组的 等价方程组)的解,称之为“回代”过程.
符号约定:
1. (λEi )(Ei ): 第i个方程乘以非零常数λ。 2. (Ei +λEj )(Ei ): 第j个方程乘以非零常数λ
加到第i个方程。
3.(Ei )(Ej ): 交换第i个方程与第j个方程。
a11 x1 a12 x2 ... a1n xn b1
a21
x1 4 x4 x2 4 1 2 1
故解为(x1,x2 ,x3 ,x4 )T (1,2,0,1)T
A=[1 1 0 1;0 -1 -1 -5;0 0 3 13;0 0 0 -13] b=[4;-7;13;-13] X=backsub(A,b)
数值分析第三章线性方程组解法
数值分析第三章线性方程组解法在数值分析中,线性方程组解法是一个重要的主题。
线性方程组是由一组线性方程组成的方程组,其中未知数的次数只为一次。
线性方程组的解法包括直接解法和迭代解法两种方法。
一、直接解法1.1矩阵消元法矩阵消元法是求解线性方程组的一种常用方法。
这种方法将方程组转化为上三角矩阵,然后通过回代求解得到方程组的解。
1.2LU分解法LU分解法是将系数矩阵A分解为一个下三角矩阵L和一个上三角矩阵U的乘积,然后通过解两个三角方程组求解线性方程组。
这种方法可以减少计算量,提高计算效率。
1.3 Cholesky分解法Cholesky分解法是对称正定矩阵进行分解的一种方法。
它将系数矩阵A分解为一个下三角矩阵L和它的转置的乘积,然后通过解两个三角方程组求解线性方程组。
Cholesky分解法适用于对称正定矩阵的求解,具有较高的精度和稳定性。
二、迭代解法2.1 Jacobi迭代法Jacobi迭代法是一种迭代求解线性方程组的方法。
它通过分解系数矩阵A为一个对角矩阵D和一个余项矩阵R,然后通过迭代更新未知数的值,直至达到一定精度要求为止。
Jacobi迭代法简单易懂,容易实现,但收敛速度较慢。
2.2 Gauss-Seidel迭代法Gauss-Seidel迭代法是一种改进的Jacobi迭代法。
它通过使用新计算出的未知数值代替旧的未知数值,达到加快收敛速度的目的。
Gauss-Seidel迭代法是一种逐步逼近法,每次更新的未知数值都会被用于下一次的计算,因此收敛速度较快。
2.3SOR迭代法SOR迭代法是一种相对于Jacobi和Gauss-Seidel迭代法更加快速的方法。
它引入了一个松弛因子,可以根据迭代的结果动态地调整未知数的值。
SOR迭代法在理论上可以收敛到线性方程组的解,而且收敛速度相对较快。
三、总结线性方程组解法是数值分析中的一个重要内容。
直接解法包括矩阵消元法、LU分解法和Cholesky分解法,可以得到线性方程组的精确解。
计算方法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个未知数的值。
数值分析第三章线性方程组迭代法
数值分析第三章线性方程组迭代法线性方程组是数值分析中的重要问题之一,涉及求解线性方程组的迭代法也是该领域的研究重点之一、本文将对线性方程组迭代法进行深入探讨。
线性方程组的一般形式为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迭代法、共轭梯度法等。
这些方法都具有不同的特点和适用范围,可以根据问题的具体情况选择合适的迭代法。
第3章3-06迭代法和收敛性
解 方程组化为等价的方程组 0.2 x2 + 0.1x3 + 0.3 x1 = + 0.1x3 + 1.5 x2 = 0.2 x1 x = 0.2 x + 0.4 x + 2 1 2 3 构造高斯 赛德尔迭代公式 高斯构造高斯-赛德尔迭代公式 ( ( x1( k +1) = 0.2 x2k ) + 0.1x3k ) + 0.3 ( k +1) ( x2 = 0.2 x1( k +1) + 0.1x3k ) + 1.5, k = 0,1, 2,L ( k +1) ( x3 = 0.2 x1( k +1) + 0.4 x2k +1) + 2
雅可比迭代公式
i −1 n 1 ( k +1) (k ) (k ) xi = (bi − ∑ aij x j − ∑ aij x j ) , (i = 1,2,L, n) aii j =1 j =i +1
分量形式
( k +1) 1 ( ( ( x1 = (b1 − a12 x2k ) − a13 x3k ) − L − a1n xnk ) ) a11 ( k +1) 1 ( ( x2 = (b2 − a21 x1( k ) − a23 x3k ) − L − a2 n xnk ) ) a22 LLLL ( k +1) 1 ( ( ) xn = (bn − an1 x1( k ) − an 2 x2k ) − L − ann −1 xnk 1 ) − ann
高斯-赛德尔 高斯 赛德尔(Seidel)迭代公式 赛德尔 迭代公式
i −1 n 1 ( k +1) ( k +1) (k ) xi = (bi − ∑aij x j − ∑aij x j ), aii j =1 j =i +1
线性方程组的迭代式求解方法
线性方程组的迭代式求解方法迭代法解方程的基本原理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 。
数值分析--第三章--迭代法
数值分析--第三章--迭代法迭代⼀般⽅程:本⽂实例⽅程组:⼀.jacobi迭代法从第i个⽅程组解出xi。
线性⽅程组Ax=b,先给定⼀组x的初始值,如[0,0,0],第⼀次迭代,⽤x2=0,x3=0带⼊第⼀个式⼦得到x1的第⼀次迭代结果,⽤x1=0,x3=0,带⼊第⼆个式⼦得到x2的第⼀次迭代结果,⽤x1=0,x2=0带⼊第三个式⼦得到x3的第⼀次迭代结果。
得到第⼀次的x后,重复第⼀次的运算。
转化成⼀般的形式:(其中L是A的下三⾓部分,D是A的对⾓元素部分,U 是上三⾓部分)得到迭代公式:其中的矩阵B和向量f如何求得呢?其实,矩阵B的计算也很简单,就是每⾏的元素/该⾏上的对⾓元素⼆.Gauss-Seidel迭代法【收敛速度更快】这个可以和jacobi法对⽐进⾏理解,我们以第⼆次迭代为例(这⾥的第⼀次迭代结果都⽤⼀样的,懒得去换)从上表对⽐结果可以看出,Jacobi⽅法的第⼆次迭代的时候,都是从第⼀次迭代结果中,获取输⼊值。
上⼀次迭代结果[2.5,3.0,3.0],将这个结果带⼊上⾯式⼦1,得到x1=2.88,;将[2.5,3.0,3.0]替换成[2.88,3.0,3.0]带⼊第⼆个式⼦的运算,这⾥得到x2=1.95,所以把[2.88,3.0,3.0]替换成[2.88,1.95,3.0]输⼊第三个式⼦计算X3=1.0.这就完成了这⼀次的迭代,得到迭代结果[2.88,1.95,1.0],基于这个结果,开始下⼀次迭代。
特点:jacobi迭代法,需要存储,上⼀次的迭代结果,也要存储这⼀次的迭代结果,所以需要两组存储单元。
⽽Gauss-Seidel迭代法,每⼀次迭代得到的每⼀个式⼦得到的值,替换上⼀次迭代结果中的值即可。
所以只需要⼀组存储单元。
转化成⼀般式:注意:第⼆个式⼦中的是k+1次迭代的第⼀个式⼦的值,不是第k次迭代得值。
计算过程同jacobi迭代法的类似三.逐次超松弛法SOR法上⾯仅仅通过实例说明,Jacobi和Seidel迭代的运算过程。
解线性方程组的迭代法
解线性方程组的迭代法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 =将求解结果与给定解比较,而后求出上述四种方法的误差,得出哪种方法比较好。
解线性方程组的迭代法
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) 重复上述步骤,直到目标函数足够接近最优值为止;
线性方程组迭代法能够快速地求解出线性规划问题的最优解,因此,它在计算
机上经常被用来优化问题,进而提高系统运行效率。
随着网络技术的发展,线性方程组迭代法在互联网领域得到了广泛应用,这在大大缩短了计算机程序的运行时间,提高了互联网的效率。
同时,线性方程组迭代法也有助于提高系统的性能,改善用户的体验,提升企业的品牌形象。
3线性方程组的迭代解法
三、逐次超松弛法(SOR方法)
逐次超松弛法(Successive Over Relaxation Method)可 看成是Gauss-Seidel方法的加速,Seidel迭代法是SOR方法的 特例。将Seidel方法的迭代公式
改写为
x(k1) i
1 aii
(bi
i 1
a x(k 1) ij j
k
0
1
2
3
4
5
6
x1
0
2.5000 2.9773 3.0098 2.9998 2.9999 3.0000
x2
0
2.0909 2.0289 1.9968 1.9997 2.0001 2.0000
x3
0
1.2273 1.0041 0.9959 1.0002 1.0001 1.0000
可见Gauss-Seidel迭代法比Jacobi迭代法收敛要快一些。
x(k 1) BJ x(k ) f J
0
其中
a21
a22
BJ D1(L U )
an1 ann
a12 a11 0
an2 ann
a13 a11
a23 a22
7
a1n1 a11
a2n1 a22
ann1 ann
a1n
a11
a2 n
a22 , fJ D1b
0
二、 Gauss-Seidel 迭代法
x(k ) i
xi(k )
x(k ) i
1 aii
bi
i 1
a x(k 1) ij j
j 1
n
aij
x(jk
)
j i
为加快收敛,在增量 xi(k ) 前加一个因子
线性方程组求解的迭代算法
线性方程组求解的迭代算法线性方程组是数学中常见的问题之一,求解线性方程组是很多科学和工程领域中必需的基本任务。
而迭代算法是一种常见的求解线性方程组的方法之一,通过不断逼近线性方程组的解来达到求解的目的。
本文将介绍一些常见的线性方程组迭代算法及其原理。
一、雅可比迭代法雅可比迭代法是最早被提出的线性方程组迭代算法之一。
其思想是通过不断迭代,在每一步都利用先前求得的近似解来逼近方程组的解。
具体算法如下:假设给定的线性方程组为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。
高斯-赛德尔迭代法相比于雅可比迭代法,在每一次迭代中都会利用到之前计算得到的近似解向量的信息,因此收敛速度更快。
三、超松弛迭代法超松弛迭代法是对雅可比迭代法和高斯-赛德尔迭代法的进一步改进。
通过引入松弛因子ω,可以加速迭代的收敛速度。
数值计算方法第三章 线性方程组迭代法
0,1,2,
取x1(0) 0, x2(0) 0,计算结果如下:
k0
x (k) 1
0
x (k) 2
0
1
2
3
4
0.66667 0.50000 0.61111 0.58333
0.50000 0.16667 0.25000 0.19445
5
6
7
8
9
0.60185 0.59722 0.60031 0.59954 0.6005
从而得迭代式 x(k1) (D L)1Ux (k) (D L)1 b, (k 0,1,2, )
上式中矩阵 M (D L)1U 为Gauss-Seidel迭代矩阵。
输入:A,b, n,
置初值: k 0; xi 0(i 1,L , n)
k k 1;e 0
3xx1 12xx22
2 1
精确到3位有效数字。
解 Gauss Siedel迭代格式为
x (k 1) 1
x (k 1) 2
(2 x2(k) ) / 3 (1 x1(k1) ) / 2
,
k
0,1,
2,L
取x1(0)
0,
x (0) 2
0, 计算结果如下:
0
101
0
1
10
2
1 0 0 101 1 1 5
0 0.1 0.2 0.1 0 0.2
0.2 0.2 0
取初值x (0) (0,0,0)T 代入迭代式
x(1) Bx (0) g (7.2,8.3,8.4)T x(2) Bx(1) g (9.17,10.70,11.50)T ,如此下去, x(9) Bx (1) g (10.9994 ,11.9994 ,12.9992 )T
数值分析第三章线性方程组的迭代法课件
§ 3.3.2 Gauss—Seidel 迭代法的矩阵表示
将A分裂成A =D+L+U,则Ax b 等价于
(D+L+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
e(k) x(k) x* Gx(k1) d (Gx* d) G(x(k1) x* ) Ge(k1)
于是 e(k) Ge(k1) G 2e(k2) Gk e(0)
由于 e (0)可以是任意向量,故 e(k) 收敛于0当且仅
故 (D L)x(k1) (1)D U x(k) b
显然对任何一个ω值,(D+ωL)非奇异, (因为假设 aii 0,i 1,2,, n )于是超松弛迭代公式为
x(k1) (D L)1 (1)D U x(k) (D L)1b
令 L (D L)1 (1)D U
f (D L)1b
则超松弛迭代 公式可写成
称为雅可比迭代公式, B称为雅可比迭代矩阵
雅可比迭代矩阵表示法,主要是用来讨论其收敛 性,实际计算中,要用雅可比迭代法公式的分量 形式。即
x1(k 1)
1 a11
(a12 x2(k )
a13 x3(k )
a1n xn(k )
b1 )
x2(k 1)
1 a 22
(a21 x1(k )
a23 x3(k )
§ 3.4.2超松弛迭代法的矩阵表示 设线性方程组 Ax=b 的系数矩阵A非奇异,且主对角
元素 aii 0(i 1,2,, n) , 则将A分裂成
3d迭代法基本概念
lim Ak A
k
7
向量序列的极限
定理: lim x ( k ) x
k
lim x ( k ) x 0
k
定理: lim Ak A
k
lim Ak A 0
k
(其中 || ·|| 为任一范数)
定理: lim Ak A
k
lim Ak x 0, x R
5
矩阵分裂迭代法
x
( 1)
Bx
(k)
f
k = 0, 1, 2, …
(k) lim x 定义:若 k 存在,则称该迭代法收敛,否则称为发散
(k) lim x x 性质:若 k ,则
x*
为原方程组 Ax = b 的解
6
向量序列的极限
定义:设向量序列 x
存在向量 x x1 , x2 ,
迭代法是目前求解大规模线性方程组的主要方法
4
矩阵分裂迭代法
矩阵分裂迭代法基本思想
A 的一个 矩阵分裂
Ax = b
A=M-N
M 非奇异
Mx = Nx + b
x M 1Nx M 1b
给定一个初始向量 x(0),可得 迭代格式
x
( k 1)
Bx
(k)
f
k = 0, 1, 2, …
其中 B = M-1N 称为迭代矩阵
(k) k 0
, xn ,使得
T
x ,
(k)
x ,x ,
(k) 1 (k) 2
,x
(k) T n
,若
lim x
k
(k) i
xi
i = 1, 2, … , n
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
则有
A=D-L-U
于是线性方程组 Ax=b 可写成 (D-L-U)x=b 等价于 Dx=(L+U)x+b 或 x=D-1(L+U)x+D-1b
由此建立J迭代法迭代公式
x(k+1)=D-1(L+U)x(k)+D-1b 或写成
x(k+1)=Bx(k)+g 其中
0 a21 B D 1 (L U) a22 an1 a nn a12 a11 0 a n2 ann a1n a11 a2 n a22 0
x(k+1)=(D-L)-1Ux(k)+(D-L)-1b
所以G-S迭代法可以写成 x(k+1)=Gx(k)+g 其中 G=(D-L)-1U , g=(D-L)-1b k=0,1,2,…
§2
讨论迭代法
迭代法的收敛性
k=0,1,2,…
8(k+1)=Mx(k)+g 的收敛性.
记误差向量e(k)=x(k)-x*,则迭代法收敛就是e(k)0. 由于 x(k+1)=Mx(k)+g x*=Mx*+g 所以 k=0,1,2,… k=0,1,2,…
同样取初始向量x(0)=(0,0,0)T, 计算结果为 k
0 1 2 3
x1(k)
x2(k)
x3(k)
‖x(k)-x*‖
0 0 0 1 1.4 0.78 1.026 0.4 1.0634 1.02048 0.987516 0.0634 0.9951044 0.99527568 1.00190686 0.0048956 由计算结果可见,G-S迭代法收敛较快.取精确到小数
从而得迭代公式
a1n ( k ) b1 a12 ( k ) a13 ( k ) ( k 1) x2 x3 xn x1 a11 a11 a11 a11 a 2 n ( k ) b2 a 21 ( k ) a 23 ( k ) ( k 1) x1 x3 xn x 2 a 22 a 22 a 22 a 22 a n1 ( k ) a n 2 ( k ) a nn1 ( k ) bn ( k 1) x n a x 1 a x 2 a x n 1 a nn nn nn nn
x(k+1)=Bx(k)+g
k=0,1,2,…
若在J迭代法中,充分利用新b1 a12 ( k ) a13 ( k ) ( k 1) x2 x3 xn x1 a11 a11 a11 a11 a 2 n ( k ) b2 a 21 ( k 1) a 23 ( k ) ( k 1) x1 x3 xn x 2 a 22 a 22 a 22 a 22 a n1 ( k 1) a n 2 ( k 1) a nn1 ( k 1) bn ( k 1) x n a x 1 a x 2 a x n 1 a nn nn nn nn
点后两位的近似解,G-S迭代法只需迭代3次,而J迭代法需
要迭代7次.
为了进一步研究,从矩阵角度来讨论上述迭代法. 对线性方程组Ax=b,记 D=diag(a11,a22,…,ann)
0 a 21 L a 31 a n1 0 a 32 an2 a nn1 0 a12 0 , U 0 a1n a 23 a 2 n a n 1n 0 a13
于是有 ‖x(k+1) -x(k) ‖‖M‖‖x (k) -x(k-1) ‖ ‖x(k+1) –x*‖‖M‖‖x (k) –x*‖ ‖x(k+1) -x(k) ‖=‖(x (k+1) –x* )-(x(k) –x* )‖ ‖x (k) –x*‖-‖x(k+1) –x*‖
‖x(k+1) -x(k) ‖=‖(x (k+1) –x* )-(x(k) –x* )‖ ‖x (k) –x*‖-‖x(k+1) –x*‖ (1-‖M‖)‖x(k) –x*‖
所以
x (k ) x* 1 M x ( k 1) x ( k ) x ( k ) x ( k 1) 1 M 1 M
M
k
0.8 0.5 定理3.2只是收敛的充分条件,并不必要,如 M 0 0.7
1 M
x (1) x ( 0 )
则‖M‖1=1.2,‖M‖=1.3,‖M‖2=1.09,‖M‖F=1.17
,或x=Mx+g
由此建立方程组的迭代公式
x(k+1)=Mx(k)+g ,
k=0,1,2,…
(3.2)
其中M称为迭代矩阵。对任意取定的初始向量x(0),由(3.2) 式可逐次算出迭代向量x(k),k=1,2,…, 如果向量序列{x(k)} 收敛于x*,由(3.2)式可得 x*=Mx*+g 从而x*是方程组x=Mx+g的解,也就是方程组Ax=b的解. 这种求解线性方程组的方法称为迭代法 ,若迭代序列
(3.3)
, k 1,2,3,
式(3.3)称为Jacobi迭代法,简称为J迭代法. J法也记为
xi
( k 1) i 1 n 1 (k ) (bi aij x j aij x (jk ) ) j 1 j i 1 aii
, i 1,2, n, k 0,1,2,
定理3.2
若‖M‖<1,则对任意x(0),迭代法收敛,而且
x
(k )
x
*
M 1 M
M
k
x ( k ) x ( k 1)
x (1) x (0)
(3.5)
(3.6)
x (k) x *
1 M
证
所以
由于 x(k+1)=Mx(k)+g x(k)=Mx(k-1)+g x*=Mx*+g x(k+1) -x(k)=M(x (k) -x(k-1) ) , x(k+1) –x*=M(x (k) –x* )
e(k+1)=Me(k)
递推可得
,
k=0,1,2,…
e(k)=Mke(0) , k=0,1,2,… 可见,当k时, e(k)0 Mk O. 定理3.1 对任意初始向量x(0),迭代法收敛(M)<1. 证 若‖Mk‖0, 则k(M)=(Mk)‖Mk‖0, 所以(M)<1. 若(M)<1,则存在>0,使得(M)+<1.则 ‖Mk‖‖M‖k ((M)+)k 0.
k=0,1,2,…
k=0,1,2,…
b1 a11 b2 , g D 1b a 22 bn a nn
G-S迭代法迭代公式可写成 x(k+1)=D-1Lx(k+1)+D-1Ux(k)+D-1b
Dx(k+1)=Lx(k+1)+Ux(k)+b (D-L)x(k+1)=Ux(k)+b
第3章 解线性方程组的迭代法
迭代法的基本思想是,把n元线性方程组 迭代法是从某一取定的初始向量x(0)出发,按照一个适
a11 x1 a12 x2 ... a1n xn b1 当的迭代公式 ,逐次计算出向量x(1), x(2),…,使得向量序 a x a x ... a x b 21 1 22 2 2n n 2 (3.1) 列{x(k)}收敛于方程组的精确解.迭代法是一类逐次近似的 ................................................ 方法.其优点是,算法简便,程序易于实现. an1 x1 an 2 x2 ... ann xn bn
x2(k) 0 0.5 1.20 1.055 0.9645 0.9953 1.005795 1.0001255
x3(k) 0 1.4 1.11 0.929 0.9906 1.01159 1.000251 0.9982364
‖x(k)-x*‖
1 0.5 0.2 0.071 0.0355 0.01159 0.005795 0.0017636
例1 用J法和G-S法求解线性方程组
10 x1 3 x 2 x 3 14 2 x1 10 x 2 3 x 3 5 x 3 x 10 x 14 1 2 3
方程组的精确解为x*=(1,1,1)T. 解 J迭代法计算公式为
( ( 3 1 x1( k 1) 10 x 2k ) 10 x3k ) 7 5 ( k 1) 1 ( k ) 3 ( k ) 1 x 2 5 x1 10 x3 2 x ( k 1) 1 x ( k ) 3 x ( k ) 7 10 1 10 2 5 3
可见 ,J迭代法的迭代矩阵为
0 a 21 B a 22 a n1 a nn a12 a11 0 an2 a nn a1n a11 a2n a 22 0
若记
bn T b1 b2 g( , , , ) ,则J迭代法可写成 a11 a 22 a nn
可见,迭代序列逐次收敛于方程组的解, 而切迭代7次得到 精确到小数点后两位的近似解. G-S迭代法的计算公式为:
( ( 3 1 x1( k 1) 10 x 2k ) 10 x3k ) 7 5 ( k 1) 1 ( k 1) 3 ( k ) 1 10 x3 2 x 2 5 x1 x ( k 1) 1 x ( k 1) 3 x ( k 1) 7 10 1 10 2 5 3