解线性方程组的迭代法

合集下载

第2章解线性代数方程组的迭代法

第2章解线性代数方程组的迭代法

第二章解线性代数方程组的迭代法2. 1 引言在许多实际问题中,常常需要求解这样的线性代数方程组,它的系数矩阵数很高,但非零元素很少,人们称其为大型稀疏线性代数方程组,对于这类方程组,如果它乂不具有带状性,那么,再用直接法求解就不太有效,因为用直接法进行消元或矩阵的三角分解时,没有考虑到系数矩阵的稀疏性,破坏了系数矩阵的形状,导致了计算量的增加和存储单元的浪费,于是,人们常用迭代法求解大型稀疏线性代数方程组。

迭代法只需要存储系数矩阵的非零元素,这样,占用内存在单元较少,能解高阶线性代数方程组。

山于迭代法是通过逐次迭代来逼近方程组的解,因此,收敛性和收敛速度是构造迭代法时要注意的问题。

那么,是否可以构造一种适用于一般情况的迭代法呢?回答是否定的,这是因为不同的系数矩阵具有不同的性态,一般地,每一种迭代法都具有一定的适用范围,在本章的学习中将会看到,有时,某种方法对一类方程组迭代收敛,而对另一类方程组进行迭代时就会发散。

因此,我们应该学会针对具有不同性质的线性代数方程组,构造合适的迭代方法。

本章主要介绍一些基本的迭代法,并在一定的范围内讨论其中儿种方法的收敛法。

2. 2 基本迭代法考虑线性方程组如坷+如勺+…+气兀”二勺a2t x i+a22x2 + - + a2…x n =b2■•••••••••••(2. 1)采用矩阵和向量记号,我们可以把(2.1)式写成Ax = h(2.2)其中,为非奇异矩阵,设下面我们介绍雅可比(Jacobi)迭代,高斯-塞德尔(Gauss-Seidel)迭代与S0R迭代以及SS0R迭代的基本思想和算法。

为了方便地给出矩阵表示式,我们引进下列矩阵分裂:4SD-U,(2.3)其中-a2\-a n\(1)雅可比迭代的基本思想从式(2.1)的第i个方程中解出X t=(/ = 1,2,•••,«)我们把迭代前面的值代入上式右边,山计算得到等式左边的值作为一次迭代的新值,然后再把这个新值代入右边,再从左边得到一个新值,如此反复,就得到了雅可比迭代公式。

第五章 解线性方程组的迭代解法

第五章 解线性方程组的迭代解法
i 1 n 1 xi = [bi ∑ aij x j ∑ aij x j ] , i = 1, 2,, n. (*) ) aii j =1 j = i +1
定义迭代法为: 定义迭代法为:
x ( k + 1) = G J x ( k ) + g
其中Jacobi迭代矩阵:GJ = D1 ( L + U ) 迭代矩阵: 其中 迭代矩阵
g = D 1b = (7.2, 8.3, 8.4)T 取 x ( 0 ) = (0, 0, 0)T , 代入迭代式,得x(1) = Bx ( 0 ) + g = (7.2, 8.3, 8.4)T x ( 2 ) = Bx (1) + g = (9.71,10.70,11.5)T x (9 ) = (10.9994,11.9994,12.9992) 精确解为 x = (11,12,13)T .

A = D L U
其中 D = diag (a11 ,, ann ) , L, U 分别为 A 的 严格下、上三角形部分元素构成的三角阵 严格下、上三角形部分元素构成的三角阵. Gauss-Seidel方法的矩阵形式为 方法的矩阵形式为
x ( k +1) = D1 ( Lx ( k +1) + Ux ( k ) + b)
或者
x ( k +1) = ( D L)1Ux ( k ) + ( D L)1 b
( 这说明Gauss-Seidel方法的迭代矩阵为 D L)1U 方法的迭代矩阵为 这说明
从而有
定理5.2 定理5.2 Gauss-Seidel方法收敛的充分必要条件为 方法收敛的充分必要条件为
ρ (GG ) < 1 或

计算方法3_线性方程组迭代解法

计算方法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 。

第二章解线性方程组迭代法

第二章解线性方程组迭代法
是否是原来的方程的解?
A=(D-L)-U
上海理工大学 理学院
University of Shanghai for Science and Technology
College of Science
• 收敛条件
迭代格式X=GX+g 对任意的初值X0和向量g,收敛的充要条
件是G的谱半径 (G)<1。
下面我们看一些充分条件:
0 a12
0
U
0
a1n
0 an1n
0
上海理工大学 理学院
University of Shanghai for Science and Technology
College of Science
易知,Jacobi迭代有
(D L U )x b Dx (L U )x b
x D1(L U )x D1b
定理:若线性方程组AX=b的系数矩阵A,
①若A为行或列强对角占优阵,则Jacobi和Gauss-Seidel迭代都收敛;
② 若A对称正定阵,则Gauss-Seidel迭代收敛;
③ 若A对称正定阵,且2D A也为对称正定阵,则Jacobi迭代收敛。
上海理工大学 理学院
University of Shanghai for Science and Technology
College of Science
将方程组变形,化为:
11x1 x2 2x1 12x2
6x3 x3
4 1
x1 3x2 15x3 2
上海理工大学 理学院
University of Shanghai for Science and Technology
College of Science

解线性方程组的迭代法

解线性方程组的迭代法
定义2 (向量范数) 如果在 R n 中定义了实值函数,记为 || || , 对所有 x, y R n 以及 R ,若满足
|| x || 0 (非负性) ; (1)|| x || 0 ,当且仅当 x 0 时,
(2) || x ||| | || x || (齐次性); (3) || x y |||| x || || y || (三角不等式). 则称 || x || 为向量 x 的范数 (或模).
4.1.2 向量范数和向量序列的极限
常用的向量范数:设 x R n (1)向量的 - 范数 (最大范数): || x || max | xi |
1 i n
|| x ||1 (2)向量的 1 - 范数 (绝对值范数):
(3)向量的 2 - 范数:|| x ||2 ( x , x ) (
|| A ||2 3+2 2 , || A ||F 6
4.1.3 矩阵范数和矩阵序列的极限
(k ) ) R nn ,如果存 定义5 (矩阵序列的极限) 设有矩阵序列 Ak (aij
在 A (aij ) R nn,使
k (k ) lim aij aij ,
i, j 1, 2,
(4) || AB |||| A || || B || ; 则称 || A || 为矩阵 A 的范数.
4.1.3 矩阵范数和矩阵序列的极限
相容性: 设有矩阵范数 || ||s 和向量范数 || ||t ,如果对任何向量 x R n 及矩阵 A R nn ,有/2 || A ||F ( aij ) i , j 1 n
它是与向量 2-范数相容的矩阵范数,但不是从属范数.
4.1.3 矩阵范数和矩阵序列的极限

解线性方程组的迭代法

解线性方程组的迭代法

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)

解线性方程组 的迭代法

第六章 解线性方程组的迭代法.ppt

第六章 解线性方程组的迭代法.ppt

称 J 为解 Ax b的雅可比迭代法的迭代阵.
(2.5)
15
研究雅可比迭代法(2.5)的分量计算公式.
记 x(k ) ( x1(k ) ,, xi(k ) ,, xn(k ) )T ,
由雅可比迭代公式(2.5), 有
Dx(k1) (L U )x(k ) b,

i1
n
aii
9
定义1 (1) 对于给定的方程组 x Bx f,用公式(1.6) 逐步代入求近似解的方法称为迭代法(或称为一阶定常迭代 法,这里 B与 k无关).
(2) 如果 lim x(k) 存在(记为 x * ),称此迭代法收敛, k
显然 x *就是方程组的解,否则称此迭代法发散. 研究 {x(k )}的收敛性. 引进误差向量
22
例2 用高斯-塞德尔迭代法解线性方程组(1.2).

8x1 3x2 2x3 4x1 11x2 x3

20, 33,
6x1 3x2 12x3 36.
(1.2)
取 x(0) (0, 0, 0)T, 按高斯-塞德尔迭代公式

x ( k 1) 1

记为 Ax b , 其中
(1.2)
8 A4
6
3 2 11 1, 3 12
x1 x x2 ,
x3
20 b 33 .
36
方程组的精确解是 x* (3, 2, 1)T . 现将(1.2)改写为
4

12
于是,求解 Ax b转化为求解 Mx Nx b,即求解
Ax b 求解x M 1Nx M 1b.
可构造一阶定常迭代法

线性方程组迭代法

线性方程组迭代法

线性方程组迭代法
线性方程组迭代法,又称坐标下降法,是一种用于解线性方程组的迭代求解方法,常用于线性规划以及单纯形法等技术。

早在上世纪50年代,此方法就在解决
线性规划问题中得到了广泛应用,到目前为止,这种技术仍然广泛使用。

线性方程组迭代法是一种基于不断迭代调整变量,使目标函数达到最优结果的
迭代求解法。

其基本步骤是:
(1) 初始化目标函数变量:首先,初始化线性方程组的目标函数的变量;
(2) 评估梯度:选择合适的算法计算目标函数的梯度;
(3) 根据该梯度更新变量:更新目标函数变量的值,使得在此次更新之后的值
更加有利于满足线性方程组的要求;
(4) 重复上述步骤,直到目标函数足够接近最优值为止;
线性方程组迭代法能够快速地求解出线性规划问题的最优解,因此,它在计算
机上经常被用来优化问题,进而提高系统运行效率。

随着网络技术的发展,线性方程组迭代法在互联网领域得到了广泛应用,这在大大缩短了计算机程序的运行时间,提高了互联网的效率。

同时,线性方程组迭代法也有助于提高系统的性能,改善用户的体验,提升企业的品牌形象。

数值分析实验报告--实验6--解线性方程组的迭代法

数值分析实验报告--实验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。

第二章解线性方程组的迭代法

第二章解线性方程组的迭代法
上海理工大学 理学院
University of Shanghai for Science and Technology
College of Science
解线性方程组的迭代法
直接法得到的解是理论上准确的,但是它们的计算量都是
n3数量级,存储量为n2量级,这在n比较小的时候还比较合适 (n<400),但是在很多实际问题中,我们要求解的方程组n很
是否是原来的方程的解?
A=(D-L)-U
上海理工大学 理学院
University of Shanghai for Science and Technology
College of Science
• 收敛条件
迭代格式X=GX+g 对任意的初值X0和向量g,收敛的充要条
件是G的谱半径 (G)<1。
下面我们看一些充分条件:
College of Science
迭代法的收敛性
定理:迭代法X(m+1)=GX(m)+g 收敛的充分必要条 件是迭代矩阵G为收敛矩阵,即G的谱半径
(G)<1。
定理: 迭代法X(m+1)=GX(m)+g 的迭代矩阵G的某种范数 ||G||=q<1,那么: 1)对任意初值X(0)及g右端向量,迭代格式收敛于X*; 2) ||X(m) X*||qm ||X(1) –X(0)||/(1-q); 3) ||X(m) X*||q ||X(m) – X(m-1)||/( 1-q).
(
k
1)
1 a11
(a12
x2
(k
)
1 a22
(a21x1(k )
a1n xn(k ) a23x3(k )
b1) a1n xn(k )

解线性方程组的迭代法

解线性方程组的迭代法

解线性方程组的迭代法设线性方程组为Ax b =其中,A 为n 阶非奇异矩阵,n x R ∈,n b R ∈,0b ≠。

当A 为低阶稠密矩阵,直接法是比较好的方法。

当A 为高阶稀疏矩阵,例如偏微分方程数值解所产生的方阵,这时采用迭代法比较合适了。

不过,这里所谓低阶与高阶并没有明显的分界,在高性能计算机面前,一万阶也不算高。

所谓稀疏矩阵,笼统地说,就是零元素占绝大多数的矩阵,反之就是稠密矩阵了。

1.迭代法的一般理论将Ax b =等价地改写为方程组x Gx f =+其实,就是将原方程组等价变形为不动点方程的格式,以便于进行不动点迭代。

任取初始向量(0)x ,作 (1)(0)x Gx f =+, (2)(1)x Gx f =+, ……(1)()k k x Gx f +=+,0,1,2,k =⋅⋅⋅G 称为迭代矩阵。

如果向量序列{}()k x 是收敛的,假设()*lim k k x x →∞=,或者()*lim 0k k x x →∞−=,则**x Gx f =+也就是说*x 是x Gx f =+的解,即Ax b =的解,而它与初始向量(0)x 的选取无关。

如何保证该向量序列收敛呢? 设误差()()*k k x x ε=−,则(1)(1)*()*()*()()()k k k k k x x Gx f Gx f G x x G εε++=−=+−+=−=,0,1,2,k =⋅⋅⋅因此,()(1)2(2)3(3)(0)k k k k k G G G G εεεεε−−−====⋅⋅⋅=,0,1,2,k =⋅⋅⋅为了保证对任意初始向量(0)x ,{}()k ε收敛,必须且只须{}k G 收敛。

那么,如何保证{}k G 收敛,{}k G 若收敛,会收敛到哪里?这就需要如下一个引理。

引理1.设n n B C ×∈,则{}k B 收敛当且仅当()1B ρ<。

如果()1B ρ<,则lim 0k k B →∞=。

数值计算方法第三章 线性方程组迭代法

数值计算方法第三章 线性方程组迭代法


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

第6章 解线性方程组的迭代法

第6章 解线性方程组的迭代法
k k
有 lim || Ak x || 0.所以就有定理的右边成 立。
k
反之,若定理的右边成 立,取x为第j个坐标向量e j, 则 lim Ak e j 0, 表示Ak的第j列元素极限均为零,当
k
j 1,2, , n时就证明了lim Ak 0,证毕。
k
给出的迭代法
( ( x1( k 1) (3x2k ) 2 x3k ) 20) / 8 ( k 1) (k ) (k ) x2 (4 x1 x3 33) / 11 的收敛性。 ( ( x3k 1) (6 x1( k ) 3x2k ) 36) / 12
第6章
解线性代数方程组的迭代法
§1 引言
考虑线性方程组
a11x1 a12 x2 a1n xn b1 a x a x a x b 21 1 22 2 2n n 2 an1x1 an2 x2 ann xn bn
(1.4)

x(k+1)=B0x(k)+f, (k=0,1,2,„)
x (10 ) (3.0000321.999838 0.9998813T , , , ) ε
(10 )
0.000187其中ε ,
(k )
(10 )
x
(10 )
x *.
从此例可以看出,由迭 代法产生的向量 序列x 逐步逼近此方程的精确 解。
3 8
0
3 12
2 8 1 11 0
20 x1 8 x 33 . 2 11 x3 36 12
任取初值,如x(0)=(0,0,0)T,代入(1.3)得到x(1)= (2.5,3,3)T. 反复迭代

经济学解线性方程组的迭代法

经济学解线性方程组的迭代法

a22
0 a21
0
ann
an1,1
an1
an1,2 an 2
0
an,n1
0
0 a12
0
a1,n1 a2,n1
0
a1n
a2n
DLU.
an1,n
0
(2.4)
13
6.2.1 雅可比迭代法
由 aii 0(i ,1,选2,取 ,为n) 的对角M元素A部分, 即选取 M (对D角阵), A ,D N 由(2.3)式得到 解 Ax 的b雅可比(Jacobi)
,
再将 x(分1) 量代入(1.3)式右边得到 ,x反(2)复利用这个计 算程序,得到一向量序列和一般的计算公式(迭代公式)
x1(0)
x(0) x2(0) ,
x3(0)
x1(1)
x1(k )
x(1) x2(1) , , x(k ) x2(k ) ,
x3(1)
x3( k
迭代法产生的向量序列 x(k不) 一定都能逐步逼近方程组
的解 x.*
如对方程组
x1 2x2 x2 3x1
5, 5.
7
构造迭代法
x ( k 1) 1
x ( k 1) 2
2 x2(k 3x1(k
) )
5, 5.
则对任何的初始向量,得到的序列都不收敛.
对于给定方程组 x ,Bx f 设有唯一解 x*, 则
由雅可比迭代公式(2.5), 有
Dx(k1) (L U )x(k ) b,

i1
n
aii xi(k1)
)
5
x ( k 1) 1
(3x2(k )
2x3(k )
20)/8,

数值计算_第4章 解线性方程组的迭代法

数值计算_第4章  解线性方程组的迭代法
取初始值:
如果用高斯-赛德尔迭代法 迭代72次得:
用SOR迭代法 ,只须迭代25次即得:
逐次超松弛迭代算法
下列算法假定迭代矩阵收敛,否则要在WHILE循环中增加判断条件。
1.定义和输入系数矩阵 与常数项向量 的元素,输入松弛因子 的值。
2.FOR i:=1,2,…,n
//假定 ,形成常数项向量
FOR
当方程组的系数矩阵 具有某些性质时,可直接判定由它生成的雅可比迭代矩阵是收敛的。
定理4.3若方程组 的系数矩阵 ,满足下列条件之一,则其雅可比迭代法是收敛的。
(1) 为行对角占优阵,即
(2) 为列对角占优阵,即
证明:(1)雅可比迭代矩阵 其中
(2) 为列对角优阵,故 为行对角占优阵,由系数矩阵 构造的迭代矩阵 为行对角占优阵,则有
通常,把 的迭代称为亚松弛迭代,把 的迭代称为高斯-塞德尔迭代,而把 的迭代称为松弛迭代。
4.4
在线性代数中逆矩阵是按其伴随矩阵定义的,若 则方阵 可逆,且 ,其中 为 的伴随矩阵。要计算 个 阶的列式才能得到一个伴随矩阵,在数值计算中因其计算工作量大而不被采用。通常对 做行的初等的效换,在将 化成 的过程中得到 。在数值计算中,这仍然是一种行之有效的方法。
事实上,在计算 前,已经得到 的值,不妨将已算出的分量直接代入迭代式中,及时使用最新计算出的分量值。因此 的计算公式可改为:
即用向量 计算出 的值,用向量 计算出 的值 ,用向量 计算出 的值,这种迭代格式称为高斯—塞德尔迭代。
对于方程组AX=y,如果由它构造高斯-塞德尔迭代和雅可比迭代都收敛,那么,多数情况下高斯—塞德尔迭代比雅可比迭代的收敛效果要好,但是情况并非总是如此。

得到
而 ,
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

解线性方程组的迭代法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 =将求解结果与给定解比较,而后求出上述四种方法的误差,得出哪种方法比较好。

三、求解模型的数学原理。

1、Gauss 消去法求解原理对于Ax b =(A 非奇异)求解时,可以先将A 分解成一个下三角矩阵L 和一个上三角矩阵U 的乘积,即A LU =,就可以通过, ,Ly b Ux y == (1.1) 求解出x 的值。

接下来就具体讲讲如何将A 分解成L 和U ,也就是Gauss 消去法。

欲把一个给定的矩阵A 分解为一个下三角阵L 与一个上三角阵U 的乘积,最自然的做法便是通过一系列的初等变换,逐步将A 约化为一个上三角阵,而又能保证这些变换的乘积是一个下三角阵。

这可归结为:对于一个任意给定的向量,nx R ∈找一个尽可能简单的下三角阵,使x 经这一矩阵作用之后的第1k +至第n 个分量均为零。

能够完成这一任务的最简单的下三角阵便是如下形式的初等下三角阵: ,Tk k k L I l e =-其中 ()1,0,,0,,,,Tk k k nk l l l +=即1,,1111k k k n kL l l +⎡⎤⎢⎥⎢⎥⎢⎥=⎢⎥-⎢⎥⎢⎥⎢⎥-⎢⎥⎣⎦这种类型的初等下三角阵称作Gauss 变换,而称向量k l 为Gauss 向量。

对于一个给定的向量()1,,,Tn n x x x R =∈我们有()111,,,,,,.Tk k k k k k n k nk L x x x x x l x x l ++=-- 由此立即可知,只要取 , 1,,,iik kx l i k n x ==+便有()1,,,0,,0.Tk k L x x x =当然,这里我们要求0.k x ≠而后经过多次变换可以得到11,n n L L L A U -=(1.2)从而求出上三角阵U ,而后通过()11, n n LA U L L L L -==求得下三角阵1.L UA -=(1.3)将(1.2)和(1.3)带入到(1.1)式中求出x 的值即可。

2、J 迭代法求解原理考虑非奇异线性代数方程组 .Ax b =令 ,A D L U =--(1.4)其中()1122, ,,,,ij nn A a D diag a a a ⎡⎤==⎣⎦21313212,1000,0n n n n a a a L a a a -⎡⎤⎢⎥-⎢⎥⎢⎥--=⎢⎥⎢⎥⎢⎥---⎣⎦121312321,00,00n n n n a a a a a U a ----⎡⎤⎢⎥--⎢⎥⎢⎥=⎢⎥-⎢⎥⎢⎥⎣⎦那么(1.4)式和Ax b =合并后可以写成,x Bx g =+其中()11, .B D L U g D b --=+=(1.5)若给定初始向量()()()()000012,,,,Tnx x x x =并代入(1.4)式右边,又可得到一个向量2x ;一次类推,有1, 1,2,.k k x Bx g k -=+=(1.6)这就是所谓的Jacobi 迭代法,其中B 叫做Jacobi 迭代法的迭代矩阵,g 叫做Jacobi 迭代法的常数项。

3、GS 迭代法求解原理注意到Jacobi 迭代法中各分量的计算顺序是没有关系的,先算那个分量都一样。

现在,假设不按Jacobi 迭代格式,而是在计算k x 的第一个分量用1k x -的各个分量计算,但当计算k x 的第二个分量()2k x 时,因()1k x 已经算出,用它代替()11k x -,其他分量仍用()1k ix -。

类似地,计算()k l x 时,因()()11,,k kl x x -都已算出,用它们代替()()1111,,,k k l x x ---其他分量仍用1k x -的分量,于是有111, 1,2,.k k k x D Lx D Ux g k ---=++=(1.7)我们称这种迭代格式为Gauss-Seidel 迭代法,简称为G-S 迭代法。

它的一个明显的好处是在编写程序是存储量减少了。

如果()1D L --存在,G-S 迭代法可以改写成()()111.k k x D L Ux D L b ---=-+-(1.8)我们把()11L D L U -=-叫做G-S 迭代法的迭代矩阵,而把()1D L b --叫做G-S 迭代法的常数项。

4、SOR 迭代法求解原理我们知道,G-S 迭代法的迭代格式为11111.k k k x D Lx D Ux D b ---++=++现在令1,k k x x x +∆=-则有1.k k x x x +=+∆(1.9)这就是说,对G-S 迭代法来说,1k x +可以看作在向量k x 上加上修正项x ∆而得到的。

若修正项的前面加上一个参数ω,便得到松弛迭代法的迭代格式()()111111,k k k k k x x xx D Lx D Ux D b ωω+---+=+∆=-+++ (1.10)用分量形式表示即为()()()()()111111,i n k k k k i i ij j ij j i j j i x x b x b x g ωω-++==+⎛⎫=-+++ ⎪⎝⎭∑∑(1.11) 其中ω叫做松弛因子。

当1ω>时,相应的迭代法叫做超松弛迭代法;当1ω<时,叫做低松弛迭代法;当1ω=时,就是G-S 迭代法。

我们把超松弛迭代法简称为SOR 迭代法。

因为()11I D L ω---存在,所以(1.10)式可以改写为()11,k k x L x D L b ωωω-+=+- 其中()()11L D L D U ωωωω-=--+⎡⎤⎣⎦叫做松弛迭代法矩阵。

而SOR 迭代法收敛的充要条件是() 1.L ωρ<(1.12)由(1.12)式知,SOR 迭代法的谱半径依赖于ω,当然会问:能否适当选取ω使收敛速度最快?这就是选择最佳松弛因子的问题。

经过相关计算可知,随着ω从0增加,()L ωρ减少,直至() opt B ωω==为Jacobi 迭代矩阵(1.13)时,()L ωρ达到极小()opt L ωρ=(1.14)ω再增加时,()L ωρ开始增加。

因此,opt ω称为最佳松弛因子。

5、Jacobi 和G-S 两种迭代法收敛的充要条件Jacobi 迭代法和G-S 迭代法两种迭代法有一个共同的特点,那就是新的近似解k x 是已知近似解-1k x 的线性函数,并且只与-1k x 有关,即它们都可以表示成如下形式:-1.k k x Mx g =+(1.15)事实上,对Jacobi 迭代法,有()11, .M D L U g D b --=+= 对G-S 迭代法,有()()11, .M D L U g D L b --=-=-故要求出上述两个迭代法中k x 有确定的解,且与-1k x 相对误差较小,就必须说明k x 用上述两种迭代法求解时收敛。

下面就给出关于上述两种迭代法收敛的证明原理解方程组的单步线性定常迭代法(1.15)收敛的充分必要条件是其迭代矩阵M 的谱半径小于1,即() 1.M ρ<(1.16)从上述的(1.16)可知,迭代序列收敛取决于迭代矩阵的谱半径,而与初始向量的选取和常数项无关。

四、计算过程。

方程组Hx b =的求解,其中系数矩阵H 为Hilbert 矩阵,,,1(), , ,1,2,,1i j n n i j H h h i j n i j ⨯===+-(一)求解Hx b =,我们暂时选择系数矩阵H 的维数6n =,所以111111234567111111345678,111111456789111111567891011111167891011H ⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦令x 的各分量都为1,,即()111111,Tx =根据Hx b =得2.4501.5931.218.0.9960.8460.737b Hx ⎡⎤⎢⎥⎢⎥⎢⎥==⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦而后我们接下来就用Gauss 消去法、J 迭代法、GS 迭代法和SOR 迭代法四种迭代法求解11111123456111111 2.450234567 1.593111111 1.2183456781111110.9964567890.8461111110.737567891011111167891011x ⎡⎤⎢⎥⎢⎥⎢⎥⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦(1.17)的解x 。

1、Gauss 消去法求解因为111111234567111111345678111111456789111111567891011111167891011H ⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦所以由(1.2)式知H 分解的上三角矩阵333344455610.50.3330.250.20.1670.0830.0830.0750.0670.065.556108.333109.524109.92110,3.571107.143109.921102.26810 5.669101.43210U ----------⎡⎤⎢⎥⎢⎥⎢⎥⨯⨯⨯⨯=⎢⎥⨯⨯⨯⎢⎥⎢⎥⨯⨯⎢⎥⨯⎣⎦由(1.3)式求出H 的下三角矩阵110.510.33311,0.250.9 1.510.20.8 1.714210.1670.714 1.786 2.778 2.51L A U -⎡⎤⎢⎥⎢⎥⎢⎥==⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦再通过(1.1)求出x 的值13562.450.3680.033,2.063107.937101.43210y L b ----⎡⎤⎢⎥⎢⎥⎢⎥=⋅=⎢⎥⨯⎢⎥⎢⎥⨯⎢⎥⨯⎣⎦11.0001.0001.000.1.0001.0001.000x U y -⎡⎤⎢⎥⎢⎥⎢⎥=⋅=⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦所以()1.000 1.000 1.000 1.000 1.000 1.000.Tx =2、Jacobi 迭代法求解将系数矩阵H 用(1.4)方法分解成111111,,,,,,357911D diag ⎛⎫= ⎪⎝⎭010211034,1110456111105678111110678910L ⎡⎤⎢⎥⎢⎥-⎢⎥⎢⎥--⎢⎥⎢⎥=⎢⎥---⎢⎥⎢⎥⎢⎥----⎢⎥⎢⎥⎢⎥-----⎢⎥⎣⎦111110234561111045671110.6781108910100U ⎡⎤-----⎢⎥⎢⎥⎢⎥----⎢⎥⎢⎥⎢⎥---=⎢⎥⎢⎥⎢⎥--⎢⎥⎢⎥-⎢⎥⎢⎥⎢⎥⎣⎦所以由(1.5)式知()1111110234563331302452755555034678.7777704568999999056781011111111110678910B D L U -⎡⎤-----⎢⎥⎢⎥⎢⎥-----⎢⎥⎢⎥⎢⎥-----⎢⎥=+=⎢⎥⎢⎥-----⎢⎥⎢⎥-----⎢⎥⎢⎥⎢⎥-----⎢⎥⎣⎦(1.18)在用Jacobi 迭代法求解前,我们先计算迭代矩阵B 的谱半径,B 的特征值为4.3090.380.932,0.99711λ-⎡⎤⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦所以()()1 4.309 1 1 6.i B max i ρλ==>∈(1.19)由(1.16)知迭代矩阵B 发散,所以无法用Jacobi 迭代法解x 的值。

相关文档
最新文档