数值分析第三章 线性方程组的迭代法

合集下载

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

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

其中
v x (0) = ( x1(0) , x2 (0) ,…, xn (0) )
是迭代初值。 是迭代初值。
写成矩阵形式: 写成矩阵形式: 矩阵形式
A=
D
U
v v Ax = b ⇔ ⇔ ⇔
v v (D + L + U )x = b v v v Dx = −( L + U ) x + b v v v −1 −1 x = −D (L + U )x + D b
( ( a 111 ) a 121 ) ... a 1( 1 ) n
A

( ( ( a ij2 ) = a ij1 ) − m i 1 a 1 1j ) (2) b i = b i( 1 ) − m i 1 b1( 1 ) ( i , j = 2 , ..., n )
− 共进行 n ?1 步

(1 ( ( a12) ... a11) x1 b11) n b( 2) ( 2) ( 2) a22 ... a2n x2 2 . . = . ... . . . . . . ( n) (n ann) xn bn
… … …

( ( ( ( ( xnk +1) = 1 (−an1 x1k +1) − an 2 x2k +1) − an3 x3k +1) − L − ann−1 xnk +1) + bn ) −1 ann v v ( k +1) v ( k +1) v (k ) −1 −1 写成矩阵形式 矩阵形式: 写成矩阵形式: x = − D ( Lx + Ux ) + D b v (k +1) v (k ) v ⇔ (D + L)x = −U x + b v v ( k +1 ) −1 v ( k ) −1 ⇔ x = − ( D + L ) Ux + ( D + L ) b v Gauss-Seidel B vf v ( k + 1) v(k ) 迭代阵

数值分析第三章 线性方程组迭代法

数值分析第三章 线性方程组迭代法
第三章
(一) (二) (四) (五) (六)
线性方程组的迭代解法
主要内容: 主要内容:
迭代法的一般形式 雅可比(Jacobi)迭代法 雅可比(Jacobi) 松弛法 迭代法的收敛条件 小结
高斯-赛德尔(Gsuss Seidel)迭代法 (Gsuss(三) 高斯-赛德尔(Gsuss-Seidel)迭代法
,如此下去, x ( 9 ) = Bx (1) + g = (10.9994 ,11.9994 ,12.9992 ) T 易知,方程组的精确解为
x = (11,12 ,13 ) T
迭代结果(当迭代次数增大时)越来越接近精确解。
例:用Jacobi迭代法求解方程组
8 x1 − 3x2 + 2 x3 = 20 4 x1 + 11x2 − x3 = 33 6 x + 3 x + 12 x = 36 2 3 1
,精确解为 x = ( 3, 2,1)
T
解:按迭代过程
( k +1) 1 x1 = (3 x2 ( k ) − 2 x3( k ) + 20) 8 ( k +1) 1 = (−4 x1( k ) + x3( k ) + 33) x2 11 ( k +1) 1 x3 = (−6 x1( k ) − 3 x2 ( k ) + 36) 12
公式(3-4)表示为
~ ~ x ( k + 1 ) = L x ( k + 1 ) + U x ( k ) + g , ( k = 0 ,1, 2 , L )
b1n 0 0 b12 0 O M ~ b21 0 ~ 其中L = ,U = M M O b M M O n −1n b b L 0 L 0 n1 n 2

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

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

得 x(1) = ( 0.5000, 2.8333, -1.0833 )T

x(9) = ( 2.0000, 3.0000, -1.0000 )T
举例(续)
SOR 迭代格式
( x1( k 1) (1 ) x1( k ) 1 x2k ) 2 ( k 1) (k ) ( k 1) (k ) x2 (1 ) x2 8 x1 x3 3 ( k 1) ( ( x3 (1 ) x3k ) 5 x2k 1) 2
( k ( k 在计算 xi( k 1) 时,如果用 x1 k1) ,, xi(11) 代替 x1 k ) ,, xi(1) ,则 可能会得到更好的收敛效果。此时的迭代公式为
x1( k 1) ( x2k 1) ( k 1) xn
( ( ( b1 a12 x2k ) a13 x3k ) a1n xnk ) a11 ( ( b2 a21 x1( k 1) a23 x3k ) a2 n xnk ) a22
解得
x
x ( k 1) (1 ) x ( k ) D 1 b Lx ( k 1) Ux ( k )
( k 1)
D L
1
1
(1 ) D U x
(k )
D L b
1
GS D L
Jacobi 迭代 x( k 1) D1 ( L U ) x( k ) D1b
M = D, N = M – A = -(L + U)
GS 迭代
x
( k 1)
L D Ux
1
(k )

数值分析3迭代法

数值分析3迭代法
| x n 1 x * | | ( x n ) ( x *) | | ( n ) || x n x * |
其中,
n
介于xn和x*之间. 所以
| x n1 x* | | x n x* | lim | ( n ) | | ( x *) |
k=16
x0=1.3652
k=6 x0=1.3652
5/16
f(x) = 0
迭代格式:
x ( x)
x n 1 ( x n )
( n = 0, 1, 2, ·· ·· ··)
若存在 x*,使得 x * ( x *) ,则称x*为不动点
y=x
y ( x)
( x)
x ( x)
| x x n |
*
1 1 L
| x n1 x n |
* *
x n ( x n 1 ) 证 * * x (x )
*
| x n x | | ( x n 1 ) ( x ) | | ( ) || x n 1 x |
*
| x n x | L | x n 1 x |
( x ) 20 /( x 10 )
2
300 200
100
0
求导数, 得
( x ) 40 x /( x 10 )
2 2
-1 0 0
-2 0 0
-3 0 0
-6
-4
-2
0 x
2
4
6
11/16
显然,在x*附近
| ( x ) | 1 ( x ) 0
利用Lagrange中值定理, 有

数值分析第三章线性方程组解法

数值分析第三章线性方程组解法

数值分析第三章线性方程组解法在数值分析中,线性方程组解法是一个重要的主题。

线性方程组是由一组线性方程组成的方程组,其中未知数的次数只为一次。

线性方程组的解法包括直接解法和迭代解法两种方法。

一、直接解法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-线性方程组解法 (1)

数值分析-北交大-王兵团-3-线性方程组解法 (1)

©
追赶法求解公式为:
追赶法算法
用追赶法来求解三对角线性方程组, 计算量只是5n-4,这比Gauss消元法的计算 量要小很多。
©
第3章 线性方程组解法
§3.5 线性方程组解对系数的敏感性
©
1、解对系数敏感性的相对误差 设方程组Ax=b的解为
扰动方程组的准确解为

©
用上述过程求解 的方法称为追赶法解法。
©
定理3.7
Sor法收敛的必要条件是松弛因子满足0<<2 证明
©
2、误差估计 定理3.8 设矩阵B的某种矩阵范数
证明参照非线性方程求根定理的证明, 将:绝对值换成范数、函数换成矩阵,注意范数关系 的使用,
©
例3.1 用Jacobi 迭代法解线性方程组 解
Jacobi迭代收敛!
故所求近似解为 准确解:
©
第3章 线性方程组解法
§3.4 线性方程组的直接解法
©
一、Gauss消元法 1、基本思想 先将线性方程组通过消元方法化为同解的上三角
方程组,然后从该三角方程组中按第n个方程、第n1个方程、…、第1个方程的顺序,逐步回代求出线 性方程组的解。
2、构造原理 Gauss消元法的求解过程分为两个: “消元”:把原方程组化为上三角方程组; “回代”:求上三角方程组的解。
©
计算量
©
2)Gauss消元法矩阵解释 第1步消元
第n-1步消元后,有
©
L是下三角阵,U是上 三角阵。
A=D-L-U ?
例:研究线性方程组
的Gauss消元法求解结果,假设计算在4位浮点十进 制数的计算机上求解。
解:
用Gauss消元法得
©
用Gauss消元法求解得 其准确解为

数值分析第三章线性方程组迭代法

数值分析第三章线性方程组迭代法

数值分析第三章线性方程组迭代法线性方程组是数值分析中的重要问题之一,涉及求解线性方程组的迭代法也是该领域的研究重点之一、本文将对线性方程组迭代法进行深入探讨。

线性方程组的一般形式为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迭代法、共轭梯度法等。

这些方法都具有不同的特点和适用范围,可以根据问题的具体情况选择合适的迭代法。

高斯-赛德尔法--数值分析线性方程组的迭代解法

高斯-赛德尔法--数值分析线性方程组的迭代解法
高斯赛德尔法数值分析线性方程组的迭代解法线性方程组的迭代解法迭代法求解线性方程组高斯赛德尔迭代法高斯赛德尔迭代法原理高斯赛德尔迭代赛德尔迭代法线性方程组的解法pkpm线性方程组解法非线性方程数值解法
实验六、高斯-塞德尔法
一、实验目的
通过本实验学习线性方程组的迭代解法。掌握高斯-赛德尔迭代法编程。
二、计算公式
}
if(k==T)printf("\nNo");
else
printf("\n",k);
for(i=0;i<M;i++)
printf("x(%d)=%15.7f\n",i+1,x[i]);
}
四、例题
书P189页例6:用高斯-塞德尔迭代解线性方程组:
取 使得
#include<math.h>
#define M 3
#define N 4
main()
{
double a[M][N]={{8,-3,2,20},
{4,11,-1,33},
{6,3,12,36},
};
double x[M]={0,0,0};//初值
double r,t,q,eps=0.0000202;//需要精度
if(j!=i)q=q+a[i][j]*x[j];
x[i]=(a[i][N-1]-q)/a[i][i];
if(fabs(x[i]-t)>r)r=fabs(x[i]-t);
}
if(r<eps)break;
printf("\nk=%d,",k);
for(i=0;i<M;i++)
printf("\nx[%d]=%lf",i,x[i]);
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
显然对任何一个ω值,(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
因为 D 0 ,所以 D L D 0

(D L)x(k1) Ux(k) b
x(k1) (D L)1Ux(k) (D L)1b
令 G1 (D L)1U , d1 (D L)1b
则高斯-塞德尔迭代形式为:
x (k 1) G1 x (k ) d1
其具体计算公式如下:
⑴ 用高斯—塞德尔迭代法定义辅助量。
~xi(k 1)

1 aii
bi

i 1
aij x j (k 1)
j 1

n
aij
x
j
(
k
)
,
(i
j i 1

1,2,...,n)


取为 与 x (k1) i
x (k ) i
~xi(k 1) 的加权平均,即

x (k 1) 1
x (k 1) 2
x1(k 2x1(k)
)

x(k) 2
4x2(k )
3 3

x (0) 1

x (0) 2
0
计算得
xx2(1(11))

3 3,
xx2(1(22))

3 3,
xx2(1(33))

9 9,
xx2(1(44))
量。有时迭代过程虽然收敛,但由于收敛速 度缓慢,使计算量变得很大而失去使用价值 。因此,迭代过程的加速具有重要意义。逐 次超松弛迭代(Successive Over relaxatic Method,简称SOR方法)法,可以看作是 带参数的高斯—塞德尔迭代法,实质上是高 斯-塞德尔迭代的一种加速方法。
0.4925 )T
0.4939 )T 0.4936 )T
1,2,3)
解 GaussSeidel 迭代格式为


x1(k x2(k
1) 1)
( (2x1(k 1)
x(k) 2

x(k) 3
1)
/
8

x(k) 3

4)
/ 10

x3(k
1)
( x1(k 1)
§ 3.4.1超松弛迭代法的基本思想
超松弛迭代法目的是为了提高迭代法的收敛速
度,在高斯—塞德尔迭代公式的基础上作一些修改
。这种方法是将前一步的结果
x
( i
k
)与高斯-塞德尔迭
代方法的迭代值 ~xi(k1) 适当加权平均,期望获得更好
的近似值
x (k 1) i
。是解大型稀疏矩阵方程组的有效方
法之一,有着广泛的应用。
§ 3.3.3 高斯—塞德尔迭代算法实现
高斯-塞德尔迭代算法的计算步骤与流程图
与雅可比迭代法大致相同,只是一旦求出变元 xi
的某个新值
x (k 1) i
后,
就改用新值
x (k 1) i
替代老

x (k ) i
,再进行这一步剩下的计算。
§ 3.4 超松弛迭代法(SOR方法) 使用迭代法的困难在于难以估计其计算
§3.1 迭代法的基本思想
迭代法的基本思想是将线性方程组转化 为便于迭代的等价方程组,对任选一组初始 值 xi(0) (i 1,2,, n) ,按某种计算规则,不断地 对所得到的值进行修正,最终获得满足精度 要求的方程组的近似解。
设 A Rnn 非奇异,b Rn,则线性方程组
Ax b 有惟一解 x A1b ,经过变换构造
写据成此建立n 迭ai代j x公j 式 bi
i 1,2,, n
上若xi式(xkai称1ii)为0ja1解a11i(iiii方((bb程1ii,2组,jj的njn,1i n1Jaa)aijcxio,j分(jxbk)ij离)迭) 代出公i变i式量1,。21x,,2i , n , n j i

15 15,
xx2(1(55))

33 33,
迭代解离精确解 x1 1, x2 1 越来越远 迭代不收敛
§3.2 雅可比(Jacobi)迭代法
§3.2.1雅可比迭代法算法构造 例2 用雅可比迭代法求解方程组
8x1 3x2 2x3 20 4x1 11x2 x3 33
(k j
)
)
j i 1
(i=1,2,…,n k=0,1,2,…)
例3 用Gaxu(s1)s (S0e.i1d2e5l0迭, 代0格.37式50解, 方程0组.5000 )T
x*精≈ 确xxxx82x要((i((341x4x2))))11求x为((x(1x0200i(02..ε3.222)x22352=454xx050433.0,,,0x.003 0105300.5..333,0400553961,,,(i
an1
an2
ann1 0
a1n
a2n


an1n

0
记作 A = D + L + U
则 Ax b 等价于 (D L U )x b
即 Dx (L U )x b 因为 aii 0(i 1,2,, n)
x D1(L U )x D1b
( x1(k ) , x2(k ) , x3(k ) )
(k=1, 2, …)
直到求得的近似解能达到预先要求的精度,
则迭代过程终止,以最后得到的近似解作为线
性方程组的解。 当迭代到第10次有
x (10)

(
x (10) 1
,
x (10) 2
,
x (10) 3
)T
(3.000032 ,
1.999838 ,
, 故 x* 是方程组 Ax b 的解。
对于给定的方程组可以构造各种迭代公式。 并非全部收敛
例1 用迭代法求解线性方程组

2x1 2x1

x2 5x2
3
3
解 构造方程组的等价方程组

x1 x2

x1 2x1
x2 3 4x2 3
据此建立迭代公式
§3.2.2 雅可比迭代法的矩阵表示
设方程组 Ax b 的系数矩阵A非奇异,且主对
角元素 aii 0(i 1,2,, n) ,则可将A分裂成
a11
A
a22



0

a21
0
0 a12 a13

0 a23


a31
a32
0

0

ann

A=d+L+U, 则超松弛迭代公式用矩阵表示为
x(k1) (1 )x(k ) D1(b Lx(k1) Ux(k ) )
或 Dx(k1) (1 )Dx(k) (b Lx(k1) Ux(k) )
故 (D L)x(k1) (1)D U x(k) b
yi xi i =1,2,…,n
max
1i n
xi

yi
?
n n
k=M? y
输出迭代 失败标志
y
输出
y1, y2,… yn
§ 3.3 高斯-塞德尔(Gauss-Seidel)迭代法
§ 3.3.1 高斯-塞德尔迭代法的基本思想
在Jacobi迭代法中,每次迭代只用到前一次
的迭代值,若每次迭代充分利用当前最新的迭代值

an2 x2(k )

an
n1 xn(k)1
bn )
(k=0,1,2,…)
3.2.1
雅 可 比 迭 代 法 的 算 法 实 现
输入 aij,bi,和 方程阶数 n,ε ,M
1k
n
(bi aij x j ) / aii yi j 1 j i
i 1,2,, n
k+1k
,即在求
x (k 1) i
时用新分量 x1(k
1)
,
x 2( k
1)
,,
x (k 1) i 1
代替旧分量
x1(
k
)
,
x2(k
)
,,
x(k) i 1
, 就得到高斯-赛德尔迭
代法。其迭代法格式为:
x(k1) i

1 aii
(bi

i1
aij
x
(k j
1)
j 1

n
aij
x
,则
这样便得到一个迭代公式
x(k1) D1(L U )x(k ) D1b

B D1(L U ) f D1b
则有
x (k 1) Bx (k ) f (k = 0,1,2…)
称为雅可比迭代公式, B称为雅可比迭代矩阵
雅可比迭代矩阵表示法,主要是用来讨论其收敛 性,实际计算中,要用雅可比迭代法公式的分量 形式。即
出一个等价同解方程组 x Gx d 将上式改写成迭代式
x (k 1) Gx (k ) d (k 0,1,)
选定初始向量 x(0) x1(0) , x2(0) ,, xn(0) T ,反复不断
地使用迭代式逐步逼近方程组的精确解,直到 满足精度要求为止。这种方法称为迭代法
精确解x*= (3, 2, 1)T
6x1 3x2 12x3 36
相关文档
最新文档