数值线性代数课程设计高斯消去法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数值线性代数课程设计 线性方程组的直接解法

数理学院 09405011班 0940501120 沈骁 摘要:如何利用电子计算机来快速、有效的求解线性方程组的问题是数值线性代数的核心问题。本文将主要介绍解线性方程组的基本的直接法——高斯消去法,平方根法,并用实例来验证此方法的有效性。

关键字:高斯消去法,顺序消去法,选主元消去法,平方根法,消元过程,回代过程,主元数和乘数

引言:因为各种各样的科学与工程问题往往最终都要归结为一个线性方程组的求解问题。本文在比较着几个方法的基础上,通过一道实例来得到最方便最有效的方法。

基本原理:工程计算和科学研究中的许多问题,最终归结为线性代数方程组的求解。求解的方法也有很多,如高斯消去法(顺序消去法,选主元消去法),平方根法。高斯消去法是目前求解中小规模线性方程组最常用的方法;平方根法是求解对称正定线性方程组最常用的方法之一。为了更快速、更方便的求解线性方程组,下面我们比较一下这几种方法哪种更好。

一、高斯(Causs )消去法就是逐步消去变元的

系数,将原方程组Ax b =化为系数矩阵为三角形的等价方程组Ux d =,然后求解系数矩阵为三角形的方程组而得出原方程组解的方法。把逐步消元去变元的系数,将方程组化为以系数矩阵为三角形的等价方程组的过程称为小院过程;把求系数矩阵为三角形的方程组解的过程称为回代过程。最初求解方程组的高斯消去法也称为顺序消去法,它由消元过程和回代过程组成。 顺序消去法 1. 消元过程

考虑一般方程组,为了推导过程方便,记系数矩阵A 的元素ij a 为(0)

ij a ,右端向量b 的元素i b 记为(0)

,1i n a +,于是方程组

11112211211222221122n 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 ++

+=⎧⎪+++=⎪⎨⎪⎪++

+=

⎩ (1.1)成为

()()()()

()

()

()()()()()()000

111122111

000

211222221

000

1122

1

n n n n n n n n nn n nn a x a x a x a a x a x a x a a x a x a x a +++⎧+++=⎪+++=⎪⎨⎪

⎪+++=

⎩假设

(0)11

0a ≠,将第1个方程乘以(0)1

(0)11

()i a a -加到第i 个

方程(2)i n ≤≤,得到第1个导出方程组(0)(0)(0)(0)111122111(1)(1)(1)

222221

(1)(1)(1)221n n n n n n n nn n nn a x a x a x a a x a x a a x a x a +++⎧++=⎪+=⎪⎨

⎪+=

其中:(0)(1)(0)(0)1

1(0)11i ij ij j a a a a a =-,

2i n ≤≤,21j n ≤≤+。由于因子(0)1

(0)11

i a a 不止一次地用到,常

记为,1i l 。再假设(1)

220a ≠,由第1个导出方程组

的第2个方程乘以(1)2

(1)22

()i a a -加到第i 个方程

(3)i n ≤≤,得到第2个导出方程组

()()()()()()()()()

()()()()()()00000111122133111

1111222233221

222333*********n n n n n n n n n n nn n nn a x a x a x a x a a x a x a x a a x a x a a x a x a ++++⎧++++=⎪+++=⎪⎪⎨++=⎪⎪

⎪++=

类似地记:(1)2

2(1)22

i i a l a =,则第2个导出方程组的元素

(1)(2)(0)(1)(1)(1)(1)

222(1)

22

i ij ij j ij i j a a a a a l a a

=-

=-,

3i n ≤≤,31j n ≤≤+。重复上述过程1n -次,得到

1n -个导出方程组

()()()()()()()()()

()()()()()00000111122133111

1111222233221

222333331111n n n n n n n n n n n nn n nn a x a x a x a x a a x a x a x a a x a x a a x a +++--+⎧++++=⎪+++=⎪⎪⎨++=⎪⎪

⎪=

(1.2)其中第k 个导出方程组的元素的递推关

系是(1)

(1)k ik ik k kk

a l a --=,()(1)(1)

k k k ij ij ik kj

a a l a --=- (1.3)

(11,1,11)k n k i n k j n ≤≤-+≤≤+≤≤+。由

于上述消元过程只是将原方程组的系数矩阵和右端进行初等变换,因此,第1n -个导出方程组与原方程组等价,即通过消元过程将方程组(1.1)化成了等价的上三角方程组(1.2)。由第k 个导出方程组的计算公式(1.3),容易得到消元过程所需要的乘法和加法次数为

1

2111

()(1)(1)3n k n

S n k n k n -==--+=-∑

除法次数为1

121

(1)

()2

n k n n S n k -=-=-=

∑ 2.回代过程

回代过程就是求等价三角形方程组(1.2)的解。只要(1)

0(1,2,

,)k kk

a k n -≠=,就可以最

后一个方程得到n x 的值,再从第1n -个方程得1n x -的值。在一般情形,可求得i x 的回代递推公

(1)

1

(1)

(1)(1)

1

1

,(),1,2,,1.

n nn n n nn

n i i i ij j j i i i ii a x a x a x x i n n a -+---=+-⎧=⎪⎪⎪⎨-⎪

⎪==--⎪⎩

∑(1.4) 由公式(1.4)可知,回代过程需要n 次除法,其乘法和加法的次数同为

1

12(1)(1)2

n n n ++

+-=

-。所以回代过程需211(1)2S n n =-次加法,221

(1)2S n n =+次

乘、除法。

3.顺序消去法的运算次数与计算步骤

由消元过程和回代过程的运算次数可知,顺序消

去法的加法次数为

111211

(235)6

S S S n n n =+=

+-,乘除法次数为2

21112221(31)3S S S S n n =++=+-。消元过

程在编程上机运算时,需采用三重循环,即对于1,2,,1,k n =-1,2,,,i k k n =++计算

(1)(1)k ik

kk k kk

a l a --=;对于1,2,

,1j k k n =+++计算

()(1)(1)

k k k ij ij ik kj a a l a --=-。回代过程只需要二重循环,即计算(1)1

(1)

n nn n n nn

a x a -+-=,对于1,2,,1,i n n =--0;s =对于

1,2,

,,j i i n =++计算(1)

,

i ij j S S a x -=+(1)1(1)

.i in i i ii

a S x a -+--=

4.主元数和乘数

由顺序消去法的推导过程可知,无论是消元过程还是回代过程的都不需要对未知元作真正的运算,而仅需要对方程组

Ax b = 的系数矩阵的元素和

右端作运算。因此,在实际运算中,总是将方程组的系数矩阵和右端合在一起,记成增广矩阵(,)A b 。

由消元过程(1.3)可以看到,元素(1)

k kk a -为“主

元素“,另外,在消元过程中不止一次用到数

ik l ,这个数称为消元过程的乘数。 二.平方根法

平方根法又叫Cholesky 分解法,是求解对称线性方程组最常用的方法之一。对于一般方阵,为了消除LU 分解的局限性和误差的过分积累,而采用了选主元的方法。但对于对称正定矩阵而言,选主元却是完全不必要的。 设n n

A R

⨯∈是对称正定的,即A 满足T

A A =而

且T

x Ax >0对一切的非零向量n

x R ∈成立.此时,由定理容易推出 Cholesky 分解定理:若

n n A R ⨯∈对称正定,则存在一个对角元均为正数

的下三角阵n n L R ⨯∈,求得T

A LL =.上式中的L

称作A 的Cholesky 因子。

若线性方程组的系数矩阵是对称正定的,则我们自然可按如下的步骤求其解:(1)求A 的Cholesky 分解:T

A LL =;(2)求解Ly b =得y ;(3)求解T L x y =得x 。

实验:1.用高斯(Causs )消去法求解下面的84阶方程组

1238283846178611586

1158

61158

61158614x x x x x x ⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥

⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥

⎢⎥⎢⎥⎢⎥⎣

⎦⎣⎦

⎣⎦。 解:10n = ()A identity n =

相关文档
最新文档