线性方程组直接法(3)
- 格式:pdf
- 大小:832.34 KB
- 文档页数:23
解线性方程组的直接方法一、高斯消元法高斯消元法是解线性方程组最常用的方法之一、它通过一系列的消元操作,将线性方程组转化为阶梯型方程组,从而求解未知数的值。
1.确定线性方程组的阶数和未知数的个数。
设线性方程组中有n个未知数。
2.将线性方程组写成增广矩阵的形式。
增广矩阵是一个n行n+1列的矩阵,其中前n列是线性方程组的系数矩阵,第n+1列是等号右边的常数。
3.通过初等行变换(交换行、数乘行、行加行)将增广矩阵化为阶梯型矩阵。
具体步骤如下:a.首先,找到第一个非零元素所在的列,将它所在的行视为第一行。
b.将第一行的第一个非零元素(主元)变成1,称为主元素。
c.将主元所在列的其他元素(次元素)变为0,使得主元所在列的其他元素只有主元素是非零的。
d.再找到第一个非零元素所在的列,将它所在的行视为第二行,并重复上述步骤,直到将增广矩阵化为阶梯型矩阵。
4.根据阶梯型矩阵求解未知数的值。
具体步骤如下:a.从最后一行开始,依次求解每个未知数。
首先,将最后一行中非零元素所在的列作为含有该未知数的方程,将该未知数的系数设为1b.将含有该未知数的方程中其他未知数的系数设为0,并对其他方程进行相应的变换,使得该未知数所在列的其他元素都为0。
c.重复上述步骤,直到求解出所有未知数的值。
高斯消元法的优点是简单易懂、容易实现,但当线性方程组的系数矩阵接近奇异矩阵时,计算精度可能会降低。
二、矩阵求逆法矩阵求逆法是解线性方程组的另一种直接方法。
它通过对系数矩阵求逆,然后与常数矩阵相乘,得到未知数的值。
1.确定线性方程组的阶数和未知数的个数。
设线性方程组中有n个未知数。
2.将线性方程组写成矩阵方程的形式,即Ax=b,其中A是一个n阶方阵,x和b分别是n维列向量。
3.求系数矩阵A的逆矩阵A^-1a. 首先,计算系数矩阵A的行列式det(A)。
b. 判断det(A)是否为0,如果det(A)=0,则该线性方程组无解或有无穷多解;如果det(A)≠0,则系数矩阵A可逆。
Hilbert 矩阵H n =[h i,j ]∈R n*n ,其元素h i,j =1/(i+j-1),分别对n=2,3,4…... (1)计算cond(H n )∞,分析条件数作为n 的函数如何让变化?(2)令x=(1,1…..1)T ∈R n ,计算b n =H n *x ,然后用Gauss 消去法或cholesky 方法解方程组b n =H n *x ,解出的解为x , 计算剩余变量r n =b n - H n *x 和误差向量;▽x=x -x 。
(3)分析对每个n ,x 分量的有效数字如何随n 变化,此变化与条件数有何联系。
当n 为多大时绝对误差达到100%(即X 连一位有效数字也没有了)。
解:希尔伯特矩阵是著名的病态矩阵。
n 阶Hilbert 矩阵为⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡-++=)12/(1)1/(1/1)1/(13/12/1/12/11n n n n n H n 其条件数 Cond(H n )∞ 如下表所示Input(‘input n=’); H=hilb(n) Cond(H,inf)随着n 的增大,矩阵条件数迅速增加。
猜测:希尔伯特矩阵条件数以指数规律增长。
即,设矩阵阶数为n ,有Cond(H n ) ∞≈ exp( a n + b )用数据拟合的方法验证。
问题分析:由于选择拟合函数为指数函数,直接列出超定方程组将是非线性的方程组。
为了便于计算,对表中的条件数做对数变换,问题转化为线性拟合问题ln[Cond(H n ) ∞] = a n + b ,( n = 2,3,4,5,6)实际操作时使用MA TLAB 的多项式拟合命令。
线性拟合图形如下线性函数的两个系数分别为a = 3.3216,b = – 3.3474故指数拟合函数为:Cond(H n)∞≈exp(3.3216 n –3.3474)拟合函数的残差向量为r1r2r3r4r50 -9.0000e+001 8.8000e+002 4.0420e+003 -5.9917e+005 MATLAB程序段如下C=[];for k=2:6H=hilb(k);C=[C,cond(H,inf)];endLC=log(C);n=2:6;P=polyfit(n,LC,1)plot(n,LC,'o',n,polyval(P,n))residure=C-exp(polyval(P,n))2. x=(1,1…..1)T∈R n,.,令b=H n x,用高斯消去法求解方程组H n x = b解出x。
线性方程组求解的直接法5.2线性方程组直接解法概述直接解法就是利用一系列公式进行有限步计算,直接得到方程组的精确解的方法.当然,实际计算结果仍有误差,譬如舍入误差,而且舍入误差的积累有时甚至会严重影响解的精度.这是一个众所周知的古老方法,但用在计算机上仍然十分有效.求解线性方程组最基本的一种直接法是消去法.消去法的基本思想是,通过将一个方程乘以或除以某个常数,以及将两个方程相加减这两种手段,逐步减少方程中的变元的数目,最终使每个方程仅含一个变元,从而得出所求的解.高斯(Gauss )消去法是其中广泛应用的方法,其求解过程分为消元过程和回代过程两个环节.消元过程将所给的方程组加工成上三角方程组,所归结的方程组再通过回代过程得出它的解.Gauss 消去法由于添加了回代的过程,算法结构稍复杂,但这种改进的算法明显减少了计算量.直接法比较适用于中小型方程组.对高阶方程组,即使系数矩阵是稀疏的,但在运算中很难保持稀疏性,因而有存储量大,程序复杂等不足.5.3直接解法5.3.1Gauss 消去法Gauss 消去法是一个古老的求解线性方程组的方法,由它改进而来的选主元法是目前计算机上常用的有效的求解低阶稠密矩阵线性方程组的方法.例5.1用Gauss 消去法解方程组1231231232221(5.3.1)1324 (5.3.2)2539(5.3.3)2x x x x x x x x x ⎧++=⎪⎪++=⎨⎪++=⎪⎩解〖JP4〗第1步,式35.3.12⨯-()()加到式(5.3.2)上,式()15.3.1()2⨯-加到式(5.3.3)上,得到等价方程组123232322211(5.4.4)282(5.4.5)x x x x x x x ⎧++=⎪⎪-+=-⎨⎪⎪+=⎩第2步,式()2⨯5.3.4加到式(5.3.5)上得等价的方程组12323322211100(5.3.6)x x x x x x ++=⎧⎪-+=-⎨⎪=⎩第3步,回代法求解方程组(5.3.6),即可求得该方程组的解为32110,1,.2x x x ===-.用矩阵描述其约化过程即为233(2)22221011100100r r r ⨯+⇒⎡⎤⎢⎥--⎢⎥⎢⎥⎣⎦→[]122133(1)3()21()222212221,3241/201111395/20282r r r r r r A b ⨯-+⇒⨯-+⇒⎡⎤⎡⎤⎢⎥⎢⎥=--⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦→.这种求解过程称为具有回代的Gauss 消去法.由此例可见,Gauss 消去法的基本思想是:用矩阵的初等行变换将系数矩阵A 化为具有简单形式的矩阵(如上三角阵、单位矩阵等),而三角形方程组是很容易回代求解的.一般地,设有n 个未知数的线性方程组为11112211211222221122n n n n n n nn n na x a x a xb a x a x a x b a x a x a x b +++=⎧⎪+++=⎪⎨⎪⎪++=⎩L L MM M L (5.3.7)1212)(,,)(,,)T T ij n n n n A a X x x x b b b b ⨯===L L (,,,则方程组(5.3.7)化为AX b =.方便起见,记()(1)det 0A AA ==≠,(1)b b =,且()1A的元素记为()()11,ij a b ,的元素记为()1i b ,则消去法的步骤如下:第1步:1110a≠(),,计算(1)11(1)11(2,3,4),i i a m i n a ==L 用()1i m -乘方程组(5.3.7)中的第1个方程加到第i个方程中()2,3,i n =L ,即进行行初等变换()112,3,i i i R m R R i n -⋅→=L ,消去第2个到第n个方程中的未知数1,x ,得等价方程组111121(2)(2)(2)22222(2)(2)(2)2inn n n nn n x a a b x a a b ⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦LMM LM M L (5.3.8)记为(2)(2)A X b =,其中(2)(1)(1)(2)(1)(1)1111(,2,3),2,3,ij ij i j i i i a a m a i j n b b m b i n =-==-=L L ,,第k 步()1,2,1k n =-L:继续上述消元过程.第1步到第1k -步计算已完成,且得到与原方程组等价的方程组(1)(1)(1)(1)1112111(2)(2)(2)222223()()()()()()nn k k k kkkn k n k k k nk nn n a a a b x a a b xx aa b x a a b ⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎢⎥⎢⎥⎣⎦⎣⎦L L LLOM L M MMM L(5.3.9)记为()(()K k A X b =,进行第k 步消元:设()0k kka≠,计算乘数()()(1,)k ikk ik kka m k k n a ==+L ,用ik m -乘方程组(5.3.9)中第k 个方程加到第i 1)i k n =+L (,,,个方程上消去方程组(5.3.9)中第i 1)i k n =+L (,,个方程的未知数k x ,得到与原方程组等价的方程组:(1)()()(1)()()(1)(1)()(,1,)( 1.)k k k ij ij ik kj k k k i i ik k k k k k a a m a i j k n b b m b i k n A A k b b k ++++⎧=-=+⎪=-=+⎨⎪⎩L L ()与前行元素相同,与前个元素相同 (5.3.10) 记为(1)(1)k k A X b ++=其中(1)(1,k k A b ++)中元素计算公式为(1)()()(1)()()(1)(1)()(,1,)( 1.)k k k ij ij ik kj k k k i i ik k k k k k a a m a i j k n b b m b i k n A A k b b k ++++⎧=-=+⎪=-=+⎨⎪⎩L L ()与前行元素相同,与前个元素相同 (5.3.11)重复上述过程,且设()0(1,2,1)k kk a k n ≠=-L ,共完成1n -步消元计算,得到与方程组(5.3.7)等价的三角形方程组1111211(2)(2)(2)22222()()n n n n n nn n x a a b x a b ⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦LMOM M (5.3.12)再用回代法求方程组(5.3.12)的解,计算公式为()()()()1()(),(1,2,1)n n n nn n i i i ij j j i i i ii b x a b a x x i n n a =+⎧=⎪⎪⎨-⎪==--⎪⎩∑L (5.3.13)元素()k kka 称为约化的主元素.将方程组(5.3.7)化为方程组(5.3.12)的过程称为消元过程.方程组(5.3.12)的求解过程(5.3.13)称为回代过程.由消元过程和回代过程求解线性方程组的方法称为Gauss 消去法.定理5.1(Gauss 消去法)设AX b =。
第二章线性方程组的直接法一、 教学目标及基本要求通过对本章的学习,使学生掌握线性方程组的直接法求解。
二、 教学内容及学时分配本章主要介绍线性方程组的直接法。
具体内容如下:第 第31-32学时讲授内容:追赶法、误差分析。
三、 教学重点难点1. 教学重点:消去法、追赶法。
2. 教学难点:消去法。
四、 教学中应注意的问题多媒体课堂教学为主。
适当提问,加深学生对概念的理解。
五、正文直接法所谓直接法,就是经过有限步算术运算,可求出方程组精确解的方法(若计算过程中没有舍入差)。
但实际计算中由于舍入误差的存在和影响,这种方法也只能求得线性方程组的 近似解,如何避免舍入误差的增长是设计直接法时必须考虑的问题。
本章将介绍这类方法中最基本的高斯(Gauss )消去法和矩阵分解法。
由于其准确性和可靠性,这类方法是解除稠 密线性方程组的有效方法。
最近直接法在求解较高阶稀疏线性方程组方面也取得了较大的进 展。
§2.1 消去法1约当消去法例1运用消去法求解方程组4x 1 2X 2 5X 34 (1)X 1 2X 2 71)将方程(1)的第一个方程中 X 1的系数化为1,并从方程组(1)的其余方程中消去 X 1 , 得:29-30学时讲授内容:消去法。
2x 1 x 2 3x3 1(7)x 1 0.5X 2 1.5x 3 0.54 X 2 X 32 (2)2.5X 21 .5X 3 6.52)将(2)中的第二个方程中 X 2的系数化为1,从其余方程中消去 X 2X 1 1 .375X 3 0.75X 2 0.25X 3 0.5(3)0.875X 3 5.25最后将方程(3)中第三个方程中X 3的系数化为1,从其余方程中消去X 3X 1 9 X 21 X 36上述算法就是所谓的约当消去法, 特点:每一步仅在一个方程中保留某个变元,而从其余各个方程中消去这个变元,最后,每个方程都变为仅含一个变元的形式, 从而得出所求的解。