解线性方程组的几种迭代算法

合集下载

第四章-解AX=b的迭代法

第四章-解AX=b的迭代法

•迭代格式的收敛性
2 k 引理4.1 (线性代数定理) 设矩阵序列 IM , , M , , M ,
k l i m M 0 ( M ) 1 . k

(证明见关治和陈景良编《数值计算方法》P410-412) 定理4.1 设迭代格式为
( k 1 ) ( k ) xM x g , k 0 , 1 , 2 , ( 4 . 3 )
充分性()设ρ(M)<1,证{x(k)}收敛。
如果ρ(M)<1 ,则I-M为非奇异矩阵。事实上,因
为ρ(M)<1,λi<1,因此λ=1不是M的特征值,即
| 1 IM || IM |0 .
所以方程组 (I-M)x = f 有惟一解x*,满足(I-M)x* = f ,即 x*=Mx* + f 。于是
( k ) ( k 1 ) 2 ( k 2 ) x x * M ( x x * ) M ( x x * ) k ( 0 ) k M ( x x * ) M . 0
由引理4.1知,
k () k I f ( M ) < 1 ,t h e nl i m M 0 , l i m ( x x * ) 0 , i . e . k k () k l i m x x * . k
写成矩阵形式
x1 0 x b 2 21 31 x3 b x b n n1
或简记为
b 12 b 13 0 b23 b 0 32 bn2 bn3
b 1n x 1 g 1 b2n x2 g2 b 3n x 3 g3 g x 0 n n
( k ) ( k ) ( k 1 ) ( k ) x x * x x q x x *

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

第五章 解线性方程组的迭代解法
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 或

线性方程组的迭代式求解方法

线性方程组的迭代式求解方法

线性方程组的迭代式求解方法迭代法解方程的基本原理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 。

线性方程组的四种数值解法

线性方程组的四种数值解法

线性方程组的四种数值解法(电子科技大学物理电子学院,四川 成都 610054)摘要:本文介绍了四种求解线性方程组的数值解法: 雅克比迭代法、高斯赛德尔迭代法、高斯消去法和改进的平方根法的基本原理和算法流程,通过求解具体方程,对四种求解方法进行了对比。

对于雅克比迭代法和高斯赛德尔迭代法,研究了两种算法对求解同一方程组的迭代效率差异,结果表明高斯赛德尔迭代法达到同样精度所需迭代次数较少。

对于高斯消去法,通过选择列主元的方法提高算法的准确度,计算结果表明高斯消去法计算精确,且运算复杂度也不是很高。

对于改进的平方根法,其运算复杂度低,但对于给定的方程组有着严苛的要求。

关键词:雅克比迭代法;高斯赛德尔迭代法;高斯消去法;改进的平方根法;线性方程组引言线性方程组的求解在日常生活和科研中有着极其重要的应用,但在实际运算中,当矩阵的维数较高时,用初等方法求解的计算复杂度随维数的增长非常快,因此,用数值方法求解线性方程组的重要性便显现出来。

经典的求解线性方程组的方法一般分为两类:直接法和迭代法。

前者例如高斯消去法,改进的平方根法等,后者的例子包括雅克比迭代法,高斯赛德尔迭代法等。

这些方法的计算复杂度在可以接受的范围内,因此被广泛采用。

一般来说,直接法对于阶数比较低的方程组比较有效;而后者对于比较大的方程组更有效。

在实际计算中,几十万甚至几百万个未知数的方程组并不少见。

在这些情况下,迭代法有无可比拟的优势。

另外,使用迭代法可以根据不同的精度要求选择终止时间,因此比较灵活。

在问题特别大的时候,计算机内存可能无法容纳被操作的矩阵,这给直接法带来很大的挑战。

而对于迭代法,则可以将矩阵的某一部分读入内存进行操作,然后再操作另外部分。

本文使用上述四种算法求解对应的方程组,验证各种算法的精确度和计算速度。

1 算法介绍1.1 雅克比迭代法 1.1.1 算法理论设线性方程组(1)b Ax的系数矩阵A 可逆且主对角元素 均不为零,令并将A 分解成(2)从而(1)可写成令其中. (3)以B 1为迭代矩阵的迭代法(公式)(4)称为雅克比(Jacobi)迭代法(公式),用向量的分量来表示,(4)为(5)其中为初始向量.1.1.2 算法描述 1给定迭代初始向量X 0以及误差要求delta 2根据雅克比迭代公式计算出下一组向量3判断X 是否满足误差要求,即||X k+1 – X k || < delta4若误差满足要求,则停止迭代返回结果;若否,则返回第二步进行下一轮迭代1.2 高斯赛德尔迭代法nna ,...,a ,a 2211()nna ,...,a ,a diag D 2211=()D D A A +-=()b x A D Dx +-=11f x B x +=b D f ,A D I B 1111--=-=()()111f x B x k k +=+⎩⎨⎧[],...,,k ,n ,...,i x a ba xnij j )k (j j i iii)k (i21021111==∑-=≠=+()()()()()Tn x ,...x ,x x 002010=1.2.1 算法理论由雅克比迭代公式可知,在迭代的每一步计算过程中是用的全部分量来计算的所有分量,显然在计算第i 个分量时,已经计算出的最新分量没有被利用,从直观上看,最新计算出的分量可能比旧的分量要好些.因此,对这些最新计算出来的第次近似的分量加以利用,就得到所谓解方程组的高斯—塞德尔(Gauss-Seidel )迭代法.把矩阵A 分解成(6)其中,分别为的主对角元除外的下三角和上三角部分,于是,方程组(1)便可以写成即其中(7)以为迭代矩阵构成的迭代法(公式)(8)称为高斯—塞德尔迭代法(公式),用变量表示的形式为(9)1.2.2 算法描述 1给定迭代初始向量X 0以及误差要求delta2根据高斯赛德尔迭代公式计算出下一组向量()k x ()1+k x ()1+k ix ()()1111+-+k i k x ,...,x 1+k()1+k x()1+k jx U L D A --=()nna ,...,a ,a diag D 2211=U ,L --A ()b Ux x L D +=-22f x B x +=()()b L D f ,U L D B 1212---=-=2B ()()221f x B x k k +=+⎩⎨⎧[],...,,k ,n ,,i x a x a b a xi j n i j )k (j ij )k (j ij i ii)k (i21021111111==∑∑--=-=+=++3判断X是否满足误差要求,即||X k+1– X k|| < delta4若误差满足要求,则停止迭代返回结果;若否,则返回第二步进行下一轮迭代1.3 高斯消去法1.3.1 算法理论下面三种变换称为初等行变换:1.对调两行;2.以数k≠0乘某一行中的所有元素;3.把某一行所有元素的k倍加到另一行对应的元素上去。

数学实验“线性方程组的j迭代,gs迭代,sor迭代解法”实验报告(内含matlab程序代码)【最新精

数学实验“线性方程组的j迭代,gs迭代,sor迭代解法”实验报告(内含matlab程序代码)【最新精

西京学院数学软件实验任务书实验四实验报告一、实验名称:线性方程组的J-迭代,GS-迭代,SOR-迭代。

二、实验目的:熟悉线性方程组的J-迭代,GS-迭代,SOR-迭代,SSOR-迭代方法,编程实现雅可比方法和高斯-赛德尔方法求解非线性方程组12123123521064182514x x x x x x x x +=⎧⎪++=⎨⎪++=-⎩的根,提高matlab 编程能力。

三、实验要求:已知线性方程矩阵,利用迭代思想编程求解线性方程组的解。

四、实验原理:1、雅可比迭代法(J-迭代法):线性方程组b X A =*,可以转变为:迭代公式(0)(1)()k 0,1,2,....k k J XXB X f +⎧⎪⎨=+=⎪⎩ 其中b M f U L M A M I B J 111),(---=+=-=,称J B 为求解b X A =*的雅可比迭代法的迭代矩阵。

以下给出雅可比迭代的分量计算公式,令),....,()()(2)(1)(k n k k k X X X X =,由雅可比迭代公式有b XU L MXk k ++=+)()1()(,既有i ni j k i iji j k iij k iij b X aXa X a +--=∑∑+=-=+1)(11)()1(,于是,解b X A =*的雅可比迭代法的计算公式为⎪⎩⎪⎨⎧--==∑∑-=+=+)(1),....,(111)()()1()0()0(2)0(1)0(i j n i j k j ij k j ij i ii k iTn X a X a b a X X X X X 2、 高斯-赛德尔迭代法(GS-迭代法):GS-迭代法可以看作是雅可比迭代法的一种改进,给出了迭代公式:⎪⎩⎪⎨⎧--==∑∑-=+=+++)(1),....,(111)1()1()1()0()0(2)0(1)0(i j n i j k j ij k j ij i ii k iTn X a X a b a X X X X X 其余部分与雅克比迭代类似。

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

第二章解线性方程组迭代法
是否是原来的方程的解?
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

解线性方程组的迭代法

解线性方程组的迭代法

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

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

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

(3 .4 )
, k 1, 2 , 3 ,
式(3.4)称为Gauss-Seidel迭代法,简称为G-S迭代法.
G-S迭代法也可记为
xi
( k 1)

1 a ii
( b i a ij x
j 1
i 1
( k 1)
j
a ij x
j i 1
n
(k )
j
)
, i 1, 2 , n , k 0 ,1, 2 ,
则有
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 其中
1 B D (L U ) 0 a 21 a 22 a n1 a nn a 12 a 11 0 an2 a nn a1n a 11 a2n a 22 0
可见 ,J迭代法的迭代矩阵为
B 0 a 21 a 22 a n1 a nn
bn a nn )
T

a 12 a 11 0 a n2 a nn



a 1n a 11 a 2n a 22 0
若记
从而得迭代公式
a 13 ( k ) a 1n ( k ) a 12 ( k ) b1 ( k 1) x x2 x3 xn 1 a 11 a 11 a 11 a 11 a 23 ( k ) a 2n (k ) a 21 ( k ) b2 ( k 1) x1 x3 xn x 2 a 22 a 22 a 22 a 22 a n1 ( k ) a n2 (k ) a nn 1 ( k ) bn ( k 1) x1 x2 x n 1 x n a nn a nn a nn a nn

解线性方程组的迭代法

解线性方程组的迭代法
定义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 矩阵范数和矩阵序列的极限

数值方法线性方程组的迭代法

数值方法线性方程组的迭代法

迭代法的特点
若在求解过程中 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)

解线性方程组 的迭代法

线性方程组的迭代解法及收敛分析

线性方程组的迭代解法及收敛分析
2.8098
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
在实际生活中,存在着大量求解线性方程组的问题。这些方程组具有数据量大,系数矩阵稀疏,在一定精度保证下,只需要求解近似解等特点。线性方程组的迭代解法特别适合于这类方程组的求解,它具有程序设计简单,需要计算机的贮存单元少等特点,但也有收敛性与收敛速度问题。因此,研究线性方程组的迭代解法及收敛分析对于解决实际问题具有非常重要的作用。

线性方程组求解的迭代算法

线性方程组求解的迭代算法

线性方程组求解的迭代算法线性方程组是数学中常见的问题之一,求解线性方程组是很多科学和工程领域中必需的基本任务。

而迭代算法是一种常见的求解线性方程组的方法之一,通过不断逼近线性方程组的解来达到求解的目的。

本文将介绍一些常见的线性方程组迭代算法及其原理。

一、雅可比迭代法雅可比迭代法是最早被提出的线性方程组迭代算法之一。

其思想是通过不断迭代,在每一步都利用先前求得的近似解来逼近方程组的解。

具体算法如下:假设给定的线性方程组为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。

高斯-赛德尔迭代法相比于雅可比迭代法,在每一次迭代中都会利用到之前计算得到的近似解向量的信息,因此收敛速度更快。

三、超松弛迭代法超松弛迭代法是对雅可比迭代法和高斯-赛德尔迭代法的进一步改进。

通过引入松弛因子ω,可以加速迭代的收敛速度。

数值分析-- 解线性方程组的迭代法

数值分析-- 解线性方程组的迭代法

算法1(高斯 塞德尔迭代法) 设Ax b, A Rnn非奇异,
且aii 0(i 1,2,, n),数组x(n)开始存放x(0),后存放x(k),
N0为最大迭代次数.
1. xi 0.0(i 1,2,,n),
2. 对于k 1,2,, N0,
i1
n
xi
( bi
j1aij x j
j i 1
aij
A D LU,
其中
a11 D
a22
0
,
L
a21 annan1 Nhomakorabea0
an,n1
0
,U
0
a12 0
a1n
.
an1,n
0
就有
Dx(k1) Lx(k) Ux(k) b
雅可比迭代法的矩阵表示形式为
x(k1) D1(L U ) x(k) D1b BJ x(k) f
a21x1
a22x2
a2n xn
b2
an1x1 an2x2 annxn bn
Ax=b.
(2.1)
进行矩阵分裂
A=M-N,
(2.2)
其中M为可选择的非奇异矩阵,且使Mx=d容易求解.
于是,
Ax=b⇔x=M-1Nx+M-1b.
可得一阶定常迭代法:
取初始向量x(0),
x
(
k
1)
Bx(k )
零元素多,适合用迭代法。
我们将介绍迭代法的一般理论及雅可比迭代法、高 斯—塞德尔迭代法、超松弛迭代法,研究它们的收 敛性。
例1 求解线性方程组
8 x1 4 x1
3x2 2 11x2
x3 x3
20, 33,
6x1 3x2 12x3 36.

线性方程组的迭代法

线性方程组的迭代法

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 )

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

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


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

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

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

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

解线性方程组的几种迭代算法内容摘要:本文首先总结了分裂法解线性方程组的一些迭代算法,在此基础上分别通过改变系数矩阵A的分裂形式和对SSOR算法的改进提出了两种新的算法,并证明了这两种算法的收敛性.与其它方法相比,通过改变系数矩阵A的分裂形式得到的新算法具有更好的收敛性,改进的SSOR算法有了更快的收敛速度.最后通过数值实例验证了这两种算法在有些情况下确实可以更有效的解决问题.关键词:线性方程组迭代法算法收敛速度Several kinds of solving linear equationsiterative algorithmAbstract:In this paper, we firstly summarize some Iterative algorithms of Anti-secession law solution of linear equations. Based on these, two new algorithms are put forward by changing the fission form of coefficient matrix A and improving the algorithm of SSOR, and the convergence of the two algorithms is demonstrated. Compared with other methods, the new algorithm acquired by changing the fission form of coefficient matrix A is possessed of a better convergence. And the improved SSOR algorithm has a faster convergence speed. Finally, some numerical examples verify that the two algorithms can solve problems more effectively in some cases.Key words:Linear equations Iteration method algorithm Convergence speed目录1.引言 (1)2.迭代法原理 (1)3.基本迭代法 (2)3.1 Jacobi迭代 (2)3.2 Gauss-Seidel迭代法 (3)3.3 SOR算法 (3)3.4 SSOR算法 (4)3.5 收敛性分析 (4)4.几种新的迭代算法 (5)4.1 基于矩阵分裂形式的新迭代算法 (5)4.2 加权-对称超松弛迭代法 (7)5.算法的不足与改进方法 (9)6.数值实例 (9)6.1渐进收敛速度 (9)6.2几种迭代方法的比较 (10)附录 ............................................... 错误!未定义书签。

参考文献 . (11)解线性方程组的几种迭代算法1.引言在工程技术、自然科学和社会科学中的许多问题最终都可归结为解线性方程组, 因此线性方程组的求解对于解决实际问题是极其重要的.线性方程组的解法有很多种,主要的方法有直接法和迭代法.迭代法就是用某种极限过程去逼近线性方程组精确解的方法,该方法具有对计算机的存贮单元需求少,程序计算简单,原始系数矩阵在计算过程中不变等优点,是求解大型稀疏矩阵方程组的重要方法.目前,人们已经得到了一些较为成熟的线性方程组的迭代解法,从某种意义上讲它们都可归结为分裂法.但在解决具体问题时我们仍面临着许多问题,如:怎样设计出满足要求的求解算法;如何分析、区别算法的好坏;可否改进现有的算法使其更有效;求解所给问题最好可能的算法会是什么,等等.针对这些问题,很多人都做过了大量的研究.文献[2]对迭代法的原理及一些常用的迭代算法进行了研究.文献[1],[3],[4],[5]给出了一些基本的迭代算法并证明了其收敛性.文献[6],[9],[10],[13],[16]研究了一些特殊方程组的迭代解法.文献[7],[8],[12],[14],[15]都是针对不同的问题对超松弛迭代算法进行了改进.文献[11]主要讨论了迭代法解线性方程组的MATLAB 实现.本人在求解线性方程组的问题时,通过对现有迭代算法的改进得到了两种新的算法.本文对这两种算法的收敛性进行了证明,并通过数值实例验证了其在解决某些问题时具有的优势.2.迭代法原理设线性代数方程组为AX b = (1)常常将系数矩阵A 分裂成两个矩阵M 和N 之差,即A M N =- (2)且用迭代(1)1()1k k X M NX M b +--=+ (3)来解线性方程组(1). 将(3)式表示为(1)(),0,1,k k X BX f k +=+= (4)其中,11,B M N f M b --==,称此迭代方法为分裂法,而将B 称为迭代格式(4)的迭代矩阵.然而迭代法需要解决的首要任务是迭代格式是否收敛的问题,任取初始向量()(0)(0)(0)(0)12,,,Tn X x x x =代入(4)中,计算可得迭代序列(1)(2)(1),,.k X X X +若迭代序列{}(1)k X +收敛,设{}()K X 的极限为*X ,对迭代式(4)两边取极限可得:()(1)()lim lim k k k k X BX f +→∞→∞=+即**X BX f =+,*X 是方程组(1)的解,此时称迭代法收敛,否则称迭代法发散.我们有如下的结果:定理2.1[1] 迭代格式(4)收敛的充分必要条件是迭代矩阵B 的谱半径()1B ρ<,而且()B ρ越小,收敛越快.定理2.2[1] 若p B 为矩阵B 的某范数,则总有()pBB ρ≥.对于矩阵A 的分裂应该说是有很多形式,但并不是所有分裂形式产生的迭代格式都有意义.于是我们有正规分裂的概念:定义2.1[2]对于实方阵A ,若矩阵M 和N 满足A M N =-,且10,0M N N -≥≥则称A M N =-是A 的一个正规分裂.那么正规分裂与其他分裂形式相比到底有什么优势呢?我们有如下定理:定理2.3[2]若A M N =-为A 的正规分裂,且10A -≥,则()()()1111A N M N A N ρρρ---=+从而()11M N ρ-<,此时相应的迭代格式(3)必收敛.如果针对矩阵A 给出两种正规分裂,如何来衡量它的好坏呢?定理2.4[2] 若矩阵有两个正规分裂,设1122,A M N A M N =-=-且10A -≥,211120,0,N N N N N ≥≥≠≠,则有()()11112101M N M N ρρ--≤≤<.3.基本迭代法下面给出常见的几种基本迭代格式.将()ij A a =分裂为A D L U =-- (5)其中,11121212221,10000,,00n n n n n nn a a a a a a D L U a a a -⎛⎫⎛⎫⎛⎫⎪⎪⎪ ⎪⎪⎪==-=- ⎪ ⎪⎪ ⎪ ⎪ ⎪ ⎪⎝⎭⎝⎭⎝⎭ 3.1 Jacobi 迭代取,.M D N L U ==+ (6)则(4)式中迭代矩阵B 和右端向量f 分别为()11,.B D L U f D b --=+=迭代格式(4)的分量形式为(1)()1,1,2,.0,1,.k k ii ij j j i ii xb a x i n k a +≠⎛⎫=-== ⎪⎝⎭∑称它为Jacobi 迭代法,该迭代法具有和(1)k x +中分量的计算次序无关,容易并行计算等优点.3.2 Gauss-Seidel 迭代法取,,M D L N U =-= (7)此时(4)式中迭代矩阵B 和右端向量f 分别为()()11,.B D L U f D L b --=-=-迭代格式(4)的分量形式为(1)(1)()111,1,2,.0,1,.k k k i i ij j ij j j i j i ii x b a x a x i n k a ++≤-≥+⎛⎫=--== ⎪⎝⎭∑∑称它为Gauss-Seidel 迭代法.和Jacobi 迭代法相比Gauss-Seidel 迭代法使用了最新已经计算的分量. 3.3 SOR 算法取11,,M D L N M A D U ωωω-=-=-=+ (8)此时(4)式中迭代矩阵B 和右端向量f 分别为()()()()111,.B D L D U f D L b ωωωωω--=--+=-迭代格式(4)的分量形式为()1(1)()(1)()111,1,2,.0,1,i nk k k k iii ij jij j j j i ii xxb a x a x i n k a ωω-++==+⎛⎫=-+--== ⎪⎝⎭∑∑其中,ω称为松弛因子(总假定是实数).迭代格式的矩阵形式为:()()()11(1)()1k k X D L D U X D L b ωωωωω--+=--++-⎡⎤⎣⎦称它为对应于松弛因子ω的逐次超松弛迭代法(Successive Over Relaxation,简称SOR).它可以看成Gauss-Seidel 迭代法与原向量的组合,但使用了最新已经计算的分量.也就是把(1)k i x +取为Gauss-Seidel 迭代法中()k i x 与(1)k i x +的某个平均值,即:()()(1)()(1)()(1)()1k k k ii i k k k iiix x x xxxωωω+++=-+=+-当1ω=时,它就是Gauss-Seidel 迭代法.因此希望选取合适的ω使得它比Gauss-Seidel 迭代法具有更快的收敛速度. 3.4 SSOR 算法SOR 迭代格式还可以写为()()(1)()1,0,1,k k D L X D U X b k ωωωω+-=-++=⎡⎤⎣⎦将上式L 和U 的位置互换就得到一个新的迭代格式,具体表示为:()()()()1()()21()(1)211,0,1,k k k k D L X D U X b D L X D U X b k ωωωωωωωω+++⎧-=-++⎡⎤⎪⎣⎦⎨⎪-=-++=⎡⎤⎣⎦⎩若消去1()2k X+,就得到迭代格式(4),其中()()()()()()()1111111,2B D U D D L D L D D U f D U D D L ωωωωωωωωωω-----=---+-+⎡⎤⎡⎤⎣⎦⎣⎦=---称为对称逐次超松弛迭代法(Symmetric Successive Over Relaxation ,简称SSOR). 对一类椭圆微分方程离散后得到的线性方程组,Young[3]给出了最佳松弛因子,即为ω=其中B 是Jacobi 迭代法中的迭代矩阵.在实际问题中最佳松弛因子是很难计算的,但一般都在(0,2)之间. 3.5收敛性分析定义3.1[3] 若实矩阵()ij nnA a =,满足()1,,1,2,nij ii j j ia a i n =≠<=∑或1,,nij jj i i ja a =≠<∑()1,2,j n =则称A 为严格对角占优矩阵;若满足()1,,1,2,nij ii j j ia a i n =≠≤=∑或1,,(1,2,)nij jj i i ja a j n =≠≤=∑且上述不等式至少有一个严格成立,则称A 为弱严格对角占优矩阵.定义3.2[3] 设A 为n 阶矩阵,2n ≥.若存在n 阶排列矩阵P ,使得1112220T AA P AP A ⎛⎫= ⎪⎝⎭其中11A 为r 阶矩阵,1r n ≤<,则称A 是可约的,否则称A 不可约.定理3.1[3] 若A 为n 阶严格对角占优矩阵或不可约的弱严格对角占优矩阵,则对任意的初始值(0)x ,(1)式中的Jacobi 迭代法、Gauss-Seidel 迭代法和关于01ω<≤的SOR 迭代法均收敛.定理3.2 [4] 对所有ω均成立不等式()1SOR B ρω≥-当ω是实数时,SOR 方法收敛的一个必要条件是02ω<<.定理3.3[4] 如果系数矩阵A 是Hermite 矩阵,则SOR 方法收敛的充要条件是:A 正定和02ω<<.4.几种新的迭代算法4.1 基于矩阵分裂形式的新迭代算法上述几种基本迭代方法都是通过对线性方程组(1)的系数矩阵A 进行分裂得到的,不同之处在于A 分裂成A M N =-的形式时,M 和N 的取值不同.由(3),(4)可知此种格式下的迭代矩阵11B M N E M A --==-,所以当M 是A 一个很好的近似时,p B 就会很小.再由定理2.1和定理2.2可知此时得到的迭代法收敛速度也更快.另一方面,我们构造的迭代格式为(1)(),0,1k k Mx Nx b k +=+=,由于每一次迭代都要解一个方程组,所以我们也要求非退化的矩阵M 的形式比较简单,如对角矩阵、下三角矩阵等.比较Jacobi 迭代、Gauss-Seidel 迭代及SOR 算法中M 的取值,我们可以看到M 的形式都为对角矩阵或下三角矩阵,并且随着M 越近似等于A ,所得到的迭代方法的收敛速度也越快.满足上述两个条件,对M 取不同于这三种算法中M 取值的形式,我们可以得到下述新的算法.4.1.1 算法的建立 取(),1.01M D L N L U ωωω=-=-+≤≤, (9)作为A M N =-的一个新分裂,在此分裂的基础上可得到一个新的迭代公式(1)(),0,1,k k x B x f k ωω+=+= (10)其中,()()()11B D L L U ωωω-=--+,()1,01f D L b ωωω-=-≤≤.显然,当0ω=时就是Jacobi 迭代法;当1ω=时就是Gauss-Seidel 迭代法.4.1.2 收敛性分析引理1[3] A 可约的充要条件为存在非空子集{}1,2,J n ⊂,使得0,,.ij a i J j J =∈∉引理2[3] 若A 为n 阶严格对角占优矩阵或不可约的弱严格对角占优矩阵,则A 是非退化的.定理 4.1 若A 为n 阶严格对角占优矩阵或不可约的弱严格对角占优矩阵,则对任意的初始值(0)x ,当01ω≤≤时,(10)式表示的迭代格式收敛.证明:(10)式的迭代矩阵为()()()11B D L L U ωωω-=--+我们有()()()()()()()()()()()11det det 1det det 1E B E D L L U D L D L L U ωλλωωωλωω---=---+=----+其中λ为B ω的特征值.若A D L U =--为严格对角占优矩阵,则D L ω-也为严格对角占优矩阵;若A D L U =--为不可约的弱对角占优矩阵,则D L ω-也为不可约的弱对角占优矩阵.由引理2,我们有()()1det 0D L ω--≠所以()()()()()det 0det 10E B D L L U ωλλωω-=⇔---+=令()()()()()()()()11121312122232123111111n n n n n nn H D L L U D L Ua a a a a a a a aa a a λωωλλωωλλωωλλωωλωωλωωλ=---+=--+-⎛⎫⎪-+ ⎪= ⎪ ⎪ ⎪-+-+-+⎝⎭下面证明1λ<,用反证法.假设1λ≥,由01ω≤≤可知A 和H 的对应元素一定同时为0或非0.由引理1知,A 不可约推出H 也不可约.下面比较λ和1λωω-+的大小. ①当1λ≥时,()()()()11111110λλωωλωλλωλλω--+=--+=---=--≥②当1λ≤-时,110λ--≤≤,()()()()()1111111110λλωωλλωωλλλωλλλωλ---+=--+-+=---+=---+≥由①、②知:当1λ≥,01ω≤≤时,1λλωω≥-+.所以有:A 为弱对角占优矩阵时,H 也是弱对角占优矩阵;A 为严格对角占优矩阵时,H 也是严格对角占优矩阵.再由引理2,可以得到H 为非退化的矩阵.从而,()det 0H ≠.进而,()det 0E B ωλ-≠.这与λ是B ω的特征值矛盾,所以1λ<.进一步可得到()1B ωρ<,我们就证明了(10)式表示的迭代格式收敛.■4.2 加权-对称超松弛迭代法4.2.1 算法的建立考虑SOR 算法和4.1给出的新迭代算法,其实质都是给矩阵A 分裂以后的因子一个权重后得到的,目的是使得迭代格式(4)的收敛速度尽可能快.按照这种思想,如果在SOR 和SSOR 迭代中引入一个参数θ,就可以得到迭代格式()()()(1)()()1,[0,1]k k k SOR SOR SSOR SSOR X B X f B X f θθθ+=++-+∈ (11) 其中,SOR B ,SSOR B 分别为SOR 迭代和SSOR 迭代算法的迭代矩阵.此时的迭代矩阵()1SOR SSOR B B B θθ=+-.显然,当0θ=时,该算法即为SSOR 迭代;当1θ=时,即为SOR 迭代.若迭代格式(11)收敛到某个向量*X ,则有()()()***1,[0,1]SOR SOR SSOR SSOR X B X f B X f θθθ=++-+∈所以不管θ在[0,1]内如何取值,当迭代格式(11)收敛时,它必定是原来方程X BX f =+的解.选取适当的B ,根据(4)式的定义,这样的解也是方程(1)的解.显然我们可以选择一个较好的θ,使得迭代格式(11)收敛的尽可能快.已知SOR 迭代的核心部分为:()1(1)()(1)()111:1:1i nk k k k iii ij jij j j j i ii for i nx xb a x a x a endωω-++==+=⎛⎫=-+--⎪⎝⎭∑∑ SSOR 迭代的核心部分为:()()1(1)()(1)()111(1)()(1)()111:1:1:1:11i nk k k k iii ij jij j j j i ii i nk k k k iii ij jij j j j i ii for i nxxb a x a x a endfor i n x xb a x a x a endωωωω-++==+-++==+=⎛⎫=-+--⎪⎝⎭=-⎛⎫=-+--⎪⎝⎭∑∑∑∑将SOR 迭代和SSOR 迭代生成的向量进行加权平均,可得到改进的SSOR 迭代算法,其核心部分为:()()()1(1)()(1)()111(1)()(1)()11(1)(1)(1)1:1:1:1:111:1:1i nk k k k iii ij jij j j j i ii i nk k k k i ii ij jij j j j i ii k k k iii for i nx xb a x a x a endfor i n xxb a x a x a endfor i nx x x endωωωωθθ-++==+-++==++++=⎛⎫=-+--⎪⎝⎭=-⎛⎫=-+--⎪⎝⎭==+-∑∑∑∑ 其中,θ为权重,可以取[0,1]之间的任意实数,在此称之为加权-超松弛迭代法.4.2.2 收敛性分析定理4.2 加权-超松弛迭代算法,满足迭代关系式(4),其迭代矩阵()1SOR SSOR B B B θθ=+-.其中,()()11SOR B D L D U ωωω-=--+⎡⎤⎣⎦()()()()11111SSOR B D U D D L D L D D U ωωωωωω---=---+-+⎡⎤⎡⎤⎣⎦⎣⎦ 且(11)对任意的初始向量都收敛的充要条件为()1B ρ<.证明:由4.2.1中的分析知该定理结论显然成立. ■ 5.算法的不足与改进方法上述两种算法本质上都是添加了一个加权因子,不同之处在于一个是对分裂后的矩阵添加的,而另一个是对迭代矩阵添加的.增加了加权因子之后,如何对其取值才最合理就变成了一个亟需解决的问题.像SOR 算法中很难确定ω的值一样,我们很难找到一种通用的方法来确定所增加的加权因子的值.在下面的数值实例中,为了验证算法的优越性,我们可以让加权因子ω遍取[0,1]中的某些值,通过MATLAB 编程搜索出迭代次数最少时ω的取值.但是在解决实际问题时如果仍这样做,不但不能减少迭代的总次数,反而是增加了计算机的工作量和解决问题所需要的时间.下面提供一种解决实际问题时加权因子ω值的确定方法:(1)给定某个迭代次数n ,搜索出迭代n 次后解的精度最小的那个ω的值;(2)用(1)中ω的值作为加权因子的值求解线性方程组的指定精度的解.6.数值实例6.1渐进收敛速度为方便比较和表述用不同的迭代方法解线性方程组时的收敛速度,我们引入下述定义.定义6.1[5]称()1ln k k k R B B=-为迭代法()(1)k k X BX f -=+的平均收敛率. 此处定义的是平均压缩率的对数值(再取负号),它依赖于所选择的范数和迭代次数,使用起来非常不便.由于()1lim k k k B B ρ→∞=则再给出下面的定义:定义6.2[5]称()()ln R B B ρ=-为迭代法的渐进收敛速度,简称迭代法的收敛速度.6.2几种迭代方法的比较下面我们用不同的迭代方法求解n 元线性方程组Ax b =,其中4131412,.1412143A b -⎛⎫⎛⎫ ⎪ ⎪-- ⎪ ⎪ ⎪ ⎪== ⎪ ⎪-- ⎪ ⎪ ⎪ ⎪-⎝⎭⎝⎭方程的精确解为()*1,1,,1Tx =.取10n =,初始向量(0)x 为零向量.下表给出了几种迭代方法达到不同精度时所需的迭代次数.(程序见附录)程组时,4.2中提供的方法收敛速度最快.根据6.2的定义,我们算出精度为8110-⨯时各种迭代算法的渐进收敛速度,见表2. (程序见附录)表2 精度为8110-⨯时各种迭代算法的渐进收敛速度 结合表1与表2,我们可以看到:当迭代结果的精度达到8110-⨯时,表1显示的Jacobi 迭代法、Gauss-Seidel 迭代法、SOR 算法、SSOR 算法和对称-超松弛迭代算法所需的迭代次数逐渐减少,4.2中给出的方法是收敛最快的,这与表2中给出的其渐进收敛速度逐渐变大的结果一致.我们还可以看到,用4.1中的算法进行计算所需的迭代次数较SSOR 方法的迭代次数多,但由定义6.2计算出的其渐进收敛速度却较小,这说明用该定义意义下的范数去度量4.1中的算法的收敛速度,并不是一个好的度量方式.考虑方程组123101*********x x x ⎛⎫⎛⎫⎛⎫ ⎪⎪ ⎪=- ⎪⎪ ⎪ ⎪⎪ ⎪--⎝⎭⎝⎭⎝⎭-1其精确解为()2,5,3T-.求出各种迭代方法的迭代矩阵B 对应的谱半径()B ρ,可以看到只有Jacobi 迭代法和4.1中的算法是收敛的,其他方法均发散.下面我们比较Jacobi 迭代法和4.1中的算法在达到指定精度时的收敛次数,见表3.(程序见附录)表3 两种迭代法达到指定精度所需迭代次数的比较参考文献[1] 张韵华,奚梅成,陈效群,数值计算方法与算法[M].北京:科学出版社,2009: 130-140.[2] 邵新慧,大型线性方程组的迭代解法[J ].东北大学博士学论文,2009.[3] 李大明,数值线性代数[M].北京:清华大学出版社,2010:177-192.[4] 余德浩,汤华中.微分方程数值解法[M].北京:科学出版社,2004:320-328.[5] 薛毅,数值分析与实验[M].北京:北京工业大学出版社,2005:88-93.[6] 马云,数值分析中的迭代法解线性方程组[J ].考试周刊,2010:71-72.[7] 段班祥,吴教育,朱小平,非线性互补问题的改进超松弛迭代算法[J].江西师范大学学报.2009,33(5):617-621.[8] 蒋家羚,王勇,最优超松弛因子的一种确定方法及其在裂纹计算中的应用[J].机械强度,2002,24(1):133-135.[9] 郑亚敏,迭代法解线性方程组的收敛性比较[J ].江西科学.2009.10: 659-661.[10] 谢刚,不定线性方程组的一种迭代算法[J].科学技术与工程.2007.第7卷,第14期.[11] 张步林,线性代数方程组迭代解法的MATLAB 实现[J].成都纺织高等专科学校学报,2008.10:45-47.[12] 李春光,徐成贤,确定SOR最佳松弛因子的一个实用算法[J].计算力学学报.2002.8:299-302.[13]曾闽丽,加权-对称超松弛算法[J].莆田学院院报,2008.4,第15卷,第2期.[14] 周荣富,蔡治亚,关于超松弛迭代法收敛的一个判别准则[J].1991.6.第6卷.第2期.[15] 唐永建,向隆万,最佳双松弛因子迭代法的存在条件[J].上海电力学院学报,第17卷,第1期.[16] 高虹霓,曹泽阳,一种新的非线性方程求根迭代法[J].空军工程大学学报,2002.4.第3卷,第2期.。

相关文档
最新文档