线性代数方程组的直接解法_赖志柱
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第二章线性代数方程组的直接解法
教学目标:
1.了解线性代数方程组的结构、基本理论以及相关解法的发展历程;
2.掌握高斯消去法的原理和计算步骤,理解顺序消去法能够实现的条件,并在此基础上理解矩阵的三角分解(即LU分解),能应用高斯消去法熟练计算简单的线性代数方程组;
3.在理解高斯消去法的缺点的基础上,掌握有换行步骤的高斯消去法,从而理解和掌握选主元素的高斯消去法,尤其是列主元素消去法的理论和计算步骤,并能灵活的应用于实际中。
教学重点:
1. 高斯消去法的原理和计算步骤;
2. 顺序消去法能够实现的条件;
3. 矩阵的三角分解(即LU分解);
4. 列主元素消去法的理论和计算步骤。
教学难点:
1. 高斯消去法的原理和计算步骤;
2. 矩阵的三角分解(即LU分解);
3. 列主元素消去法的理论和计算步骤。
教学方法:
教具:
引言
在自然科学和工程技术中,许多问题的解决常常归结为线性方程组的求解,有的问题的数学模型中虽不直接表现为线性方程组,但它的数值解法中将问题“离散化”或“线性化”为线性方程组。例如,电学中的网络问题、船体数学放样中建立三次样条函数问题、最小二乘法用于求解实验数据的曲线拟合问题、求解非线性方程组问题、用差分法或有限元法求解常微分方程边值问题及偏微分方程的定解问题,都要导致求解一个或若干个线性方程组的问题。
目前,计算机上解线性方程组的数值方法尽管很多,但归纳起来,大致可以分为两大类:一类是直接法(也称精确解法);另一类是迭代法。例如线性代数中的Cramer法则就是一种直接法,但其对高阶方程组计算量太大,不是一种实用的算法。实用的直接法中具有代表性的算法是高斯(Gauss)消元法,其它算法都是它的变形和应用。
在数值计算历史上,直接法和迭代法交替生辉。一种解法的兴旺与计算机的硬件环境和问题规模是密切相关的。一般说来,对同等规模的线性方程组,直接法对计算机的要求高于迭代法。对于中、低阶(200
n )以及高阶带形的线性方程组,由于直接法的准确性和可靠性高,一般都用直接法求解。对于一般高阶方程组,特别是系数矩阵为大型稀疏矩阵的线性方程组用迭代法有效。
§2.1 基本定理和问题
设具有n 个未知数的n 个方程的线性方程组为
11112211
211222221122n n n n n n nn n n
a x a x a x
b a x a x a x b a x a x a x b +++=⎧⎪+++=⎪⎨⎪⎪++
+=⎩ (2.1)
或
1
n
ij j i j a x b ==∑(1,2,
,i n =) (2.1)’
其矩阵形式可以表示为
Ax b = (2.2)
其中
1112121
22
212
n n n n nn a a a a a a A a a a ⎛⎫ ⎪ ⎪
= ⎪
⎪⎝⎭
12(,,,)T n x x x x = 12(,,
,)T n b b b b =
其增广矩阵为
1,1111212,121
222,112[|]n n n n
n n n n nn a a a a a a a a A A b a a a a +++⎛⎫ ⎪
⎪== ⎪ ⎪ ⎪⎝⎭
(,1i n i a b +=,1,2,,i n =) (2.3) 则方程组(2.1)、(2.1)’或(2.2)和(2.3)是一一对应的。
若用()r A 表示矩阵A 的秩,则有关于线性方程组(2.2)的解的存在性的基本定理(在高等代数或线性代数中有证明):
定理2.1 (1)方程组(2.2)有解的充分必要条件是()()r A r A =; (2)若()()r A r A k n ==<,则方程组(2.2)具有一族解,其解可表示为
()1n k
i i i x x c x -*
==+∑
其中x *为Ax b =的任一特解,()i x 是齐次方程组0Ax =的解,且(1)(2)(),,,n k x x x -线
性无关,i c 为任意常数。
(3)若()()r A r A n ==,则方程组(2.2)有唯一解。
定义 2.1 如果两个方程组的解相同,则称这两个方程组为同解(等价)方程组。
不难证明:将方程组中任意两个方程交换次序,所得方程组和原方程组为同解方程组;将方程组中任一方程的一个倍数加到另一个方程上,所得方程组和原方程组为同解方程组。
用()i E 表示(2.1)的第i 个方程或(2.3)的第i 行,记(2.3)的第i 行与第j 行互换为()()i j E E ↔,而(2.3)的第j 行乘以0α≠加到第i 行记为
()()j i i E E E α+→。这是矩阵的初等变换,相当于[|]A b 左乘一个初等矩阵。同样
的运算符号,我们也理解为方程组(2.1)作相应的变换。经过这些变换后得到的方程组与方程组(2.1)同解(或等价)。
对于线性方程组(2.2)的求解,在理论上并不存在困难。若()r A n =,即A 为非奇异(可逆)矩阵,它的行列式det 0D A =≠,则应用Cramer 法则可求得
i i D
x D =(1,2,,i n =)
其中i D 是用b 代替A 中第i 列而得到的相应的行列式。然而在实际中,当未知数的个数n 比较大时,按Cramer 法则进行计算,其工作量就会大得惊人,因而该方法在实际操作中并不可行。n 阶行列式共有!n 项,每项都有n 个因子,所以计算一个n 阶行列式需要做(1)!n n -⋅次乘法,我们共需要计算1n +个行列式,要计算出i x ,还要做n 次除法,因此用Cramer 法则求解线性方程组(2.2)就要做
2(1)(1)!(1)!N n n n n n n n =+⋅-⋅+=-⋅+
次乘除法(不计加减法)。如10n =时,359251210N =;当20n =时,
209.707310N ≈⨯,可见,在实际计算中Cramer 法则几乎没有什么用处。本章的
主要目的就是研究求解线性方程组(2.2)的有效算法。
某一算法的效率可以用下列两个主要的准则来判断:(1)该算法的计算速度如何?即计算中要设计多少次运算?(2)计算所得到解的精度如何?
这两个准则是针对在计算机上求解高阶方程组而提出的。由于线性方程组阶数很高时求解所需要的计算量极其巨大,因而很自然地提出准则(1)。准则(2)的提出,是由于在实际问题当中舍入误差的影响,可能使计算解产生偏离真实解的不可忽视的误差。特别地,在解高阶方程组时涉及大量的运算,舍入误差潜在地积累有可能造成计算解对真实解的严重偏离。后续章节还要详细地研究误差的影响。在研究(2.2)的数值方法之前,先考察一下求解中会遇到的一些困难,