研究线性方程组迭代收敛速度.

合集下载

几类特殊线性代数方程组的迭代解法及其收敛性分析的开题报告

几类特殊线性代数方程组的迭代解法及其收敛性分析的开题报告

几类特殊线性代数方程组的迭代解法及其收敛性分析的开题报告一、选题的背景和意义线性代数是数学中的一个重要分支,它在科学和工程中都有很广泛的应用。

线性方程组在生产和科学技术中的应用非常广泛,例如在物理、统计学、计算机科学、经济学、金融等领域中广泛使用。

然而,由于线性方程组通常是大规模的、复杂的,并且往往没有解析解,因此迭代方法是解决此类方程组的主要方法之一。

特殊的线性方程组是具有特殊结构的方程组,例如对角占优、对称正定、三对角等。

这些特殊的结构使得方程组的求解更具有可行性和稳定性,因此针对这些结构,设计相应的迭代方法具有理论和实际的重要性。

本文将研究这些特殊线性代数方程组的迭代解法及其收敛性分析,探究不同的迭代方法在不同的情况下的优缺点,并分析不同方法的收敛性,这对于理论和实践都具有重要意义。

二、研究内容和研究方法本文研究内容为各种特殊线性方程组的迭代解法及其收敛性分析,包括对角占优线性方程组、对称正定线性方程组、三对角线性方程组等。

本文将重点研究以下几种方法:1. Jacobi迭代法:Jacobi迭代法是一种基本的迭代方法,主要用于解对角占优线性方程组。

该方法的思路是将原方程组转化为x = Bx + g的形式,并进行迭代求解。

2. Gauss-Seidel迭代法:Gauss-Seidel迭代法是Jacobi迭代法的变种,也是基于x = Bx + g的思路,但是它可以利用已经求得的解来加快求解的速度。

3. SOR迭代法:SOR迭代法是在Jacobi和Gauss-Seidel迭代法的基础上发展而来的加速算法,该方法引入一个松弛因子来加速收敛。

4. CG迭代法:CG迭代法是一种用于求解对称正定线性方程组的迭代方法,它可以利用矩阵的对称性和正定性来加速求解。

5. TDMA迭代法:TDMA迭代法是一种用于求解三对角线性方程组的迭代方法,该方法利用三对角矩阵的特殊结构来简化矩阵运算,从而加速求解。

本文将运用数学分析、计算机仿真和实验比较等方法,对以上几种迭代方法的收敛性和求解速度进行深入研究。

线性代数方程组的数值解法讨论

线性代数方程组的数值解法讨论

线性代数方程组的数值解法讨论解线性方程组的方法,主要分为直接方法和迭代方法两种。

直接法是在没有舍入误差的假设下能在预定的运算次数内求得精确解。

而实际上,原始数据的误差和运算的舍入误差是不可以避免的,实际上获得的也是近似解。

迭代法是构造一定的递推格式,产生逼近精确解的序列。

对于高阶方程组,如一些偏微分方程数值求解中出现的方程组,采用直接法计算代价比较高,迭代法则简单又实用,因此比较受工程人员青睐。

小组成员本着工程应用,讨论将学习的理论知识转变为matlab 代码。

讨论的成果也以各种代码的形式在下面展现。

1 Jacobi 迭代法使用Jacobi 迭代法,首先必须给定初始值,其计算过程可以用以下步骤描述: 步骤1 输入系数矩阵A ,常熟向量b ,初值(0)x ,误差限ε,正整数N ,令1k =.步骤2 (0)11ni i ij jj ii j i x b a x a =≠⎡⎤⎢⎥=-⎢⎥⎢⎥⎣⎦∑,(0)j x 代表(0)x 的第j 个分量。

步骤3 计算11ni i ij j j ii j i y b a x a =≠⎡⎤⎢⎥=-⎢⎥⎢⎥⎣⎦∑,判断1max i i i n x y ε≤≤-<,如果是,则结束迭代,转入步骤5;否则,转入步骤4。

步骤4 判断k N =?如果是,则输出失败标志;否则,置1k k =+,i i x y ⇐,1,2,,i n =,转入步骤2。

步骤5 输出12,,n y y y 。

雅可比迭代代码function [x,k]=Fjacobi(A,b,x0,tol)% jacobi 迭代法 计算线性方程组% tol 为输入误差容限,x0为迭代初值max1= 300; %默认最多迭代300,超过要300次给出警告 D=diag(diag(A)); L=-tril(A,-1);U=-triu(A,1); B=D\(L+U); f=D\b; x=B*x0+f;k=1; %迭代次数while norm(x-x0)>=tol x0=x;x=B*x0+f; k=k+1;if(k>=max1)disp('迭代超过300次,方程组可能不收敛'); return; end%[k x'] %显示每一步迭代的结果 End2 高斯赛德尔迭代由Jacobi 迭代法中,每一次的迭代只用到前一次的迭代值,若每一次迭代充分利用当前最新的迭代值,即在计算第i 个分量(1)k i x +时,用最新分量11()k x +,12()k x +…(1)1k i x +-代替旧分量)1(k x ', )2(k x …)3(k x 就得到高斯赛德尔迭代格式,其数学表达式为:1(1)(1)()111(1,2,,)i n k k k ii ij j ij j j j i ii xb a x a x i n a -++==+⎛⎫=--= ⎪⎝⎭∑∑具体形式如下:()()()(1)()()()11221331111(1)(1)()()22112332222(1)(1)(1)(1)(1)112233,11111k k k k n n k k k k n n k k k k k n n n n n n n n nnx a x a x a x b a x a x a x a x b a x a x a x a x a x b a ++++++++--=----+=----+⋯⋯⋯⋯⋯⋯=-----+矩阵形式表示为:()(1)1(1)()(0,1,2,,),k k k k n +-+=++=x D Lx Ux b将(1)(1)()(0,1,2,,)k k k k n ++=++=Dx Lx Ux b 移项整理得: (1)1()1()()(0,1,2,,))k k x D L Ux D L b k n +--=-+-=记11(),()--=-=-M D L U g D L b ,则(1)()k k x x +=+M g高斯塞德尔迭代function [x,k]=Fgseid(A,b,x0,tol)%高斯-塞德尔迭代法 计算线性方程组 % tol 为误差容限max1= 300; %默认最高迭代300次D=diag(diag(A)); L=-tril(A,-1); U=-triu(A,1); G=(D-L)\U; f=(D-L)\b; x=G*x0+f;k=1; while norm(x-x0)>=tol x0=x;x=G*x0+f; k=k+1;if(k>=max1)disp('迭代次数太多,可能不收敛'); return; end% [k,x'] %显示每一步迭代结果 End3 超松弛迭代法在工程中最常遇到的问题便是线性代数方程组的求解,而线性代数方程组的求解一般可以分为两类,一类是直接法(精确法),包括克莱姆法则方法、LD 分解法等,另一类是迭代法(近似法),包括雅克比迭代法、高斯迭代法、超松弛迭代法等。

37第七节 迭代法及其收敛性

37第七节 迭代法及其收敛性
x(k) x q x(k) x(k1) 1q
x(k) x qk x(1) x(0) 1q
证 因 (B)||B||=q<1, 所以迭代格式收敛, 且有 设 lim x (k) =x*,由 x(k+1) = Bx(k) + f , 得 x* = Bx* + f ,则
数学学院 信息与计算科学系
又 || Bk|| ||B||k ,有 lim||Bk||=0 , 故 lim B k =0,由1)知,迭代格式收敛。
数学学院 信息与计算科学系
三、迭代法的收敛速度
考察误差向量
e(k) =x(k) -x*=Bk ·e(0)
设B有n个线性无关的特征向量及相应的特征值为
1 ,2 , ,n ,
1 , 2 , , n
数学学院 信息与计算科学系
2) 由1)知,迭代格式收敛 lim Bk=O , 即lim||Bk||=0 ,从而存在 k ,使 || B k || <1,由谱半径 的性质有
[( B )]k = (B k ) ||B k ||<1,
故得
( B )<1,
因(B)=inf{||B||}且(B)<1,存在 >0及使 || B || ( B )+ <1,
取对数得 定义3 称
k s ln10
ln (B)
R(B) ln (B)
为迭代法 x(k+1) = Bx(k) + f 的收敛速度。 由此看出,当(B)<1愈小,速度R(B)就愈大,
所需要的迭代次数也就愈少。
数学学院 信息与计算科学系
定理 2 若 ||B||=q<1,则对任意x(0) 迭代格式 x(k+1) = Bx(k) + f 收敛 ,且有误差估计式

用Jacobi 迭代法,Gauss-Seidol迭代法求解线性方程组,讨论收敛性

用Jacobi 迭代法,Gauss-Seidol迭代法求解线性方程组,讨论收敛性

2.高斯塞德尔迭代法令M=D-L,A=M-N,得B=(D-L)^-1U=G,G 为高斯塞德尔迭代法的迭代矩阵,得到11111i nk k k ii iij jijjij j i a xa xa xb -++==+=--+∑∑,所以高斯塞德尔计算公式为000012(X ,X ........X )Tn x =,1k ix+=(1111i nk k ij jijji j j i a xa xb -+==+--+∑∑)/ii a ,i=1,2,3.......,k=0,1,2.....【实验问题】用Jacobi 迭代法,Gauss-Seidol 迭代法求解线性方程组,判断收敛性【实验过程与结果】1.理解两种迭代法的计算思想,掌握方法推到计算公式2.用matlab 编程实现3.对实验结果进行分析,比较两种方法,并判断收敛性【结果分析、讨论与结论】两种方法得到的结果一样,雅可比k =17x =-0.1348-1.08293.9203 2.高斯塞德尔k =17x =-0.1348-1.08293.9203【附程序】1.雅可比程序算法function x=jacobi(A,b,x0,tol)n=length(b);x=zeros(n,1);x=x0+1;k=0;while norm(x-x0)>tolif k>20disp('jacobi fails')break;endk=k+1;for i=1:nx0=x;x(i)=(b(i)-A(i,1:n)*x0+A(i,i)*x(i))/A(i,i);endend。

迭代相关收敛法(concor)

迭代相关收敛法(concor)

迭代相关收敛法(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。

2.2 迭代法的一般形式与收敛性定理

2.2 迭代法的一般形式与收敛性定理

设aii0 (i=1,2,,n),并将A写成三部分
0 a11 a 21 0 a 22 A a n 1 ,1 a n 1 , 2 0 a nn a n 2 a n , n 1 a n1 0 a12 a1,n1 a1n 0 a 2 , n 1 a 2 n 0 a n 1, n 0 D LU. 0

k
B ( H )
k
两边取对数得: k ln ( H ) ln k
ln ln ( H )
定义:
ln ( H )
为迭代法(2.2.3)的渐近收敛速 度。
解线性方程组的迭代法
线性方程组
a11 x1 a12 x2 a x a x 21 1 22 2 an1 x1 an 2 x2 a1n xn b1 a2 n xn b2 ann xn bn
复习:矩阵的谱半径 设λ是矩阵A相应于特征向量x的特征值,即 Ax=λx 向量-矩阵范数的相容性,得到 |λ| || x ||=||λx|| =|| Ax|| ≤ || A || ||x|| 从而,对A的任何特征值λ均成立 |λ|≤|| A || ( 3)
设n阶矩阵A的n个特征值为λ1,λ2,…λn,称 ( A) max i
x ( k 1) x* H ( x ( k ) x* )
由此递推:x ( k 1) x* H k 1 ( x ( 0) x* ), k 0,1,2,
x 是线性方程组Ax=b的解
x* Hx* g
x
k 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 。

迭代法的收敛性

迭代法的收敛性


det[I (D L)1U ] 0
从而 det(D L)1 det[(D L) U ] 0
所以
det[(D L) U ] 0
可得
因为
|aii| |aij | ji
i1
n
|||aii||| |aij ||| |aij |
j1
j i 1
i1
n
n
|| |aij| |aij| (||1) |aij|
(1)写出解该方程组旳Jacobi迭代旳迭代
阵,并讨论迭代收敛旳条件;
(2)写出解该方程组旳G-S迭代旳迭代阵, 并讨论迭代收敛旳条件。
17
补充例题
例:AX=b为二元线性方程组, 证明:解该方程组旳Jacobi迭代与G-S迭 代同步收敛或同步发散。
18
9
特殊方程组迭代法旳收敛性
4 1 1 问题:该矩阵具有怎样旳特点?
2 5 1 1
2
3
结论:该矩阵是严格对角占优阵
定义:假如矩阵A旳元素满足
jn
| aii | | aij | i 1,2,3,, n j 1 ji
则称A为严格对角占优矩阵。
10
特殊方程组迭代法旳收敛性
定理:若线性方程组AX=b旳系数矩阵A为 严格对角占优矩阵,则解该方程组旳Jacobi 迭代法和G-S迭代法均收敛。
2
一阶定常迭代法旳收敛性
则: (k 1) B (k ) B 2 (k 1) B k 1 (0)
注意 (0) x(0) x * 为非零常数向量
所以迭代法收敛旳充要条件
lim (k1) lim( x(k1) x*) 0
k
k
可转变为
lim Bk1 0
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

研究解线性方程组迭代收敛速度一. 实验目的科学研究与生产实践中许多问题都可归结为线性方程组的求解,高效求解线性方程组成为了许多科学与工程计算的核心.迭代法就是用某种极限过程去逼近线性方程组精确解的方法,该方法具有对计算机的存贮单元需求少,程序计算简单,原始系数矩阵在计算过程中不变等优点,是求解大型稀疏矩阵方程组的重要方法。

常用的迭代法有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 迭代矩阵。

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位时,迭代次数、最后一次迭代的结果、最后两次的相对误差。

相关文档
最新文档