数值分析读书报告报告汇编
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数值分析线性方程组迭代解法的比较
姓名:xxxx
班级:xxxxxx
流水号:xxxx
学号:xxxx
指导老师:xx
线性方程组迭代解法的比较
1、问题的提出
科学研究与生产实践中许多问题都可归结为线性方程组的求解,高效求解线性方程组成为了许多科学与工程计算的核心。
数值分析中,线性方程组的数值解法主要分为直接法和迭代法两大类。直接法是用有限次计算就能求出线性方程组“准确解”的方法(不考虑舍入误差),但是在运用此法求解n 元线性方程组时,其所需的乘法运算次数随n 的增大而明显增加。当n 稍大时,其运算量非常大,所以在实际工作中很少运用;迭代法是一种逐次逼近的方法,它是由线性方程组构造出迭代计算公式,然后以一个猜测的向量作为迭代计算的初始向量逐步迭代计算,来获得满足精度要求的近似解。但是迭代法不能通过有限次算术运算求的方程组的精确解,而只能逐步逼近它。因此,凡是迭代法都存在收敛性和精度控制的问题。
本文主要讨论目前常用的3种解线性方程组的迭代方法:Jacobi 迭代法(J 法)、Gauss-Seidel 迭代法(GS 法)和逐次超松驰法(SOR 法)。从迭代法的收敛性、迭代法的收敛速度、每迭代一次所需的计算量及实际计算时需要的存贮量等四个方面进行了比较和误差估计,并根据比较和分析作了总结。
线性方程组的直接解法,用于阶数不太高的线性方程组效果较好。实际工作中有的线性方程组的阶数很高,用直接法求解效果不是很好。而迭代法与直接法不同,它是通过从某些初始向量出发,用设计好的步骤逐次计算出近似解向量
()k x ,从而得到向量序列(0)(1)(2){,,,}x x x 。
2、常用迭代方法的介绍及比较
2.1常用迭代方法的介绍
设有线性代数方程组:
11111
11
n n n nn n n
a x a x
b a x a x b +
+=⎧⎪⎨
⎪++=
⎩
或记为 b Ax = (1.1)
其中[]
n n ij R a A ⨯∈=,()T
n x x x ,...,1=,()T
n b b b ,...,1=,A 为奇异矩阵,下面主要讨
论的3种解线性方程b Ax =,的迭代方法的迭代格式如下: Jacobi 迭代法的计算公式为: 迭代矩阵
记A D L U =--
1100nn a D a ⎛⎫ ⎪=
⎪ ⎪⎝
⎭
211
1
00
00n nn a L a a -⎛⎫ ⎪- ⎪
⎪= ⎪ ⎪ ⎪--⎝
⎭ 121100000n n n a a U a ---⎛⎫
⎪
⎪ ⎪= ⎪
-
⎪
⎪⎝
⎭
易知,Jacobi 迭代有
()D L U x b --= ()Dx L U x b =++
11()x D L U x D b --=++
11100 B () , D L U I D A f D b ---∴=+=-=,0B 是Jacobi 迭代法的迭代矩阵。 得到Jacobi 迭代法的计算公式:
()()()(){}
()()00001211,,...,1
T
n n k k i i ij j j ii i j x x x x x b a x a +=≠⎧=⎪
⎪
⎛⎫⎨ ⎪
⎪=- ⎪⎪ ⎪⎝⎭⎩
∑ (1.2) Gauss-Seidel 迭代法计算公式为:
()()()(){}
()()()00001211111,,...,
1T n i n k k k i i ij j ij j j j i ii x x x x x b a x a x a -++==+⎧=⎪⎪
⎨⎛⎫⎪=-- ⎪
⎪⎝⎭⎩
∑∑ (1.3) 迭代公式的矩阵形式为:
()()1k k x Gx f +=+
其中:()1
G D L U -=-, ()1
f D L b -=-,称G 为Gauss-Seidel 迭代方法的迭代矩阵。 SOR 方法的计算公式:
()()()
()()()()
⎪⎪⎩
⎪⎪⎨⎧⎪⎪⎭⎫ ⎝⎛--+-==∑∑=+-=+ii n j k j ij k i j ij i k i k i T n
a x a x a
b x x x x x /1,
,11j 1110010ωω)( (1.4) (1.2~1.4式中, ,1,0;,2,1==k n i 为迭代次数;ω为松弛因子)
2.2 常用迭代方法的比较
评判和比较各种迭代法的标准可局限于其自身的性质,主要依据迭代法的收敛性、迭代法的收敛速度、每迭代一次所需的计算量、实际计算时需要的存贮量。 Jacobi 迭代法公式在用计算机计算时,计算x (k +1)时需要x (k )的所有分量,而由Gauss —Seidel 迭代公式(1.3)可知,计算()1+k x 的第i 个分量()1+k i x 时,利用了已经计算出的最新分量()1+k j x (1,,2,1-=i j )。Gauss —Seidel 迭代法可看作Jacobi 迭代法的一种改进。
由(1.2)式可知,Jacobi 迭代法计算公式简单,每迭代一次只需计算一次矩阵和向量的乘法,且计算过程中原始矩阵A 始终不变.其计算量为:至多需要2n 次乘(除)法运算,()1-n n 次加(减)法运算,实际计算时一般需要两组存贮单元,以存放()k x 和()1+k x 。
例2.1 用Jacobi 迭代法解方程组
1231231
231023
210152510
x x x x x x x x x --=⎧⎪
-+-=⎨⎪--+=⎩ 解:解出123,,x x x :