线性代数方程组数值解法及MATLAB实现综述
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
线性代数方程组数值解法及MATLAB 实现综述
廖淑芳 20122090 数计学院 12计算机科学与技术1班(职教本科) 一、分析课题
随着科学技术的发展,提出了大量复杂的数值计算问题,在建立电子计算机成为数值计算的主要工具以后,它以数字计算机求解数学问题的理论和方法为研究对象。其数值计算中线性代数方程的求解问题就广泛应用于各种工程技术方面。因此在各种数据处理中,线性代数方程组的求解是最常见的问题之一。关于线性代数方程组的数值解法一般分为两大类:直接法和迭代法。
直接法就是经过有限步算术运算,可求的线性方程组精确解的方法(若计算过程没有舍入误差),但实际犹如舍入误差的存在和影响,这种方法也只能求得近似解,这类方法是解低阶稠密矩阵方程组级某些大型稀疏矩阵方程组的有效方法。直接法包括高斯消元法,矩阵三角分解法、追赶法、平方根法。
迭代法就是利用某种极限过程去逐步逼近线性方程组精确解的方法。迭代法具有需要计算机的存储单元少,程序设计简单,原始系数矩阵在计算过程始终不变等优点,但存在收敛性级收敛速度问题。迭代法是解大型稀疏矩阵方程组(尤其是微分方程离散后得到的大型方程组)的重要方法。迭代法包括Jacobi 法SOR 法、SSOR 法等多种方法。
二、研究课题-线性代数方程组数值解法 一、 直接法 1、 Gauss 消元法
通过一系列的加减消元运算,也就是代数中的加减消去法,以使A 对角线以下的元素化为零,将方程组化为上三角矩阵;然后,再逐一回代求解出x 向量。
1.1消元过程
1. 高斯消元法(加减消元):首先将A 化为上三角阵,再回代求解。
11121121222212n n n n nn n a a a b a a a b a a a b ⎛⎫ ⎪ ⎪ ⎪ ⎪⎝⎭ (1)(1)(1)(1)(1)11121311(2)(2)(2)(2)222322(3)(3)(3)3333()()000000n
n n
n n nn n a a a a b a a a b a a b a b ⎛⎫ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪⎝⎭ 步骤如下:
第一步:1
11
1,2,,i a i i n a -⨯
+=第行第行
11121121222212
n n n n nn
n a a a b a a a b a a a b ⎛⎫
⎪ ⎪ ⎪
⎪⎝⎭ 1112
11(2)(2)(2)22
22
(2)(2)(2)2
00n
n
n nn
n a a a b a a b a a b ⎛⎫ ⎪ ⎪ ⎪ ⎪⎝⎭
第二步:(2)2
(2)222,3,
,i a i i n a -⨯+=第行第行
111211(2)(2)(2)2222(2)(2)(2)2
00n n
n nn
n a a a b a a b a a b ⎛⎫ ⎪ ⎪
⎪ ⎪⎝⎭ 1112
1311(2)
(2)(2)(2)222322
(3)(3)(3)33
33(3)(3)(3)3
00000n
n n
n nn
n a a a a b a a a b a a b a a b ⎛⎫ ⎪ ⎪ ⎪
⎪ ⎪ ⎪⎝
⎭
类似的做下去,我们有:
第k 步:()
()k ,1,
,k ik
k kk
a i i k n a -⨯+=+第行第行。
n -1步以后,我们可以得到变换后的矩阵为:
11121311(2)(2)(2)(2)222322
(3)(3)(3)3333()()000000n n n
n n nn n a a a a b a a a b a a b a b ⎛⎫
⎪
⎪ ⎪ ⎪
⎪ ⎪⎝
⎭
注意到,计算过程中()
k kk a 处在被除的位置,因此整个计算过程要保证它不为0。 所以,Gauss 消元法的可行条件为:()
0k kk
a ≠。 就是要求A 的所有顺序主子式均不为0,即
11
11
det 0,1,,i i ii a a i n a a ⎛⎫ ⎪
≠= ⎪ ⎪⎝⎭
因此,有些有解的问题,不能用Gauss 消元求解。
另外,如果某个()
k kk a 很小的话,会引入大的误差。
例 用Gauss 消去法解方程组:
(1)1234123341518311151111631112x x x x -⎛⎫⎛⎫⎛⎫ ⎪ ⎪ ⎪---- ⎪ ⎪ ⎪= ⎪ ⎪ ⎪ ⎪ ⎪ ⎪-⎝⎭⎝⎭⎝⎭ (1)对增广矩阵进行初等变换
122133144
3
()21
()121
()4
123
34153715123341505
22218311155321911116044343111277
70
0444E E E E E E E E E +→-+→-+→-⎛⎫
⎪⎛-⎫ ⎪- ⎪ ⎪---- ⎪ ⎪−−−−−−→ ⎪ ⎪ ⎪ ⎪
⎪-⎝⎭ ⎪-- ⎪
⎝
⎭
233244344
5
()6
77()()6
11
123341233
4151537370505151522222211
29
11
29
00
0111136367357910000
003633E E E E E E E E E +→+→-+→--⎛⎫⎛⎫
⎪
⎪ ⎪ ⎪-- ⎪ ⎪ ⎪ ⎪−−−−−→−−−−−−→ ⎪ ⎪
⎪
⎪ ⎪
⎪
⎪ ⎪⎝⎭⎝
⎭
得等价方程组
123423434412334153715
52221129
1136
910
33x x x x x x x x x x -++=⎧⎪
⎪-++=⎪⎪
⎨+=⎪⎪
⎪=⎪⎩ 回代得40x =,33x =,22x =,11x =。
第一步:将(1)/3使x 1的系数化为1,再将(2)、(3)式中x 1的系数都化为零,即由(2)-2×(1)(1)得
)
1(321)1( (231)
32=++x x x )1()2( (04)
2=+x x