当前位置:文档之家› 第五章解线方程组的直接方法

第五章解线方程组的直接方法

第五章解线性方程组的直接方法⏹预备知识⏹消元法⏹矩阵分解法⏹追赶法⏹误差分析线性代数是数值计算方法的基础,学习它对数值计算方法其它内容的学习会有很大的帮助。

无论是插值公式的建立,还是微分方程的离散格式的构造,其基本思想都是转化为代数问题来处理,即归结为解线性方程组。

MATLAB的强大功能是建立在矩阵和向量运算基础上的,线性代数的学习也可以大大提高对MATLAB的掌握程度。

线性方程组的基本解法:直接解法:经过有限步算术运算,在不考虑舍入误差的情况下求得方程组的精确解;迭代解法:用某种极限过程逐步逼近方程组的精确解。

5.1 预备知识: 矩阵和向量及线性方程组的解方阵:m=n 的矩阵;零矩阵:所有元素都为0的矩阵。

在MATLAB中零矩阵由zeros 命令定义。

如A=zeros(m,n)定义一个m×n 零矩阵,n×n 零矩阵可以用命令A=zeros(n)定义。

单位矩阵:所有对角元为1而其余元素均为0的方阵。

单位矩阵记为I。

在MATLAB 中单位矩阵由eye命令定义。

如A=eye(n)定义一个n阶单位矩阵。

元素都是1的矩阵:在MATLAB中元素都是1的矩阵由ones命令定义。

如A=ones(m,n)定义一个m×n阶的元素都是1的矩阵。

矩阵的加法和减法:行列数相同的矩阵之间才可以进行加法和减法。

矩阵的乘法:若A的行数和B的列数相等,则它们可以相乘C=AB。

其中C的第i 行第j列元素等于A的第i行和B的第j列对应元素乘积之和。

逆矩阵:若两个方阵A和B满足:AB=I且BA=I,则称A和B互为逆矩阵。

在MATLAB 中M的逆矩阵由inv(M) 命令计算。

对于任一非奇异矩阵都可用inv命令计算其逆矩阵。

若MATLAB拒绝计算一个方阵的逆矩阵,则此矩阵一定是奇异的。

一个奇异矩阵的行列式是0(或者至少有一行(列)可以用其它行(列)通过多次加法和减法表示)。

行列式:方阵A的行列式是一个标量值,用det(A)或|A|表示。

在MATLAB中矩阵A的行列式由det(A)命令计算。

如d =det (A )计算一个n 阶方阵A 的行列式。

特征值和特征向量:在MATLAB 中用eig 函数计算矩阵A 的特征值和特征向量。

如D =eig(A)计算方阵A 的特征值向量,而[V,D]=eig(A)则计算V 为特征向量,D 为特征值组成的对角矩阵。

矩阵运算的性质:设A ,B ,C ,…是矩阵,p,q,r,…是标量,而且对应矩阵运算有定义,则A(BC)=(AB)C IA =AI =AA(B +C)=AB +AC (A +B)C =AC +BC P(A +B)=pA+pB p(AB)=(pA)B=A(pB) A+B=B+A A+0=0+A=A A+(B+C)=(A+B)+C p(qA)=(pq)A (AB)T =B T A T (AB)-1=B -1A -1 det(AB)=det(A)det(B)正定矩阵及其性质:……。

给定下列n 元线性方程组⎪⎪⎩⎪⎪⎨⎧=+++=+++=+++nn nn n n n n n n b x a x a x a b x a x a x a b x a x a x a ΛΛΛΛΛ22112222212111212111 矩阵形式 b AX = 线性方程组解唯一的条件:0||≠A 。

定理5.1.1(线性方程组的初等运算) 下面三种变换可以将一个线性方程组变成另一个等价线性方程组:交换变换:对调方程组的任意两个方程; 比例变换:用非零常数乘某一个方程;替换变换:将某一个方程乘一个常数,再加到另一个方程上去。

定理5.1.2(矩阵的初等行变换)对一个线性方程组的增广矩阵进行如下的变换可得到一个等价的线性方程组的增广矩阵:交换行变换:对调任意两行; 比例行变换:用非零常数乘某一行;替换行变换:将某一行乘一个常数,再加到另一行上去。

初等矩阵及其性质:……。

5.2 消去法直接法:假设计算过程中不产生舍入误差,经过有限次运算可求得方程组的精确解。

思路:将线性方程组变形成等价的三角方程组。

最基本的直接法就是消去法。

5.5.1.高斯消去法思路:先逐次消去变量,将方程组化解成同解的上三角方程组,此过程称为消去过程;然后按方程组相反顺序求解上三角方程组,得到原方程组的解,此过程称为回代过程。

一般地,对于n阶线性方程组:⎪⎪⎩⎪⎪⎨⎧=+++=+++=+++nn nn n n n n n n b x a x a x a b x a x a x a b x a x a x a ΛΛΛΛΛ22112222212********* 矩阵形式 b AX = (5.5.1) 消元过程:第一步:用第1个方程乘上乘数-1,11,a a i 分别加到第i(i=2,3,…,n)个方程上去,从而消去第i 个方程的首项,方程组(5.3.1)变为下列形式:a 1,1x 1+ a 1,2x 2 + … + a 1,n x n =b 1)1(2,2a x 2 + … + )1(,2n a x n =)1(2b (5.5.2)……)1(2,n a x 2 + … + )1(,nn a x n =)1(n b 其中 )1(1,i a =1,11,a a i , j=2,3,…,n;)1(,j i a = a i,j –)1(1,i a * a 1,j ;)1(i b = b i –)1(1,i a * b 1 , i=2,3, … , n, j=2,.3,…,n.若经过k-1 步后,从方程组(5.5.1)得到下列形式的方程组:)1(11a x 1+)1(12a x 2 + … + )1(1n a x n = )1(1b)2(2,2a x 2 + … +)2(,2n a x n = )2(2b…… (5.5.3))1(1,1---k k k a x k-1+ … +)1(,1--k nk a x n = )1(-k k b ………)1(1,--k k n a x k-1+ … +)1(,-k nn a x n =)1(-k n b 则对第k 列进行消元可将变为如下形式:)1(11a x 1+)1(12a x 2 + … + )1(1n a x n = )1(1b)2(2,2a x 2 + … +)2(,2n a x n = )2(2b………… (5.5.4))(,k k k a x k + … +)(,k n k a x n = )(k k b………)(,k k n a x k + … +)(,k n n a x n =)(k n b其中: )(,k ki a=)1(1,1)1(1,-----k k k k k i aa , i=k,…,n,)(,k j i a = )1(,-k j i a –)(,k k i a *)1(,-k j k a ;)(k i b = )1(-k i b –)(,k k i a *)1(-k k b , i=k, … , n, j=k,…,n.经过(n-1)步消元后,最后从(5.5.1)可得到一个上三角方程组:)1(11a x 1+)1(12a x 2 + … + )1(1n a x n = )1(1b)2(2,2a x 2 + … +)2(,2na x n = )2(2b …………………… (5.5.5))1(1,1---n n n a x n-1 +)1(,1--n nn a x n = )1(1--n n b )(,n n n a x n = )(n n b回代过程:逐步回代得到解:x n = )(,)(n nn n na bx i = ()(i ib -∑+=ni j 1)(,i j i a x j ) / )(,i i i a , i=n-1,n-2, …, 1. (5.5.6)上述方法称为高斯消去法。

高斯消去法进行的条件:由以上过程有:0det )()2(22)1(11≠=n nn a a a A Λ,其中)1(-k kk a 称为约化主元素。

定理 5.5.1 设n n ij a A ⨯=}{非奇异,且各阶顺序主子式0≠∆k (n k ,,2,1Λ=),则0)(≠k kk a ,从而高斯顺序消元法可以进行,且得到方程组(5.5.1)的解为(5.5.6).高斯消元法约化主元素0)(,≠k k k a (k=1,2,…,n )⇔ A 的顺序主子式0≠k D (k=1,2,…,n)定义5.3.1 称n 阶方阵A =(a i,j )n 是对角占优的,若其主对角元素的绝对值大于同行其它元素绝对值之和∑≠=nkj j ,1|a k,j | < |a k,k |, k=1,2,…,n定理5.5.2 设方程组(5.5.1)是对角占优的,则在高斯消去法的消元过程中约化主元素0)1(≠-k kka (k=1,2,…,n-1). 练习1 在MATLAB 上用高斯消去法求解方程组:-0.04 x 1 + 0.04 x 2 + 0.12 x 3 = 3, 0.56 x 1 - 1.56 x 2 + 0.32 x 3 = 1,0.24 x 1 + 1.24 x 2 - 0.28 x 3 = 0,gauss.m(自编程作业)>>A=[-0.04 0.04 0.12;0.56 –1.56 0.32;0.24 1.24 –0.28]; >>B=[3;1;0]; >>X=gauss(A,B)高斯消去法的计算时间复杂性:高斯消去法需要次31(n 3+3n 2-n)乘除法和61(2 n 3+3n 2-5n)次减法,即它的计算时间复杂性为O(n 3)。

高斯消去法的缺点:考察高斯消去法的消去过程,我们可以看出为使消元过程顺利完成,)(,k k k a (k=1,2,…,n )必须全不为0。

但即使在消元过程中主元素)(,k k k a (k=1,2,…,n )全不为0,也不能保证能够避免在计算过程中产生巨大的误差。

因为在计算过程中,若主元素的绝对值过小,则舍入误差的影响会严重地损失精度。

提出主元法是为了控制舍入误差。

5.5.5.选主元素消元法(以避免a (k)k,k = 0 或过小的情形) 例2 考察方程组: 10-5 x +y =1 x + y =2 精确解为 x=100000/99999, y=99998/99999.若使用四位浮点十进制运算进行消元 10-5 x +y =1;-105 y =-105. % 105-1≈105 利用回代过程得x=0, y=1 若用消去法求解方程组:x + y =5. 10-5 x +y =1;则可得 x=1 , y=1。

显然第一个结果严重失真,而第二个结果则比较精确。

究其原因,就是由于消元过程中主元素的绝对值过小。

相关主题