当前位置:文档之家› 消元法解线性方程组

消元法解线性方程组

消元法解线性方程组
消元法解线性方程组

消元法解线性方程组

学校:青海师范大学

院系:数学系

专业:数学与应用数学

班级:10B

指导教师:邓红梅

学号:20101611218

姓名:梅增旺

摘要:线性方程组在数学的各个分支,在自然科学,工程技术,生产实际中经常遇到,而且未知元的个数及方程的个数可达成百上千,因此它的理论是很重要的,其应用也很广泛。本篇将就解线性方程组在此做一浅谈,以消元法为主要方法。消元法是解一般线性方程组行之有效的方法,早在中学大家都已经有接触,消元法的基本思想是通消元变形把方程组化成容易求解的同解方程组进行求解。

关键字:线性方程组消元法求解

Abstract: linear equations in various branches of mathematics, natural science,engineering technology, often encountered in actual production, and the

unknown element number and the number of equations can

be hundreds, so itis important in the theory, its application

is very extensive. This article on thesolution of linear equations based on a discussion, mainly by means ofelimination method. Elimination method is the general linear equations ofeffective early in high school, everyone has

a contact, the basic idea ofelimination method is through

the elimination of the equations of deformationinto easy to solve with the solution of equations.

Keywords:elimination method for solving linear equations

正文:

我们主要探讨一下在复数域上用高斯(C.F.Gauss,1775--1855)消元法解线性方程组(以下我们统称线性方程组)。 先梳理一下基本知识:

1. 一般地,含有n 个未知量、有m 个方程式组成的方程组

a x a x a x

b a x a x a x b a x a x a x b n n n n m m mn n m

11112211211222221122+++=+++=+++=??????? (1)称为一个n 元线性方程组。其中系数a ij ,常数b j 都是已知数,x i 是未知量(也称为未知数)。

2.利用矩阵来讨论线性方程组的解的情况或求线性方程组的解是很方便的。因此,我们先给出线性方程组的矩阵表示形式。 线性方程组(1)的矩阵表示形式为:

AX = B

其中

A = ????????????mn m m n n a a a a a a a a a 2122221

11211,X = ????????????n x x x 21,B = ?????

???????n b b b 21

称A 为方程组(1)的系数矩阵,X 为未知矩阵,B 为常数矩阵,将系数矩阵A 和常数矩阵B 放在一起构成的矩阵][B A =

????????????m mn

m m n n b b b a a a a a a a a a 212122221

11211 称为方程组(1)的增广矩阵。

3.矩阵的初等变换:

(1)交换矩阵的两行(列);

(2)用一个不等于零的数乘矩阵的某一行(列),即用一个不等于零的数乘矩阵的某一行(列)的每一个元素;

(3)用某一数乘矩阵的某一行(列)后加到另一行(列),即用某一数乘矩阵的某一行(列)的每一个元素后加到另一行(列)的对应元素上。

4.阶梯形矩阵,它的特点是:

(1)自上而下的各行中,第一个非零元素左边零的个数随行数增加而增加;

(2)矩阵的零行(如果有的话)都在矩阵的下面。

5.定理 若用初等行变换将增广矩阵][B A 化为][D C ,则AX = B 与CX = D 是同解方程组。

下面给出线性方程组的解法:用初等行变换将方程组的增广矩阵化成阶梯形矩阵(最简形),再写出该阶梯形矩阵所对应的方程组,逐步回代,求出方程组的解。因为它们为同解方程组,所以也就得到了原方程组的解。这种方法被称为高斯消元法,

具体步骤:

(1)写出线性方程组的增广矩阵。

(2)用行的初等变换将增广矩阵化为行最简形(阶梯形)。 在化的过程中,如果出现第一类情况,则原方程无解。

不然的话,必然得到一个行最简形矩阵。

(a).如果它属于第二类,则原方程组有唯一解。

(b).如果它属于第三类,则原方程组有无穷多解,选好自由变量,然后用一般解形式表示原方程组的全部解。

注:

第一类:有某一行,它的最右边的一个元不为零,该行的其余元都为零,以这个矩阵为增广矩阵的线性方程组中,该行的方程不能成为等式,所以方程组无解。见下例(1).

第二类:不属于第一类,并且非零行的个数等于未知量的个数,这时方程组有唯一解。见下例(2)<1> <2> <3>.

第三类:如果不属于第一类,并且非零行的个数小于未知量的个数,这时取自由变量,得方程组有无穷多解。见下例(3)。

下面举例具体说明

例(1):???

??=-++=-+-=--+82226353634321

43214321x x x x x x x x x x x x

解:写出增广矩阵????

??????82-21263-51-361-1-31第一行乘以(-3)加到第二行;第一行乘以(-2)加到第三行,得??????????4-045-012-0810-061-1-31 第二行乘以21减到第三行,得????

??????2000012-0810-061-1-31 从最后一个矩阵可得对应的阶梯形线性方程组为:

??

???=-=+-=--+201281063224321x x x x x x 由此知属于第一类,因此这个线性方程组无解。

(2)这类方程组很常见,我们用一般消去法逐一说明。高斯消去法的使用类似第一三类,读者可自行参阅得到。下面我们分几种情况来讨论。

<1>m=n=1

这种情况非常简单,不采用消元法,具体采用去分母,去括号,移项,合并同类项,系数化为1几个步骤即可得到方程的解。即:

凡是一元一次方程都可划成形如:ax+b=0,或ax=-b,则得解x=-a

b . 例如:求解方程3

1313321x -+=--+x x 。 按上面法则得到3(x+1)-18-2x=6+2x-2

3x+3-18-2x=6+2x-2

3x-2x-2x=6-2-3+18

-x=19

x=-19

<2>m=n=2

这种情况有两种方法来消元。

1. 代入消元:由方程组的一个方程求出一个未知数对其他未知数的表达式,而把这个表达式带入其他方程,所获得的方程组与原方程组同解。

设有一组一元一次方程,把每个方程的未知项移到方程左边,已知项移到方程右边,合并同类项以后得到如下形式的方程:

?

??=+=+'''ax c by ax c

by (1) 假设四个系数a,b,a ’,b ’中有一个不为0,例如a 不为0,由第一个方程求出x 对y 的表达式,获得方程组

?????=+=--'

''0x c y b x a a by c (2), 与(1)同解。这时,把由第一个方程得到的x 的表达式代入第二个方程,得

???

????=+--='''x c by a by c a a by c (3)

也与(1)同解,此时,只需求'''c by a

by c a =+-这个只含未知数y 的一元一次方程,然后将解得的y 的值代入a

by c x -=

就可得到x 的值,即解得了未知数x 、y 。 同理,我们也可由x 写出y 的表达式进行代入求解。

注:实际解题中我们选取表达式较为简单的量代入。 例:解方程组???

????+=+--=+321313y 1-x 2x y x x 由第一个方程求出32y x -=,代入第二个方程,即求出7

10y -=,再将y 的值代入第一个方程得78=x ,即方程的解 ???

????-==71078y x 2. 加减消元法

设k 是一个不等于0的数,h 是一个任意的数,两个方程

A=0,B=0 (1)

的方程组与下面的方程组同解

hA+kB=0,A=0 (2)

凡是(1)组的解,即使A 和B 等于零,显然使hA 和kB 也等于零,因而满足方程(2)。反之,凡是(2)的解,即使A 和hA+kB 等于零,即使kB 等于零,但k 不等于零,故B 等于零,因而满足方程组(1)。

还是以方程组?

??=+=+'''ax c by ax c

by (1) 为对象。只要b 不为0,原方程与下面的方程同解

?

??=-+--+=-+0)'''()('0ax c y b x a b c by ax b c by (2) 但方程组(2)的第二个方程不再含有y ,并且可以写成

()0)''('ab'=---bc cb x ba 。

如果ab ’-ba ’不等于零,我们便能求出x 的一个而且唯一的值。把这个 值代入方程组(2)的第一个方程,就求出y 的一个而且唯一的值,这样就得到方程唯一的一组解

''''ba ab bc cb x --=,'

'''ba ab ca ac y --= 我们也可以这样替代方程组(1)的同解方程组(a ≠0),直接求出y 的值:

?

??=-++-+-=++0)'''()('0ax c y b x a a c by ax a c by 此方程组的第二个方程不再含有x 且可以写成

0)''('ab'=---ca ac y ba )(

由此可以解出y 同上的解,同理可解得方程组同上的解。

注:一般解题中先观察两个方程,对应系数有倍数关系多采用加减消元法。

例:解方程组 ???

????+=+--=+321313y 1-x 2x y x x 首先,对方程进行移项,含未知数的项移到左边,已知项移到右

边,然后去分母,得 ?

??=-=+422

3y x y x 其次,第一个方程乘以2,然后分边对应相加,消去y ,得

87=x

从而 7

8x = 将x 代入任意一个方程解得7

10y -= 我们也可以消去x,解出y 代入任意一个方程解得x.

注:也可以由克拉默(Gramer)公式获得。

<3>m=n ≧3的情况

m=n ≧3这种情况可由m=n=2的情况推广得到,代入消元法主要是层层代入,然后又层层代回;加减消元法可推广得到贝儒(Bezout )法,这里不再详述.

(3).解线性方程组

x x x x x x x x x x x x x x x x 1234123412341234215320342221

+--=-+--=-++=-++-=??????? (2)

解:先写出增广矩阵][B A ,再用初等行变换将其逐步化成阶梯

形矩阵,即][B A =?????

???????--------11122241130235111211 第二行减第一行;第一行乘以(-3)加到第三行;第一行乘以2

加到第四行,得?????

???????---------13340577401114011211 第二行加到第三行;第四行减第二行,得????????????--------22200

666001114011211 第三行乘以(31)加到第四行,得?????

???????-----00000666001114011211

上述四个增广矩阵所表示的四个线性方程组是同解方程组,最后

一个增广矩阵表示的线性方程组为?????=+=---=--+666141243

4324321x x x x x x x x x 将最后一个方程乘16

,再将x 4项移至等号的右端,得 143-=x x

将其代入第二个方程,解得

2

12=x 再将x x 23,代入第一个方程组,解得

2

141+-=x x 因此,方程组(2)的解为

????

?????+-==+-=1212143241x x x x x (3) 其中x 4可以任意取值。

由于未知量x 4的取值是任意实数,故方程组(2)的解有无穷

多个。由此可知,表示式(3)表示了方程组(2)的所有解。表示式

(3)中等号右端的未知量x 4称为自由未知量,用自由未知量表示其

它未知量的表示式(3)称为方程组(2)的一般解,当表示式(3)中的未知量x 4取定一个值(如x 4=1),得到方程组(2)的一个解(如

x 112=-,2

1,0,1),称之为方程组(2)的特解。 注意:自由未知量的选取不是唯一的,如也可以将x 3取作自由未

知量。

如果将表示式(3)中的自由未知量x 4取一任意常数k ,即令x 4= k ,那么方程组(2)的一般解为

?????????=+-==+-=k x k x x k x 4

3211

2121 ,其中k 为任意常数。 用矩阵形式表示为

??????????????????+-+-=???

?????????k k k x x x x 121214321=????????

??????????+????????????--0121211101k (4) 其中k 为任意常数。称表示式(4)为方程组(2)的全部解。用消元法解线性方程组的过程中,当增广矩阵经过初等行变换化成阶梯形矩阵后,要写出相应的方程组,然后再用回代的方法求出解。如果用矩阵将回代的过程表示出来,我们可以发现,这个过程实际上就是对阶梯形矩阵进一步简化,使其最终化成一个特殊的矩阵,从这个特殊矩阵中,就可以直接解出或“读出”方程组的解。例如,对例1中的阶梯形矩阵进一步化简,

????????????-----00000666001114011211③①③②③162

++?→???????

???????00000111002004011011

②①②141+-?→???()???????

?????????0000011100

210010211001

上述矩阵对应的方程组为

????

?????=+==+1212143241x x x x x 将此方程组中含x 4的项移到等号的右端,就得到原方程组(2)的

一般解,

????

?????+-==+-=1212143241x x x x x (3) 其中x 4可以任意取值.

总结:从以上可知,消元法解方程不是死板硬套,而是灵活多变的,而且非常方便,我们在应用中,应根据所给题目灵活解题,看清楚题目是哪类方程,然后选用正确的方法即可得到正确的解。

参考文献:

线性代数——(文科)高玉斌白艳萍胡红萍编

《高等代数》——张禾瑞郝炳新编第一、二、五版之线性方程组

《高等代数》——施武杰戴桂生编著之线性方程组的消元解法

线性代数与解析几何———许立炜张爱华编

大学数学论文网

百度文库

豆丁网

高斯列主元消元法解线性方程组

高斯列主元消元法解线性方程组 一、题目:用Gauss 列主元消去法解线性方程组Ax b =,其中, A=17.031 -0.615 -2.991 1.007 -1.006 0.000-1.000 34.211 -1.000 -2.100 0.300 -1.7000.000 0.500 13.000 -0.500 1.000 -1.5004.501 3.110 -3.907 -61.705 12.170 8.9990.101 -8.012 -0.017 -0.910 4.918 0.1001.000 2.000 3.000 4.500 5.000 21.803?? ? ? ? ? ? ? ? ??? 0.230 -52.322 54.000 240.236 29.304 -117.818b ?? ? ? ?= ? ? ? ? ??? T X=(0.907099 -1.961798 3.293738 -4.500708 3.029344 -5.255068) 二、原理及步骤分析 设 n n ij R a A ?∈=][)1(,n n R b b b b ∈=],,,[)1()2(2)1(1 。若约化主元素 ),,2,1(0)(n k a k kk =≠,则通过高斯消元法将方程b AX =约化为三角形方程组求解。 如果在消元过程中发现某个约化主元0) (=k kk a , 则第K 次消元就无法进行。此外,即 使所有约化主元全不为零,虽然可以完成方程组的求解,但也无法保证结果的可靠性,因为计算过程中存在舍入误差。 为减少计算过程中的舍入误差对解的影响,在每次消元前,应先选择绝对值尽可能大的元作为约元的主元,如果在子块的第一列中选取主元,则相应方法称为列主元消元法。相应过程为: (1)选主元:在子块的第一列中选择一个元) (k k i k a 使) (max k ik n i k k k i a a k ≤≤= 并将第k 行元与第k i 行元互换。 (2)消元计算:对k=1,2,……n-1依次计算 ()()()?? ?? ?????++=-=++=-=++==++n k k i b m b b n k k j i a m a a n k k i a a m k k ik k i k i k kj ik k ij k ij k kk k ik k ik ,,2,1,,2,1,,,2,1) ()()1() ()()1()() ()( (3)回代求解

线性代数中矩阵的消元法与高等数学中解多元方程的问题联系

线性代数中矩阵的消元法与高等数学中解多元方程问题的联系 在高等数学中,解多元方程的过程一般是杂而烦的,大量的未知数常常使我们眼花缭乱、不知所措,所能做的,就是不断的移项、消元、加加减减,最后,还不一定能得出答案,得出的答案也不一定正确。 在学完矩阵的消元法以后,顿时觉得类似解多元方程的问题用矩阵来解会简单许多。在这里,我举个例子: 例1:解线性方程组:6 2245241 3231321321=+=++=+-x x x x x x x x (见线性代 数课本P17) 解: ? ??? ? ??--??→?????? ??--?? →?????? ??--??→?????? ??---+????? ??-----????? ??-=++-?? 61001010900110106100900151106100310151101830062023423151102140131213126302452413123 22321213121 r r r r r r r r r r r r r r r r A 所以,方程有唯一解??? ??-=-==619 3 21x x x 。 用矩阵的消元法解多元线性方程明显比我们从前学习的普通方法要简单的多。虽然计算不能说变得简单了,但是至少看起来一目了然,可以减少计算错误的发生,也省去了重复地写大量的未知数,使步骤变得简单多了。 当然这仅仅是线性代数运用在解线性方程中的一个方面,下面,我再举一个例子:

例 2:解线性方程组??? ??=+=++=++7 3472232 321321x x x x x x x x (见线性代数课本 P67)。 解:26102033 1 1112 21-=---++== D , 按照三阶行列式的定义,我们可以计算: .47 1 411 721,23 7 141271,23 1 7 114 227 321-==-==-==D D D 所以,.3,1,1332211== == == D D x D D x D D x 这里,我们有必要提一下二阶行列式的定义: 设二元线性方程组???=+=+)2(~) 1(~22 221211212111b x a x a b x a x a ,对方程组进行消元 )2()1(1222?-?a a ,有212221*********)(b a a b x a a a a -=-,当021122211≠-a a a a 时, 有 21 122112122211a a a a b a a b x --= 。 类似的,021122211≠-a a a a 时,有 21 1222112112112a a a a a b b a x --= 为了便于记忆,引入记号: 2112221122 21 1211 a a a a a a a a -=,这样2 12221b a a b -可以记为 22 2 121a b a b ,所以,当 022 21 1211≠a a a a 时,方程组???=+=+22221 211212111b x a x a b x a x a 有 唯一解D D x 11= ,D D x 22=,其中,2 21 111222 2 121 1,b a b a D a b a b D = = 。 这样,方程组的解就由系数和常数项表示出来了,这组解我们称之

用高斯消元法求解线性代数方程组.(优选)

用高斯消元法求解线性代数方程组 1234111 5 -413-2823113-2104151 3-21719x x x x ??????????????????=?????? ?????? ?????? 1111X *??????=?????? (X*是方程组的精确解) 1 高斯消去法 1.1 基本思想及计算过程 高斯(Gauss )消去法是解线性方程组最常用的方法之一,它的基本思想是通过逐步消元,把方程组化为系数矩阵为三角形矩阵的同解方程组,然后用回代法解此三角形方程组得原方程组的解。 为便于叙述,先以一个三阶线性方程组为例来说明高斯消去法的基本思想。 ??? ??=++II =++I =++III) (323034)(5 253)(6432321 321321x x x x x x x x x 把方程(I )乘(2 3 - )后加到方程(II )上去,把方程(I )乘(2 4- )后加到方程(III )上 去,即可消去方程(II )、(III )中的x 1,得同解方程组 ?? ? ??=+-II -=-I =++III) (20 223)(445.0)(6 4323232321x x x x x x x 将方程(II )乘( 5 .03 )后加于方程(III ),得同解方程组: ?? ? ??-=-II -=-I =++III) (42)(445.0)(6432332321x x x x x x 由回代公式(3.5)得x 3 = 2,x 2 = 8,x 1 = -13。 下面考察一般形式的线性方程组的解法,为叙述问题方便,将b i 写成a i , n +1,i = 1, 2,…,n 。

线性方程组的Guass消元法求解

西京学院数学软件实验任务书 课程名称数学软件实验班级数学0901 学号0912020112 姓名*** 实验课题 线性方程组高斯消去法,高斯列主元消去法,高斯全 主元消去法 实验目的熟悉线性代数方程组高斯消去法,高斯列主元消去法,高斯全主元消去法 实验要求运用Matlab/C/C++/Java/Maple/Mathematica等其中一种语言完成 实验内容线性方程组高斯消去法 线性方程组高斯列主元消去法线性方程组高斯全主元消去法 成绩教师

实 验 报 告 实验名称:Guass 消元法编程求解线性方程 实验目的:进一步熟悉理解Guass 消元法解法思路 学习matlab 编程 实验要求: 已知:线性方程矩阵 输出:线性方程组的解 程序流程: 输入矩阵 调用函数求解矩阵 输出方程组的解 实验原理: 消元过程: 设0) 0(11 ≠a ,令乘数) 0(11 ) 0(11/a a m i i -=,做(消去第i 个方程组的i x )操 作1i m ×第1个方程+第i 个方程(i=2,3,.....n ) 则第i 个方程变为1 )1(2)1(2 ...i n in i b x a x a =++ 这样消去第2,3,… ,n 个方程的变元i x 后。原线性方程组变为 ?? ?? ? ????=++=++=++) 1()1(2)1(2)1(2)1(22)1(22)0(1)0(11)0(11... . . ... ...n n nn n n n n n b x a x a b x a x a b x a x a

这样就完成了第1步消元。 对线性方程组中有第2,3,.。。。N 个方程组成的n —1元线性方程组做同样的处理,消去其除第一个方程组之外的所有变元2x ,可得到 ???? ?? ? ??????=++=++=++=++)3()3(3)3(3)2(3)2(33)2(33)1(2)1(22)1(22)0(1)0(11)0(11... . . . ... ... ...n n nn n n n n n n n b x a x a b x a x a b x a x a b x a x a 依次类推,当做到n-1步消元后,就完成了Guass 消元过程,得到上三角方程组 实验内容:利用Guass 消元操作的原理,求解线性方程组 ?? ?? ? ????==++=++--) 1()1()1(2)1(22)1(22) 0(1)0(11)0(11 . . ... ...n n n n nn n n n n b x a b x a x a b x a x a 回代过程: 在最后的一方程中解出n x ,得:) 1() 1(/--=n nn n n n a b x 再将n x 的值代入倒数第二个方程,解出1-n x ,依次往上反推,即可求出方程组的解: 其通项为3, (1) -n 2,-n k /)() 1(1 )1()1(=- =-+=--∑k kk n k j j k kj k k k a x a b x 流程图如下:

消元法解线性方程组

消元法解线性方程组 学校:青海师范大学 院系:数学系 专业:数学与应用数学 班级:10B 指导教师:邓红梅 学号:20101611218 姓名:梅增旺

摘要:线性方程组在数学的各个分支,在自然科学,工程技术,生产实际中经常遇到,而且未知元的个数及方程的个数可达成百上千,因此它的理论是很重要的,其应用也很广泛。本篇将就解线性方程组在此做一浅谈,以消元法为主要方法。消元法是解一般线性方程组行之有效的方法,早在中学大家都已经有接触,消元法的基本思想是通消元变形把方程组化成容易求解的同解方程组进行求解。 关键字:线性方程组消元法求解 Abstract: linear equations in various branches of mathematics, natural science,engineering technology, often encountered in actual production, and the unknown element number and the number of equations can be hundreds, so itis important in the theory, its application is very extensive. This article on thesolution of linear equations based on a discussion, mainly by means ofelimination method. Elimination method is the general linear equations ofeffective early in high school, everyone has a contact, the basic idea ofelimination method is through the elimination of the equations of deformationinto easy to solve with the solution of equations. Keywords:elimination method for solving linear equations

高斯消元法解线性方程组

高斯消元法解线性方程组 C++实验报告2015年6月 一、完成人 王婧婷张子承郗滢 二、问题描述 线性方程组问题是大学阶段经常研究的问题,为了进一步熟悉理解高斯消元法的解题思路并且掌握编程语言在数学方面的应用。且为解决线性方程组问题提供便利,要求给出线性方程组的矩阵,能够输出线性方程组的解。 三、解决方案设计 基本程序流程为: (1)输入矩阵 (2)运用初等行变换将其化为阶梯型矩阵 (3)调用一个函数:r()求其秩(有解时)及其无解情况 实验原理为: (1)系数矩阵及其增广矩阵经过初等行变换所得到的矩阵对应的方程与原方程同解 (2)化为阶梯型矩阵过程(输入增广矩阵后,运用初等行变换,使其a[i][i]以下全为零,若a[i][i]为零,运用行变换交换使其不为零) (3)输出阶梯型矩阵 (4)判断解情况并输出(解情况)

(5)输出解 四、模块及代码组织设计 其基本模块分为三大部分,7小部分。第一部分为输入矩阵阶段,用for语句实现。第二部分是对矩阵进行一系列的处理以求得线性方程组的解,先运用初等行变换化为阶梯型,并输出化简矩阵;然后以线性方程组的秩判断其是否有解(规定无解时秩为零)。第三部分是输出线性方程组的解情况及其解,如果无解即输出无解。 五、关键代码 (1)实现化为阶梯型的代码 实现此功能的代码是整个程序的重要内容,其需要进行的初等变换以实现校园的目的,使线性方程组得到简化。其实现如下: for( i=0; i<=n-1&&i

MATLAB之GAUSS消元法解线性方程组

Matlab之Gauss消元法解线性方程组 1.Gauss消元法 function x=DelGauss(a,b) %Gauss消去法 [n,m]=size(a); nb=length(b); det=1;%存储行列式值 x=zeros(n,1); for k=1:n-1 for i=k+1:n if a(k,k)==0 return end m=a(i,k)/a(k,k); for j=k+1:n a(i,j)=a(i,j)-m*a(k,j); end b(i)=b(i)-m*b(k); end det=det*a(k,k);%计算行列式 end det=det*a(n,n); for k=n:-1:1%回代求解 for j=k+1:n b(k)=b(k)-a(k,j)*x(j); end x(k)=b(k)/a(k,k);

end Example: >>A=[1.0170-0.00920.0095;-0.00920.99030.0136;0.00950.0136 0.9898]; >>b=[101]'; >>x=DelGauss(A,b) x= 0.9739 -0.0047 1.0010 2.列主元Gauss消去法: function x=detGauss(a,b) %Gauss列主元消去法 [n,m]=size(a); nb=length(b); det=1;%存储行列式值 x=zeros(n,1); for k=1:n-1 amax=0;%选主元 for i=k:n if abs(a(i,k))>amax amax=abs(a(i,k));r=i; end end if amax<1e-10 return;

(完整版)解线性方程组的消元法及其应用

解线性方程组的消元法及其应用 (朱立平 曲小刚) ● 教学目标与要求 通过本节的学习,使学生熟练掌握一种求解方程组的比较简便且实用的方法—高斯消元法,并能够熟练应用消元法将矩阵化为阶梯形矩阵和求矩阵的逆矩阵. ● 教学重点与难点 教学重点:解线性方程组的高斯消元法,利用消元法求逆矩阵. 教学难点:高斯消元法,利用消元法求逆矩阵. ● 教学方法与建议 先向学生说明由于运算量的庞大,克莱姆法则在实际应用中是很麻烦的,然后通过解具体的方程组,让学生自己归纳出在解方程组的时候需要做的三种变换,从而引出解高阶方程组比较简便的一种方法—高斯消元法,其三种变换的实质就是对增广矩阵的初等行变换,最后介绍利用消元法可以将矩阵化为阶梯形矩阵以及求矩阵的逆。 ● 教学过程设计 1.问题的提出 由前面第二章的知识,我们知道当方程组的解唯一的时候,可以利用克莱姆法则求出方程组的解,但随着方程组阶数的增高,需要计算的行列式的阶数和个数也增多,从而运算量也越来越大,因此在实际求解中该方法是很麻烦的. 引例 解线性方程组 ??? ??=+-=+=++132724524321 21321x x x x x x x x )3()2()1( 解 (1)???→??)2()1(?????=+-=++=+13245247 232132121x x x x x x x x )3()2()1(????→?+-?+-?) 3()2()1()2()4()1(?????-=+-=+=+133524567232 3221x x x x x x )3()2()1(

????→?+-?)3()65 ()2(??????? =--=+=+76 724567233221x x x x x )3()2()1( 用回代的方法求出解即可. 问题:观察解此方程组的过程,我们总共作了三种变换:(1)交换方程次序,(2)以不等于零的数乘某个方程,(3)一个方程加上另一个方程的k 倍.那么对于高阶方程组来说,是否也可以考虑用此方法. 2.矩阵的初等变换 定义1 阶梯形矩阵是指每一非零行第一个非零元素前的零元素个数随行序数的增加而增加的矩阵. 定义2 下面的三种变换统称为矩阵的初等行变换: i. 互换矩阵的两行(例如第i 行与第j 行,记作j i r r ?), ii. 用数0≠k 乘矩阵的某行的所有元素(例如第i 行乘k ,记作i kr ), iii. 把矩阵某行的所有元素的k 倍加到另一行的对应元素上去(例如第j 行的k 倍加到第i 行上,记作j i kr r +). 同理可以定义矩阵的初等列变换. 定义 3 如果矩阵A 经过有限次初等变换变为矩阵B ,则称矩阵A 与B 等价,记作 A ~ B . 注:任意一个矩阵总可以经过初等变换化为阶梯形矩阵. 3. 高斯消元法 对于一般的n 阶线性方程组 ?????? ?=++=+++=+++n n 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 ΛΛΛΛΛΛΛΛΛΛΛΛΛΛΛ22112 22221211 1212111 )()2()1(n (3.1) 若系数行列式0det ≠A ,即方程组有唯一解,则其消元过程如下: 第一步,设方程(1)中1x 的系数01≠l a 将方程)(l 与(1)对调,使对调后的第一个方程1x 的系数不为零.作)1(11 1 a a i i - ),3,2(n i Λ=,得到同解方程组 ?? ? ????=++=++=+++)1()1(2)1(2) 1(2 )1(22)1(22)0(1)0(12)0(121)0(11n n nn n n n n n b x a x a b x a x a b x a x a x a ΛΛΛΛΛΛΛΛΛΛΛΛΛ (3.2) 第二步,设0) 1(22≠a ,保留第二个方程,消去它以下方程中的含2x 的项,得

第一章线性方程组的解法(新)

第一章线性方程组的解法 求解线性方程组是科学研究和工程应用中最普遍和最重要的问题,超过75%的科学研究和工程应用中的数学问题,在某一阶段都与线性方程组的求解有关.本章介绍求解线性方程组的消元法及其矩阵形式. 引例交通流量问题 随着城市人口以及交通流量的增加,城市道路交通拥堵问题已成为制约经济发展、降低人民生活质量、削弱经济活力的瓶颈之一.为解决这个世界性难题,各国政府和民间都进行了广泛的研究,提出了提高交通管理水平、增强交通参与者的素质、扩大道路容量、限制车辆增长速度等政策及车牌限行、设置单向行驶道路等措施.以上的政策和措施的一个基础性工作就是各道路的车流量的统计与分流控制.使各道路的交通流量要达到平衡,所谓交通流量平衡是指在每个路口进入的车辆数与离开的车辆数相等.图1是某一城市的道路交通网络图,所有车道都是单行道.箭头给出了车辆的通行方向,数字是高峰期每小时进入和离开路口的车辆数.在满足交通流量平衡的条件下,试问如何分流车辆. 图1 为了保证交通流量平衡,得线性方程组

12 23345461 56300,200,300,100,300.x x x x x x x x x x x x +=??-=-?? -+=??-=-??-+=? () 问题归结为讨论线性方程组()是否有解若有解,求出方程组的解. 第一节 线性方程组的消元法 一、线性方程组的概念 设12,, ,n x x x 为实未知量,12,,,,n a a a b 为实数,n 为正整数.方程 1122n n a x a x a x b ++ += 称为含未知量12,,,n x x x 的线性方程.由m 个含未知量12,, ,n x x x 的线性方程组成的方 程组 1111221121122222 1122,,, n n n n m m mn n m a x a x a x b a x a x a x b a x a x a x b +++=??+++=????+++=? () 称为n 元线性方程组,其中,(1,2, ,;1,2,,)ij i a b i m j n ==为实数.若 1122,,,n n x c x c x c === () 使()中的每一个方程都成立,则称()为方程组()的解. 如果线性方程组()有解,则称方程组()是相容的;否则,称方程组()是不相容的. 线性方程组解的全体所构成的集合称为该线性方程组的解集.显然,如果线性方程组不相容,其解集必为空集.能表示线性方程组全部解的表达式称为方程组的通解或一般解. 具有相同解集的线性方程组称为同解方程组或等价方程组. 二、线性方程组的消元法 中学所学的解线性方程组的消元法是求解线性方程组简单有效的方法.现在我们回忆消

线性方程组解法综述

线性方程组解法综述 Prepared on 22 November 2020

线性方程组解法的研究综述 摘要:这篇论文在说明了线性方程组的应用目的的基础上,提出了线性方程组求解的研究现状,并列举了常用的求解方法,同时说明了它们的应用条件,剖析了各种方法的不足之处。 关键词高斯消元迭代病态方程组 一、问题提出 在自然科学和工程实际应用中,有许多问题的求解最终都转化为线性方程组的求解问题。例如,电学中的网络问题,曲线拟合中常用的最小二乘法、样条函数插值、解非线性方程组、求解偏微分方程的差分法、有限元法和边界元法以及目前工程实践中普遍存在的反演问题等。特别是在图像恢复、模型参数估计、解卷积、带限信号外推、地震勘探等众多领域,都需要求解线性方程组。 由于线性方程组问题在理论上的重要性和在工程实际应用中的大量存在,多年来人们在这方面做了广泛深入的研究和探讨,并取得了许多有价值的成果.由于模型误差、测量误差、计算误差等各种误差的存在,常常使得线性方程组中的系数矩阵和非齐次项信息具有某种程度的近似性(即扰动性),这种近似性显然会使得线性方程组的求解不容易得到真实的理论解。此时,不同的求解方法由于运算机理不一样,求解过程中误差积累程度就不一样,因此必然会使得不同的求解方法得到的解具有不同的逼近真解的误差程度,尤其对具有病态性的方程组而言,由于病态线性方程组的条件数很大,数据误差以及计算过程中引入的舍入误差往往会使线性方程组的解不稳定,即不管原始数据的误差多么小,都可能造成解的很大变化,使线性方程组的解严重失真。因此,许多现有的方

法都是无效的,病态线性方程组的求解变得相当困难。求解线性方程组的最常用的方法主要有直接法和迭代法两大类,其中直接法中最常用的方法是高斯消元法。但是,该方法求解病态线性方程组时不能得到合理的解,误差很大。 二、研究现状 目前关于线性方程组的数值解法一般有两大类。一类是直接方法,另一类是迭代方法。直接方法最基本的是高斯消元法及其变形,这类方法是解低阶稠密矩阵方程组的有效方法,近十几年来直接法在求解具有较大型稀疏矩阵方程组方面取得了较大进展。迭代法就是用某种迭代过程去逐步逼近线性方程组的精确解,迭代法具有需要计算机的存储单元较少,程序设计简单,原始系数矩阵在计算过程中始终不变等优点,但存在收敛性及收敛速度问题。迭代法是解大型稀疏矩阵方程组的重要方法。当前对迭代算法的研究已经较为成熟,但如何使之适合新体系模型,以获得更好的性能加速一直是应用和体系设计者关心的问题。 三、常用方法比较 1.直接方法 直接方法是指假设计算过程中不产生舍入误差,经过有限次运算可求得方程组的精确解的方法。事实上,由于舍入误差的存在,用直接法一般也只能求得方程组的近似解。直接方法中主要有三种方法:克拉默法则、高斯消元法、LU 分解法。 (1)克拉默法则 设有线性方程组( n 个未知数 n 个方程)

Gauss消元法解解线性方程组

摘要 本文叙述了Gauss 顺序消元法解线性方程的算法思想以及其求解过程,同时简要叙述了Gauss 主元素消元法以及Gauss 全主元消元法。紧接着给出了 Gauss Seidel -迭代法的算法思想,本文给出了这三个消元方法以及一个迭代法 的算法流程图,由于全主元消元法是前两个算法的基础上改进而来,故本文采用第三种方法进行编程计算,前两种方法不再重复编程,然后给出一个实例的计算结果,运行时间,在文章最后分析该实例的计算结果,针对同一实例,又采用 Gauss Seidel -方法编程实现,然后对结果进行分析和对比。最后给出了本人在 编程时遇到的一些问题和解决办法。 关键词:Gauss 顺序消元法 Gauss 主元素消元法 Gauss 全主元消元法 一、算法的简要描述 1.1Gauss 顺序消元法 Gauss 消元法在中学里已经学习过,其方法实质,就是运用初等变换,将线性方程组Ax b =转化为同解的上三角矩阵方程组 1Ux L b -= (1.1.1) 其中,U 为上三角矩阵,L 为下三角矩阵。然后对式(1.1.1)进行回代求解,即得方程组的解。手算的过程是非常清楚的,现在需回答的是计算机求解,如何实现上述计算过程。 设线性方程组为 1111221331121122223322 112233n n n n n n n nn n n a x a x a x a x b a x a x a x a x b a x a x a x a x b +++???+=??+++???+=?? ????????????? ?+++???+=? 写成矩阵形式为 111211121222222122 2m m m n n a a a x b a a a x b a a a x b ?????? ????????????=??????? ??????????? (1.1.2) 设线性方程组如上式所示,记(1)A A =,(1)b b =,与是增广矩阵具有形式 (1) (1)[][]A b A b =,此时方程组为(1)(1)A x b =。 第一次消元。设(1) 110a ≠, 为将第二个方程至第n 个方程的1x 系数(1)1i a 消成零,构造乘数 (1)1 1(1)11 i i a l a = (2,3,,i n =

第9讲:线性方程组的消元解法

课题:线性方程组的消元解法 教学目的:掌握线性方程组的定义,矩阵表示式,消元解法 教学重点:高斯消元法 教学时数:二学时 教学设计: I ?引入课题 在行列式的学习中,我们学到了克莱姆法则,可以利用行列式来解线性方程组,如 X i X2 - X3 =0 ?2石+3x2+ x3 = 7 3石一2x2 _2x3 = -3 1 1 由克莱姆法则,有D=2 3 3 -2 故X1 = 1, x 2 =1,X3 =2。 克莱姆法则可以作为一种解方程组的方法,但计算量比较大,而且只能解方程个数与未知数个数相同的线性方程组,比较有局限性,今天开始,我们来学习普通的方程组的解法,并由此引入向量组的相关问题。 第三章线性方程组与向量组的线性相关性 II .新课设计 3.1线性方程组的消元解法一.线性方程组 a“X1 +a12X2 +■八+amx n =6 a21X1 +a22 X2 +"八+a2n X n =b2 形如< 的方程组,称为线性方程组,若令 i a m1X1 *a m2X2 衣*a mn x n =b m a11 a12 a1 n f 、X1 A = a 21 a 22???a 2 n ---系数矩阵,X = X2 I----未知数矩阵,b = b2 --常数矩阵。 & m1 a m 2 ???a mn」 2n」 -1 0 1 -1 1 =16 , D1 =7 3 1 =16 , -2 -3 -2 -2 1 1 0 2 3 7 =32 3 -2 -3 0 -1 7 1 =16 , D3 -3 -2 D2

(6) 线性方程组的分类 若b =0,则线性方程组为 AX =0,称为齐次线性方程组 若b = 0,则线性方程组为 AX =b ,称为非齐次线性方程组 。 对于AX b 若只改变b = 0,则称AX 0为原方程组的到处方程组。 二?线性方程组的消元解法---高斯消元法 例1 ?解线性方程组(每写一个方程组,同时写出对应的增广矩阵) X i +X 2 —X 3 =0 r 1 1 -1 0 a,彳2X t + 3x 2 + x 3 = 7 2 3 1 7 --A 3X i 一2x 2 一2X 3 = -3 3 J -2 -2 _3 J 解:(1)汉一2+(2), (1)疋 d +3 X i +X 2 -X 3 =0 q 1 一 1 b,

高斯消元法解线性方程组

高斯消元法解线性方程组 在工程技术和工程管理中有许多问题经常可以归结为线性方程组类型的数学模型,这些模型中方程和未知量个数常常有多个,而且方程个数与未知量个数也不一定相同。那么这样的线性方程组是否有解呢?如果有解,解是否唯一?若解不唯一,解的结构如何呢?这就是下面要讨论的问题。 一、线性方程组 设含有n 个未知量、有m 个方程式组成的方程组 a x a x a x b a x a x a x b a x a x a x b n n n n m m mn n m 11112211211222221122+++=+++=+++=??????? (3.1) 其中系数a ij ,常数b j 都是已知数,x i 是未知量(也称为未知数)。当右端常数项b 1, b 2, …, b m 不全为0时, 称方程组(3.1)为非齐次线性方程组;当b 1=b 2= … =b m = 0时,即 a x a x a x a x a x a x a x a x a x n n n n m m mn n 111122121122221122000 +++=+++=+++=??????? (3.2) 称为齐次线性方程组。 由n 个数k 1, k 2, …, k n 组成的一个有序数组(k 1, k 2, …, k n ),如果将它们依次代入方程组(3.1)中的x 1, x 2, …, x n 后,(3.1)中的每个方程都变成恒等式,则称这个有序数组(k 1, k 2, …, k n )为方程组(3.1)的一个解。显然由x 1=0, x 2=0, …, x n =0组成的有序数组(0, 0, …, 0)是齐次线性方程组(3.2)的一个解,称之为齐次线性方程组(3.2)的零解,而当齐次线性方程组的未知量取值不全为零时,称之为非零解。 (利用矩阵来讨论线性方程组的解的情况或求线性方程组的解是很方便的。因此,我们先给出线性方程组的矩阵表示形式。) 非齐次线性方程组(3.1)的矩阵表示形式为: AX = B 其中 A = ????????????mn m m n n a a a a a a a a a 212222111211,X = ????????????n x x x 21, B = ????? ???????n b b b 21 称A 为方程组(3.1)的系数矩阵,X 为未知矩阵,B 为常数矩阵。将系数矩阵A 和常数矩阵B 放在一起构成的矩阵

线性方程组的平方根解法

浅析线性方程组的平方根解法 在求解线性方程组时,直接解法有顺序高斯消元法、列主元高斯消元法、全主元高斯消元法、高斯约当消元法、消元形式的追赶法、LU 分解法、矩阵形式的追赶法,当我们遇到对称正定线性方程组时,我们就要用到平方根法(对称LLT 分解法)来求解,为了熟悉和熟练运用平方根法求解线性方程组,下面对运用平方根法求解线性方程组进行解析。 一、运用平方根法求解线性方程组涉及到的定理及定义 我们在运用平方根法求解线性方程组时,要判定线性方程组Ax=b 的系数矩阵A 是否是对称正定矩阵,那么我们就要了解正定矩阵的性质和如下定理及定义: 1、由线性代数知,正定矩阵具有如下性质: 1) 正定矩阵A 是非奇异的 2) 正定矩阵A 的任一主子矩阵也必为正定矩阵 3) 正定矩阵A 的主对角元素均为正数 4) 正定矩阵 A 的特征值均大于零 5) 正定矩阵A 的行列式必为正数 定义一 线性方程组Ax=b 的系数矩阵A 是对称正定矩阵,那么Ax=b 是对称正定线性方程组。 定义二 如果方阵A 满足A=AT ,那么A 是对称阵。 2.1.4 平方根法和改进的平方根法 如果A 是n 阶对称矩阵,由定理2还可得如下分解定理: 定理2 若A 为n 阶对称矩阵,且A 的各阶顺序主子式都不为零,则A 可惟一分解为:A =LDLT ,其中L 为单位下三角阵,D 为对角阵。 证明 因为A 的各阶顺序主子式都不为零,所以A 可惟一分解为:A =LU 因为 ,所以可将 U 分解为: ??????? ??=nn u u u U 2211??????? ?? ??11122211112 u u u u u u n nn n 1DU = 其中 D 为对角矩阵,U1为单位上三角阵.于是:A =LDU1=L(DU1) 因为A 为对称矩阵,所以,A =AT =U1TDTLT =U1T(DLT),由 A 的 LU 分解的惟一性即得:L =U1T ,即U1=LT ,故A =LDLT 。 工程技术中的许多实际问题所归结出的线性方程组,其系数矩阵常有对称正定性,对于具有此类特殊性质的系数矩阵,利用矩阵的三角分解法求解是一种较好的有效方法,这就是对称正定矩阵方程组的平方根法及改进的平方根法,这种方法目前在计算机上已被广泛应用。 定理3 对称矩阵A 为正定的充分必要条件是A 的各阶顺序主子式大于零。 2 对称正定矩阵的三角分解 定理 (Cholesky 分解)设A 为n 阶对称正定矩阵,则存在惟一的主对角线元素都

用高斯列主元消元法解线性方程组

用C 语言编写软件完成以下任务: 请用高斯列主元消元法解下列线性方程组: ?????=++=++=++53367435522321321321x x x x x x x x x ????? ???????=?????????????????????????n n nn n n n n b b b x x x a a a a a a a a a 21212122221 11211 方法说明(以4阶为例): 第1步消元——在增广矩阵(A ,b )第一列中找到绝对值最大的元素,将其所在行与第一行交换,再对(A ,b )做初等行变换使原方程组转化为如下形式: ????? ???????=?????????????????????????*******0***0***0****4321x x x x 第2步消元——在增广矩阵(A ,b )中的第二列中(从第二行开始)找到绝对值最大的元素,将其所在行与第二行交换,再对(A ,b )做初等行变换使原方程组转化为: ????? ???????=?????????????????????????******00**00***0****4321x x x x 第3步消元——在增广矩阵(A ,b )中的第三列中(从第三行开始)找到绝对值最大的元素,将其所在行与第二行交换,再对(A ,b )做初等行变换使原方程组转化为: ????? ???????=?????????????????????????*****000**00***0****4321x x x x 按x 4 → x 3→ x 2→ x 1 的顺序回代求解出方程组的解

总体流程图(一)

高斯消元法求解线性方程组

数值分析 程 序 设 计 学院:计算机学院 姓名:袁薪洋 时间:2012年10月10日

1.实验目的: 1熟练掌握C语言程序设计,编程求解问题。 2.运用高斯消元法求解线性方程组。 2.实验内容: 用高斯消元法求解方程组。 0.001 2.000 3.000 x1 1.000 -1.000 3.172 4.623 x2 = 2.000 -2.000 1.072 5.643 x3 3.000 程序的完整代码: #include #include #define row 3 void M_Print(float(*a)[row],float* b) { int i,j; printf("**********************************\n\n"); printf("用高斯主元消去法求解线性方程组:\n\n"); printf("**********************************\n\n");

for(i=0;i

相关主题
文本预览
相关文档 最新文档