数值分析线性方程组迭代法
《数值分析》第4章 解线性方程组的迭代法

都成立,则称矩阵范数 || ||s和向量范数 || ||相t 容.
注意:为了保证矩阵范数和向量范数相容,最常用的矩阵范数
是由相应向量范数导出的.
4.1.3 矩阵范数和矩阵序列的极限
定理4 设 || |是| R中n 的向量范数,对于任何 A Rn,n若
4.1.2 向量范数和向量序列的极限
定义2 (向量范数) 如果在 Rn中定义了实值函数,记为 || ,||
对所有 x, y Rn以及 R,若满足 (1) || x || 0,当且仅当 x 0时, || x || (0非负性) ;
(2) || x ||| | || x |(|齐次性);
(3) || x y |||| x || || y(|三| 角不等式). 则称 || x ||为向量 x的范数 (或模).
于是有
c1 || x(k) x* || || x(k) x* || c2 || x(k) x* ||
lim ||
k
x(k)
x* || 0
lim ||
k
x(k)
x*
||
0
4.1.2 向量范数和向量序列的极限
例1 计算向量 x (5,1,3)的T 常用范数.
解
|| x || 5
|| x ||1 9
(3)|| A B |||| A || || B;||(三角不等式) (4) || AB |||| A || || B;|| 则称 || A ||为矩阵 A 的范数.
4.1.3 矩阵范数和矩阵序列的极限
相容性: 设有矩阵范数 || ||s和向量范数 || ||,t 如果对任何向量 x Rn
数值分析--第6章 解线性方程组的迭代法

数值分析--第6章解线性方程组的迭代法第6章 解线性方程组的迭代法直接方法比较适用于中小型方程组。
对高阶方程组,即使系数矩阵是稀疏的,但在运算中很难保持稀疏性,因而有存储量大,程序复杂等不足。
迭代法则能保持矩阵的稀疏性,具有计算简单,编制程序容易的优点,并在许多情况下收敛较快。
故能有效地解一些高阶方程组。
1 迭代法概述迭代法的基本思想是构造一串收敛到解的序列,即建立一种从已有近似解计算新的近似解的规则。
由不同的计算规则得到不同的迭代法。
迭代法的一般格式(1)()(1)()(,,,),0,1,k k k k m kF k +--==x x x x式中(1)k +x 与()(1)(),,,k k k m --x x x 有关,称为多步迭代法。
若(1)k +x 只与()k x 有关,即(1)()(),0,1,k k kF k +==x x称为单步迭代法。
再设kF 是线性的,即(1)(),0,1,k kk kk +=+=x B x f式中n nk ⨯∈B R ,称为单步线性迭代法。
kB 称为迭代矩阵。
若k B 和kf 与k 无关,即(1)(),0,1,k k k +=+=x Bx f称为单步定常线性迭代法。
本章主要讨论具有这种形式的各种迭代方法。
1.1 向量序列和矩阵序列的极限由于nR 中的向量可与nR 的点建立——对应关系,由点列的收敛概念及向量范数的等价性,可得到向量序列的收敛概念。
定义6.1 设(){}k x 为n R 中的向量序列,nx R ∈,如果()lim 0k k x x →∞-=其中为向量范数,则称序列(){}k x 收敛于x ,记为()lim k k x x →∞=。
定理6.1 nR 中的向量序列(){}k x 收敛于nR 中的向量x 当且仅当()lim (1,2,,)k i i k x x i n →∞==其中()()()()1212(,,,),(,,,)k k k k T Tnnx x x x x x x x ==。
数值分析第三章 线性方程组迭代法

(一) (二) (四) (五) (六)
线性方程组的迭代解法
主要内容: 主要内容:
迭代法的一般形式 雅可比(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
数值分析课件-数值分析14-线性方程组的迭代法

a13 L a23 L 0L
O
a1n a2n
a3n M
0
0
a12 a11
a13 L a11
a1n a11
a21 a22
0
a23 L a22
a2 n a22
BJ
a31 a33
a32 a33
0
L
a3n a33
M
M
M
OM
an1 ann
an2 ann
an3 ann
j 1
n
aij x(jk )
j i1
bi )
x ( k 1) 1
1 a11
(a12 x2(k)
a13 x3(k )
a14 x4(k )
a1n xn(k )
b1 )
x ( k 1) 2
1 a22
(a21 x1(k1)
a23 x3(k )
a24 x4(k )
a2n xn(k )
b2 )
x ( k 1) 2
2
得 x(1) = ( 0.5000, 2.8333, -1.0833 )T
M
x(9) = ( 2.0000, 3.0000, -1.0000 )T
举例(续)
SOR 迭代格式
x1( k x2( k
1) 1)
x(k) 1
x(k) 2
1
2 x1(k)
x(k) 2
2
8
x ( k 1) 1
Jacobi 迭代
令 A = D - L- U, 其中 D diag(a11, a22,K , ann),
0
L
a21
M
an1
0 a12 L
0 OO
,
第六章 迭代法-数值分析

由极限存在准则得 即
k
lim xi( k ) xi =0
k
(i 1, 2, , n)
, n)
lim xi( k ) xi
(i 1, 2,
定义:设{ A( k ) }为n阶方阵序列,A为n阶方阵,如果 lim A( k ) A 0
k
其中 为矩阵范数,则称序列{ A( k ) }收敛于矩阵A,记为 lim A( k ) A
g
n
其中bij
aij aii
, (i j , i, j 1, 2,
, n), g i
bi (i 1, 2, aii
, n).
迭代公式x ( k 1) Bx ( k ) g (k 0,1, 2, )用方程组表示为
(k ) (k ) (k ) ( k 1) b13 x 3 b1n x n g x b 1 12 x 2 1 (k ) (k ) (k ) ( k 1) b 23 x 3 b 2 n x n g x2 b 21 x 1 2 ( k 1) (k ) (k ) (k ) b n1 x1 b n 2 x 2 b n,n 1 x n 1 g x n n 因此,在Jacobi迭代法的计算过程中,需同时保留两个
k k
即x是方程组Ax b的解。
引入误差向量
k
(k ) (k ) lim x x lim 0 所以 等价于 k
( k 1)
x
( k 1)
x
由
x ( k 1) Mx ( k ) g
x Mx g
则可得
( k 1)
数值分析第三章线性方程组迭代法

数值分析第三章线性方程组迭代法线性方程组是数值分析中的重要问题之一,涉及求解线性方程组的迭代法也是该领域的研究重点之一、本文将对线性方程组迭代法进行深入探讨。
线性方程组的一般形式为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迭代法、共轭梯度法等。
这些方法都具有不同的特点和适用范围,可以根据问题的具体情况选择合适的迭代法。
高斯-赛德尔法--数值分析线性方程组的迭代解法

实验六、高斯-塞德尔法
一、实验目的
通过本实验学习线性方程组的迭代解法。掌握高斯-赛德尔迭代法编程。
二、计算公式
}
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]);
数值分析线性方程组的迭代解法

数值分析课程实验报告实验名称 线性方程组的迭代解法Ax b =的系数矩阵对角线元素容许误差。
雅可比(Jacobi )迭代法解方程组的算法描述如下:任取初始向量(0)(0)1(xx =1+,并且 1,2,...,n ,计算 11(ni j ii j ib a a =≠-∑()k x ,结束;否则执行④,则不收敛,终止程序;否则转② 迭代法的算法描述)迭代法中,如果当新的分量求出后,马上用它来代替旧的分量,则可能会更快地接近方程组的准确解。
基于这种设想构造的迭代公式,n ,k = (2)算法可相应地从雅可比(Jacobi )迭代法改造得到(Gauss-Seidel)迭代得到的值进一()()()1((1k i ii k k i i x b a x x ωω==+-1,2,,n ,2,k =(3)为松弛因子(显然当1ω=塞德尔迭代公式) ()k ix 通常优于旧值(1)k ix -,在将两者加工成松弛值时,自然要求松弛因子1ω>,以尽量发挥新值的优势,这类迭代就称为逐次超松弛迭代法。
SOR 迭代的关键在于选取合适的松弛因子,松弛因子的取值对收敛速度影响很大,但如何选取最佳松弛因子的问题,至今仍未有效解决,在实际计算时,通常依据系数矩阵的特点,并结合以往的经验选取合适的松弛因子。
练习与思考题分析解答(0)(1,1,1,1)x =[ -0.999976, -0.999976, -0.999976, -0.999976]x =[ -0.99999, -0.999991, -0.999992, -0.999993]x =塞德尔迭代算法的收敛速度要比雅可比迭代算法的收敛速度快SOR 迭代实质上是高斯原理和基本方法相同。
如果选择合适的松弛因子,它能够加快收敛速度。
SOR 迭代算法更加普通,当选取一个合适的松弛因子后收敛速度明显加快。
迭代算法将前一步的结果[ -0.99999, -0.999991, -0.999992, -0.999993]x =[ -0.999992, -0.999993, -0.999994, -0.999995]x =[ -0.999993, -0.999994, -0.999995, -0.999995]x =[ -0.999992, -0.999993, -0.999994, -0.999995]x =[ -0.999999, -1.0, -1.0, -1.0]x =[ -0.999999, -1.0, -1.0, -1.0]x =因为为了保证迭代过程收敛,松弛因子1.3左右。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3)|| x * x ( k )
q
实际计算中,通常利用 x ( k ) x ( k 1) 作为控制迭代的终止条件.不过要注意,
(k ) ( k 1) * (k ) 当 q 1 时, 1 q较大,尽管 x x 已非常小,但误差向量的模 x x
x M 1 Nx M 1b
我们可以构造序列
x ( k 1) B x ( k ) g
若 x ( k ) x * x* B x * g Ax* b 同时: x ( k 1) x* Bx( k ) Bx* B( x ( k ) x*)
(k )
a 22
(a 21 x1
(k )
a 23 x3
(k )
a1n x n
(k )
b2 )
(k )
1 (k ) (k ) (a n1 x1 a n n 1 x n 1 bn ) a nn
• 数值分析
迭代矩阵
x( k 1) (1 ) x( k ) ( D1Lx( k 1) D1Ux( k ) D1b) x( k 1) ( I D1L) x( k 1) ((1 ) I D1U ) x( k ) D1b ( I D1L)1 ((1 ) I D1U ) x( k ) ( I D1L)1 D1b
• 数值分析
定义 称 R( B) ln ( B) 为迭代法的收敛速度. 定理(迭代法收敛的充分条件) 如果方程组 Ax b 的迭代公式为 x ( k 1) Bx ( k ) f ,且迭代矩阵的某一 种范数 || B || q 1 ,则 x (k ) x * 1)迭代法收敛,即对任取 x ( 0) ,有 lim k 2) || x * x ( k ) ||
• 数值分析
写成分量形式,有
( k 1) x1 x 2 ( k 1) ( k 1) xn
(1 ) x1
(k )
1 (k ) (k ) (a12 x 2 a1n x n b1 ) a11
(1 ) x 2 (1 ) x n
际上可采用试算的方法来确定较好的
松弛因子. 经验上可取1.4<<1.6.
• 数值分析
4.4 迭代法的收敛性
(k ) 定义 设有矩阵序列 A( k ) (aij )nn (k 1,2,) 及 A (aij ) nn ,如果
(k ) lim aij aij k
(i, j 1,2,, n)
对Gauss-Seidel迭代格式 引入松弛因子
x( k 1) D1 ( Lx( k 1) Ux( k ) b)
x( k 1) x( k ) ( D1Lx( k 1) D1Ux( k ) D1b x( k ) )
整理得
x( k 1) (1 ) x( k ) ( D1Lx( k 1) D1Ux( k ) D1b)
• 数值分析 4.1 Jacobi迭代法
a11 x1 a1n xn b1 a x a x b nn n n n1 1
x1 x2 xn 1 (b1 a12 x2 a1n xn ) a11 1 (b2 a21 x1 a23 x3 a1n xn ) a22 1 (bn an1 x1 an , n 1 xn 1 ) ann
• 数值分析
( k 1) x1 x2 ( k 1) ( k 1) xn 1 (k ) (k ) (b1 a12 x2 a1n xn ) a11 1 (k ) (k ) (k ) (b2 a21 x1 a23 x3 a1n xn ) a22 1 (k ) (k ) (bn an1 x1 an , n 1 xn 1 ) ann
BG ( D L) 1U , g ( D L) 1 b
• 数值分析
Jacobi iteration 计算x(k+1)时需要x(k)的 所有分量,因此需开 两组存储单元分别存 放x(k)和x(k+1) Gauss-Seidel iteration 计算xi(k+1)时只需要x(k) 的i+1~n个分量,因 此x(k+1)的前i个分量可 存贮在x(k)的前i个分 量所占的存储单元, 无需开两组存储单元.
qk || || x (1) x ( 0) || 1 q
可能很大,迭代法收敛将是缓慢的.
• 数值分析
特别的,Jacobi 迭代法收敛 (BJ ) 1 G-S迭代法收敛 ( BGS ) 1 SOR迭代法收敛 (BSOR ) 1
• 数值分析
定理 证 而 det(B) =det[(D-L)-1 ((1-)D+U)] =det[(E-D-1L)-1 ]det[(1-)E+D-1U)] =(1-)n 于是 若SOR方法收敛, 则0<<2. 设SOR方法收敛, 则(B)<1,所以 |det(B)| =|12… n|<1
则称 { A ( k ) } 收敛于 A ,记为 lim Ak A k
• 数值分析
一些关于收敛的定义及定理
A ( k ) A || A ( k ) A || 0 ( k ) 定理 lim k
定理 设 B R nn ,则 lim B k 0 ( B) 1 k 其中 ( B) 为 B 的谱半径。 定理(迭代法基本定理)设有方程组 Ax b 对于任意初始向量 x ( 0 ) 及任意 f ,解此方程组的迭 代法 x ( k 1) BX ( k ) f 收敛的充要条件是 ( B) 1
i 1 n 1 (k ) (k ) (bi aij x j aij x j ) aii j 1 j i 1
格式很简单:
xi
( k 1)
• 数值分析 4.2 Gauss-Seidel 迭代法
在Jacobi迭代中,使用最新计算出的分量值,即
( k 1) x1 x 2 ( k 1) ( k 1) xn 1 (k ) (k ) (a12 x 2 a1n x n b1 ) a11 1 ( k 1) (k ) (k ) (a 21 x1 a 23 x3 a1n x n b2 ) a 22 1 ( k 1) ( k 1) (a n1 x1 a n n 1 x n 1 bn ) a nn
B k 1 ( x (0) x*)
k数值分析
定义 (收敛矩阵)
Bk 0
称B为收敛矩阵.
定理:Bk 0 (B) 1
即:矩阵B为收敛矩阵当且仅当B的谱半径<1
由 (B)
B
知,若有某种范数
B 1
则迭代收敛.
|1-|<1,
或
0<<2
• 数值分析
定理 设A是对称正定矩阵, 0<<2时,则解方程组 Ax=b的SOR方法收敛.
• 数值分析
注意的问题
(1)Jacobi迭代法和Gauss-Seidel迭代法的 迭代矩阵不同: BJ =D-1(L+U), B G-S = (D-L) -1U (2)Jacobi迭代法和Gauss-Seidel迭代法 的收敛性没有必然的联系: 即当Gauss-Seidel法收敛时,Jacobi法可能不收 敛; 而Jacobi法收敛时, Gauss-Seidel法也可能不收 敛。
有大量的0元素。对于这类大型稀疏矩阵,在用直接
法时就会耗费大量的时间和存储单元。因此,我们有 必要引入一类新的方法:迭代法.
• 数值分析
对方程组 Ax b 做等价变换 x Bx g 如:令A M N ,则 Ax b ( M N ) x b Mx b Nx
xi
( k 1)
n 1 i 1 ( k 1) (k ) ( aij x j aij x j bi ) aii j 1 j i 1
• 数值分析 迭代矩阵
记
A D L U
A=
D
-U
0 a11 D 0 ann
0 0 a21 0 L 0 a a 0 nn 1 n1
BJ D1 (L U ) I D1 A , g D1b
• 数值分析
迭代矩阵
x( k 1) D1 ( Lx( k 1) Ux( k ) b) ( I D1L) x( k 1) D1Ux( k ) D1b x( k 1) ( I D1L)1 D1Ux( k ) ( I D1L)1 D1b x( k 1) ( D L)1Ux( k ) ( D L)1 b
k 0,1,
计算结果:
x (1) (0.7778, 0.9722, 0.9753) ' x (2) (0.9942, 0.9993, 0.9994) ' x (3) (0.9999, 0.9999, 0.9999) ' x (4) (1.0000,1.0000,1.0000) '
• 数值分析
4.3 逐次超松弛迭代法(SOR)
记 则
x ( k ) x ( k 1) x ( k ) x ( k 1) x ( k ) x ( k )
可以看作在前一步上加一个修正量。若在修正量前乘以一个因子
,有
x( k 1) x( k ) x ( k )
x( k 1) x( k ) ( x( k 1) x( k ) )