实际问题中解线性方程组的经典解法

实际问题中解线性方程组的经典解法
实际问题中解线性方程组的经典解法

第二章 在实际问题中解线性方程组的经典解法 直接法与三角形方程组的求解分析

线性方程组求解问题在许多科学计算问题中都会遇到,如应力分析、电学网络、自由振动问题等。在计算机数值方法的课程中,2线性方程组求解在样条插值、数据拟合的最小二乘法以及常微分方程边值问题中都要用到.产生的线性方程组的类型有很多,如按系数矩阵含零元素多少分类,有稠密和稀疏(零元素占80%以上)线性方程组之别;如按阶数的高低分类,有高阶(阶数在1000阶以上)和低阶之别;如按系数矩阵的形状和性质分类,又有对称正定、三对角线对角占优等之别,因为在电子计算机上求解,必须要考虑算法的计算复杂性以及算法的数值稳定性问题。所以针对不同类型的线性方程组有不同的解法,但是,基本的方法可归结为两大类,即为直接法和迭代法。

本章介绍的经典解法,都把原方程组化为一个或者两个三角形方程组来求解,主要包括Gauss4消去法和它的变形----直接三角分解法

设有线性方程组

b Ax = (1,1) 其中

???????

??=nn n n n n a a a a a a a a a A 21

22221

112

11 ??????

?

??=n x x x x

21 ??

??

?

?? ??=n b b b b 21

根据线性代数知识,当0det ≠A 时,方程组(1.1)的解存在且唯一,对增广矩阵)(),()1()1(b A b A =施行行初等变换,化)1(A 为上三角形矩阵)(n A ,同时)1(b 化为)(n b ,这时与增广矩阵),()()(n n b A 相应的线性方程组为上三角形方程组

)()(n n b x A = (1.2)

其中 ????

??

?

?

?=)()

()2(2)2(2)2(22)1(1)1(1)1(12)

1(11)()(0

00

),(n n n nn

n

n n n b a b a a b a a a b A

??????

?

?

?=)

()

2(2)2(22)

(!1)(!12)

(!11)(000

)(n nn

n n

n a a a a a a A

????

??

? ??=)()2(2)(!1)()(n n n b b b b

设)3.2.1(0)(n i a i ii =≠ 则(1.2)的解为

(1.3)

它便是原方程组(1.1)的解,实现上述求解过程的方法称为Gauss 消去法 如果方程组(1.1)的系数矩阵可分解为两个形式简单的三角形矩阵L 和U 的乘积,即

LU A = (1.4)

若L 为下三角形矩阵,则U 为上三角形矩阵,反之亦然 从而求解b Ax =的问题转化为解三角形方程组

b Ly = (1.5)

和 y Ux =

(1.6)

其中 ??????

?

?

?=nn n n l l l l l l L 2

12221

11000 ??

?

?

?

?

?

??=nn n n u u u u u u U 0

00

222

11211

则b Ly =为下三角形方程组,它的第i 个方程为

)2.1(2211n i b y l y l y l i i ii i i ==+++ (1.7)

假定0≠ii l 按n y y y 21,的顺序解得

?????????

+-=

=∑-=ij i j i

j ij i l b y l y l b y 1

111

11 )3,2(n i =

(1,8)

上三角形方程组y Ux =的第i 个方程为 i

n in i ii i ii y x u x u x u =+++++ 11

)2,1(n i =

(1.9)

假定0≠ii u 按11,,x x x n n -的顺序求解得

????

?????

+-==∑+=ii n

i j i

j ij i nn

n n u y x u y u y x 1 (1, 10) 直接法的求解过程,在计算过程中无舍入误差的前提下,都可以经有限步算数运算而得到精确解。由于计算机的字长有限,初始数据取浮点数以及运算过程都不断地产生舍入误差,这些误差的传播和积累,会影响计算精度,所以,如何避免舍入误差的增长是设计算法时必须考虑的问题。

直接法通常需要存储系数矩阵的全部元素,当方程组的阶数很高时,需要相当大的内存空间,因此,在算法设计上应当注意节省内存,比如,对称矩阵可以只存其下三角形部分于一维数组中。

综上所述,如果矩阵A 非奇异,总可以通过带有行交换或不带行交换的消元过程,将A 化为非奇异上三角形矩阵)(n A 因此,回代求解过程(1,3)也可以进行到底,但是,在实际应用中,常常难于事先判断系数矩阵A 的奇异性,因此,需要进一步考虑当A 为奇异矩阵时计算过程可能发生的情况。一是消元过程的某一

步找不到非零的)(i ii a ,于是计算中断;二是虽然消元过程能进行到底,但0)(=n nn a ,

使回代求解过程无法进行下去,因此,在计算设计中必须考虑到上述两种可能发生的情形,此时应在算法设计中给出计算中断的信息。

1 Gauss 列主元素消去法 在Gauss 消元过程中位于矩阵)2,1()(n k A k =的主对角线),(k k 位置上的元素

)

(k kk

a 称为主元素,因为在计算解的分量时,都做除数,但应当避免用小的数做除数,即避免用较)(k ik a )1(n i k ≤≤+在数量级上相对小的主元)

(k kk a 做除数,以防止舍

入误差的扩大,降低解得精度,下面的例子说明“小主元”对解得精度的影响。

例1用Gauss 消去法解线性方程组

???

?

? ??=????? ??????? ??---321643.5072.12623.4712.3132103218x x x

用8位十进制尾数的浮点数计算 解 ???

?? ?

?--==-3643.5072.122623.4712.31

13

2

10),(),(8)

1()1(b A b A

8

8)1(11)

1(212110101-=-==-a a m 88)1(11)1(313110210

2?-=-==-a a m

)102712.3()(8122122)2(22?+=-=fl a m a fl a

999102.0102.010********.0?=?+?=

981212)2(2101.0)102()(?=+=-=fl b m b fl b

类似的算出)2(3)2(33)2(32,,b a a 我们看到,由于小主元810-做除数,使得行乘数3121,m m 的数量级变得很大,这样在计算)2(22a 时,即)712.3(fl 与)102.0(9?fl 在计算机上做

代数和时,)712.3(fl 由于阶码升为9使尾数右移变成了机器零,这里揭示了数量级相对于分子数做除数,会使Gauss 消去法在计算机有限字长的环境下造成较大舍入误差的原因。 经第一步消元得

????? ?

???????=-99

9

9

998)

2()2(102.0106.0104.00101.0103.0102.00

1

3210),(b A 经第二步消元得

????

? ?????=-0000101.0103.0102.001

3210),(9

998)3()3(b A

这一结果表明原方程组有无穷多个解,在计算机上,将会给出“无唯一解”的信息,停止计算,但实际上,由于0det ≠A ,所以原方程组有唯一解,是计算过程的舍入误差使解面目全非了,从前面的分析我们看到,导致这一错误的主要原因是用“小主元”做除数。

为避免小主元做除数,在Gauss 消去法中加入选主元过程,即在第k 步消元

时,首先在)(k A 的第k 列主对角线元以下元素中挑选出绝对值最大者,并通过交换的第与行对应元素,使位于对角线上,仍记为,并称之为第步消元的列主元素,然后再进行消元计算,

第一步都按列选主元的消去法称为列主元素消去法,由于列主元素满足条件

所以行乘数皆满足,因此,列主元素消去法能避免例1中所出现的问题,误差分析与数值试验表明,用列主元消去法解“良态”线性方程组,在绝大多数情况下,都可以得到令人满意的结果。

例2用列主元素消去法解例1的线性方程组b Ax =

解 =),(b A ???

?

? ??---3643.5072.122623.4712.31132108

→???

?

?

??---132102623.4712.313643.5072.128 83121105.0,5.0-?-==m m ,经第一步消元,得

?????

?

??????-=11

11

1

)2()2(101.0103.0102.005.01018015.0103176.003

643.5072.12),(b A 62972292

.032=m ,经第二步消元得 ???

?

?

?

????-=68513854.010********.0005.01018015.0103176.003

643.5072.12

),(1

1

1

)3()3(b A

回代求解得

T

x )3672573

9.0,05088607.0,49105820.0(--= 方程组具有9位有效数字的解

T x )367257384.0,050886075.0,491058227.0(--=

可见用Gauss 列主元素消去法计算,得到了一个高精度的近似解。 2-2 带有行交换的矩阵分解

设第k 步消元时,先交换的第行与行后再消元,用矩阵运算表示为 k i k k I L ),(),()1()1()()(++=k k k k b A b A

其中????

?

??

?

??

??

?

????

? ??=1101111011

k

i k I

??

????

????

?

??---=++11111,2,1nk k k k

k k m m m L

),1(,)()(n k i a a m k kk

k ik

ik +==

当k i k =时k i k i k k I I I ,=称为置换矩阵。 于是带行交换的消元过程用矩阵运算表示为 ),(),()()(1122111121n n i i n n b A b A I L I L I L n =---

由此得U A A I L I L I L n i i n n n ==---)(1122111121 (2.3) 比如,4=n 则有

U A I L I L I L i i i =112233123 可改写为

U A I I I I I L I I I L I L i i i i i i i i i =))()((12332123323312

3322333 (2.4)

令323233~i i I L I L = 3212313223~

i i i i I I L I I L = 12312

3i i I I I P i =

容易证明,当,i j k >时,k ij k ij L I L I = 与k L 的形状相同,也是一个初等下三角形矩阵,只是交换了k L 的第k 列对角元以下的第i 行与第j 行的元素,因此,1L 和2

L 仍然是初等下三角形矩阵,从而 321

L L L L =

为单位下三角形矩阵,于是可以写成

L P A U =

将对4n =的处理方法推广到一般情形,令

1211

2112112

1n

k k k k n k i n i k

i k k i k i k

i

n L I I I L I I I -++++--++++-=

(2.5)

12211221

n n i n i n i i P I I I I ----= 称P 为排列矩阵,于是(2.3)式可以改写为

1221n n L L L L PA U --= 从而

()11221n n PA L L L L U LU ---== 其中()11221

n n L L L L L ---= 为单位下三角形矩阵,它与(1.4)中的L 区别仅在于第k 列的主对角元一下元素的排序可能不同,取决于消元过程所做的行交换,若设行交换的次数为m ,则还有det (1)det m A U =-

(2.7) 式表明,带行交换的消元过程产生了矩阵PA 的LU 分解,相当于先对系数矩阵A 施行消元过程中所需的行交换后再分解,只要A 非奇异,带行交换的消元过程就可以进行到底

定理2.1 设A 为非奇异矩阵,则必存在排列矩阵P 以及单位下三角形矩阵L 和非奇异上三角形矩阵U ,使

PA LU = (2.8) 3 直接三角分解法

本节以矩阵分解定理和矩阵乘法规则为基础,研究矩阵分解的计算公式以及消去法的变形直接三角分解法

当实现了系数矩阵的三角分解之后,解线性方程组原则上化为解三角形方程组(1.5)和(1.6)其解法在本章§1中已经基本解决了。定理2.1表明,A 在满足一定条件下必有A LU =或PA LU =成立,同时借助于Gauss 消去法得到了L 和U 的表达式,这一节着重研究在A LU =或PA LU =时,L ,U 的元素与A 的元素之间的直接关系,并在此基础上给出求解矩阵方程组AX B =的方法。

3-1 基本的三角分解法

设矩阵()ij n n A a ?=的各阶顺序主子式均不为零,A 有分解式

1112

11112121222212221

212111n n n n n n nn n n nn a a a u u u a a a l u u LU a a a l l u ??????

? ???

? ???=≡ ? ???

? ???

??????

对比等式左边和右边乘积矩阵LU 的第r 行主对角元右边(含主对角元)的对应元素,得

(

)()1

,,;1,,1

3.2r

ij rk ki

k a l u i r n r n ====-∑

再对比等式两边第r 列主对角元以下(不含主对角元)的对应元素,得

(

)()1

1,,;1,,1

3.3r

ir ik kr

k a l u i r n r n ===+=-∑

当1r =时,由()()3.2 3.3和式分别解出

()()()

()

11111

1,2,, 3.41,2,, 3.5i i i ir u a i n a l i n u ===

=

假设已求出U 的第1至1r -行,L 的第1至1r -列,由()3.2和()3.3式分别得出计算U 的第r 行、L 的第r 列元素计算公式:

()()

()()

1

1

1

1

,,;2,, 3.61,,;2,,1 3.7r ri ri rk ki

k r ir ik kr

k ir rr

u a l u i r n r n a l u l i r n r n u -=-==-==-=

=+=-∑∑

称由()3.4~()3.7式所表示的矩阵分解为Doolittle 分解,也称LU 分解。 如果在分解式()3.1中,设U 为单位上三角矩阵,L 为下三角矩阵,用类似于推导Doolittle 分解的方法,可以得到递推地计算L 和U 的公式为

()()

()

()1

11

1

1,,;1,2,, 3.81,,;1,2,,1 3.90r ir ir ik kr

k r ri rk ki

k ri rr

ik kr k l a l u i r n r n a l u u i r n r n l l u -=-===-==-=

=+=-??= ?

??

∑∑∑ 规定

称上述分解为Crout 分解。注意第r 步分解是先算L 的第r 列,后算U 的第r 行,与Crout 分解的计算次序恰好相反。可以证明,当矩阵A 的顺序主子式全不为零,A 可以分解为一个下三角矩阵L 和一个单位上三角矩阵U 的乘积A LU =,且分解是唯一的。

实现了系数矩阵A 的Doolittle 分解或Crout 分解之后,方程组Ax b =的求解

可以分解为Ly b =和Ux y =这两个三角形方程组求解。

设L 为单位下三角形矩阵,U 为上三角形矩阵,并且()01,,ii u i n ≠= ,根据公式()1.8和()1.10得与Doolittle 分解相应的求解方程组的公式为

()()1111 3.102,,r r r ri i i y b y b l y i n -==?

??

=-=??∑

()

()1

, 3.111,,1n n nn

n

r ri i

i r r rr y x u y u x x r n u =+?

=????

-?

?==-??

∑ 类似地。可以得出Crout 分解相应的求解出公式 ()

()1111

11

11

3.122,,r r ri i

i r b y l b l y y i n l -=?

=????

-?

?==??∑

()()1, 3.131,,2,1n n n r r ri i

i r x y x y u x r n =+=?

??

=-=-??

综上所述,直接三角分解法的基本方法有Doolittle 分解和Crout 分解法,他

们都包括分解系数矩阵和求解两个三角形方程组的过程。 例1

用Doolittle 法解方程组

1234210

03103412135123424149137x x x x -?????? ? ? ?--- ? ? ?= ? ? ?-- ? ? ?-????

?? 解 由公式()3.4和()3.5计算得

()()()1112131411121314,,,,,,2,10,0,3u u u u a a a a ==-

()

21314131,,,,222T

T

l l l ??=- ???

对于2,3,4r =,用公式()3.6和()3.7计算得

()()()22232432423334434417,,11,12,

,236,,,111132,,,11119, 4.

T

T

u u u l l u u l u ??

=- ??

?

??=-- ?????=-- ???

=-=-

解Ly b =,由公式()3.11计算得

710,20,,1611T

y ??

=-- ???

解Ux y =

()1,2,3,4T

x =

用电子计算机算时,可以用二维数组()1:;1;1A n n +按行存放增广矩阵(),A b ,数组元素记为()(),1,2,,;1,2,,1.A i j i n j n ==+ 分解计算所得L 及U 的元素冲掉数组A 的相应位置的元素。如用Doolittle 法,则

()()()()

,1,2,,;,1,,1,

,1,2,,1;,1,,ri ir

A r i u r n i r r n A i r l r n i r r n ←==++←=-=+ ,

值得注意的是在计算U 和解y 的公式中,从参与计算的量在数组A 。中所处的相对位置看,它们遵循着相同的规则,如果用r y 冲掉()1,,r b r n = ,那么,可以视

r y 为,1i n u +。在数组A 中,计算(),,1ri u i r n =+ 和()1,,ir l i r n =+ 的公式可以按如下格式计算,即

()(),,ri A r i u A i r ←=-第r 行左方数组元素()(),1,,1A r k k r =- 与第i 列上方数组元素

()()

,1,,1A k i k r =- 对应元乘积之和;

()3.14

)()(),,,ir A i r l A i r A r r ←=-??

??第行左方数组元素与第列上方数组元素对应元乘积之和

()3.15

利用上述格式计算,按第i 步先算行数组元素、后算列数组元素的次序,在完成第n 步计算时,在数组A 上三角部分得到矩阵U 的上三角形部分,在数组A 的严格下三角部分得到L 的严格下三角部分,而在数组A 的最后一部列得到的是

Ly b =的解y 。也就是说,系数矩阵的Doolittle 分解与解方程组Ly b =可以同时

进行,归结为对数组(),A A b =的分解计算。然后再解Ux y =,称这种求解方式为紧凑格式。

设3,N r =表示分解的步数,分解过程中数组A 的变化情况如下

11121311112

13142122

2322122

23243132

33

33132

33

34a a a b a a a a A a a a b A a a a a a

a a

b a a a a ????

?

?=== ? ? ? ?????

111213141112

13141112

13141112

131

232122

23242122

23

242122

23

242122

23

3132

3334313233

343132

33

343132

33

r r r u u u u u u u u u u u u u u u l a a a l u u u l u u u l u u l

a a a l l a a l l u u l l u ===??????? ? ? ?

??→??→??→= ? ? ? ? ? ? ???????分解过程可以缩写为

11121311112

13142122

2322122

23

243132

33

33132

33

341

23

a a a

b u u u u r A a a a b l u u u r a

a a

b l l u u r =????

?

?

=→= ? ? ? ?=???? 例2 用紧凑格式的Doolittle 法解例1中的方程组

解:分解

210

310317

21003101

1112202234121352

133217123423211111111414913746

2941611r r A r r -??

?

-=?? ?-- ? ?---=

? ?

=→ ?--=---- ? ? ?

-=??

?---- ??

?

1210033171

11122

2,1332121111116

291411L U ????

- ? ?

? ?

? ?-- ? ?== ? ?

? ?

--- ? ? ? ? --? -?????

1020171116y ?? ? ? ? ?= ? ?- ? ? -???

(2)解Ux y =,用公式(3.11)计算得 ()1234T

x =

线性代数第3章_线性方程组习题解答

习题3 3-1.求下列齐次线性方程组的通解: (1)?? ? ??=--=--=+-087305302z y x z y x z y x . 解 对系数矩阵施行行初等变换,得 ???? ? ??-----?→?????? ??-----=144072021 1873153211A )(000720211阶梯形矩阵B =???? ? ??-?→? ??? ?? ??-?→?0002720211)(000271021101行最简形矩阵C =????? ? ???→? , 与原方程组同解的齐次线性方程组为 ??? ??? ?=+=+02702 11 z y z x , 即 ??? ??? ?-=-=z y z x 272 11(其中z 是自由未知量), 令1=z ,得到方程组的一个基础解系 T )1,2 7,211(-- =ξ, 所以,方程组的通解为

,)1,2 7,211(T k k -- =ξk 为任意常数. (2)??? ??=+++=+++=++++0 86530543207224321 432154321x x x x x x x x x x x x x . 解 对系数矩阵施行行初等变换,得 ???? ? ??--?→?????? ??=21202014101072211086530543272211A )(7000014101072211阶梯形矩阵B =????? ??-?→? ???? ? ??-?→?70000141010211201 )(100000101001201行最简形矩阵C =???? ? ???→?, 与原方程组同解的齐次线性方程组为 ??? ??==+=++00 025 42431x x x x x x , 即 ??? ??=-=--=025 4 2431x x x x x x (其中43,x x 是自由未知量), 令34(,)T x x =(1,0)T ,(0,1)T ,得到方程组的一个基础解系 T )0,0,1,0,2(1-=ξ,T )0,1,0,1,1(2--=ξ, 所以,方程组的通解为

线性方程组的解法

线性方程组的解法 1 引言 在科学研究和大型工程设计中出现了越来越多的数学问题,而这些问题往往需要求数值解。在进行数值求解时,经离散后,常常归结为求解形如Ax= b的大型线性方程组。而如插值公式,拟合公式等的建立,微分方程差分格式的构造等,均可归结为求解线性方程组的问题.在工程技术的科学计算中,线性方程组的求解也是最基本的工作之一.因此,线性方程组的解法一直是科学和工程计算中研究最为普遍的问题,它在数值分析中占有极其重要的地位。20世纪50年代至70年代,由于电子计算机的发展,人们开始考虑和研究在计算机上用迭代法求线性方程组Ax =b的近似解,用某种极限过程去逐渐逼近精确解,并发展了许多非常有效的迭代方法,迭代法具有需要计算机存储单元少、程序设计简单、原始系数矩阵在计算过程中始终不变等优点。例如Jacobi方法、Gauss—Seidel 方法、SOR方法、SSOR 方法,这几种迭代方法是最常用的一阶线性定常迭代法。 2 主要算法 20世纪50年代至70年代,人们开始考虑和研究用迭代法求解线性方程组。 Ax = b (1) 的近似解,发展了许多有效的方法,其中有Jacobi方法、Gauss—Seidel方法,SOR方法、SSOR方法,这几种迭代方法均属一阶线性定常迭代法,即若系数矩阵A的一个分裂:A =M-N ;M 为可逆矩阵,线性方程组(1)化为: (M-N)X =b; →M X = NX + b; →X= M -1NX+ M-1b 得到迭代方法的一般公式: X(k+1)=HX(k)+d (2) 其中:H =MN-1,d=M-1b,对任意初始向量X(0) 一阶定常迭代法收敛的充分必要条件是: 迭代矩H的谱半径小于1,即ρ(H) < 1;又因为对于任何矩阵范数恒有ρ(H)≤‖H‖,故又可得到收敛的一个充分条件为:‖H‖< 1。 2.1 Jacobi迭代法 若D为A的对角素构成的对角矩阵,且对角线元素全不为零。系数矩阵A的一个分解:A =

求解线性方程组的直接解法

求解线性方程组的直接解法 5.2LU分解 ① Gauss消去法实现了LU分解 顺序消元结束时的上三角矩阵U和所用的乘数,严格下三角矩阵。 将下三角矩阵的对角元改成1,记为L,则有A=LU, 这事实是一般的,我们不难从消去的第k个元素时的矩阵k行及k列元素的 历史得到这一点.因为从消元的历史有 u kj=a kj-m k1u1j- m k2u2j -…- m k,k-1u k-1,j, j=k,k+1,…,n m ik=(a ik-m i1u1k- m i2u2k -…-m i,k-1u k-1,k>/u kk i=k+1,k+2,…,n 于是a kj=m k1u1j+m k2u2j+…+m k,k-1u k-1,j+u kj, j=k,k+1,…,n a ik=m i1u1k+m i2u2k+…+m i,k-1u k-1,k+m ik u kk i=k+1,k+2,…,n 从前面两个式子我们可以直接计算L和U(见下段>.将矩阵分解为单位下 三角矩阵和上三角矩阵之积称为矩阵的LU分解.顺序消元实现了LU分 解,同时还求出了g, Lg=b的解. ②直接LU分解 上段我们得到(l ij=m ij> u kj=a kj-l k1u1j-l k2u2j -…- l k,k-1u k-1,j, j=k,k+1,…,n l ik=(a ik-l i1u1k-l i2u2k -…-l i,k-1u k-1,k>/u kk i=k+1,k+2,…,n 2 诸元素对应乘积,只不过算L的元素时还要除以同列对角元.这一规律很 容易记住.可写成算法(L和U可存放于A>: for k=1:n-1 for j=k:n u kj=a kj-l k1u1j-l k2u2j -…- l k,k-1u k-1,j end for i=k+1:n l ik=(a ik-l i1u1k-l i2u2k -…-l i,k-1u k-1,k>/u kk end end 这一算法也叫Gauss消去法的紧凑格式,可一次算得L,U的元素,不需逐步 计算存储.

线性方程组典型习题及解答

线性方程组 1. 用消元法解方程组?????? ?=- +-+=-- + - =-+-+ =- -+-5 2522220 21 22325 4 321 53 2 154321 5 4321x x x x x x x x x x x x x x x x x x x . 解: 方程组的增广矩阵 : ????? ???????---------→????????????---------→????????????---------420200110100112430211321312630202530112430211321512522110112121111211321? ??? ????? ???--------→60000 0110100112430211321,可知,系数矩阵的秩为3,增广矩阵的秩为4,系数矩阵的秩不等于增广矩阵的秩,从而方程组无解. 2. 讨论λ为何值时,方程组??? ??=++ = + +=++2 3 2 1 3 2 1 321 1 λλλλλx x x x x x x x x 有唯一解、无解和有无穷多解。 解:将方程组的增广矩阵进行初等行变换,变为行阶梯矩阵。 ()() ()()B A =??? ? ???? ? ?+------→→???? ????? ?→?? ??? ?????=22 2 2211210 1101 111 1 11111 1 1 1 111λλλλλλλ λλλ λλλλλλλ λλ λΛ于是,当2,1-≠λ时,系数矩阵的秩等于增广矩阵的秩,都等于3,等于未知量的个数,此 时方程组有唯一解;2 )1(,21,213 321++-=+=++- =λλλλλx x x 当2-=λ时,系数矩阵的秩为2,增广矩阵的秩为3,此时方程组无解; 当1=λ时,系数矩阵的秩等于增广矩阵的秩,都等于1,小于未知量的个数,此时方程组有无穷多解,即3211x x x --=,其中32,x x 为自由未知量。

解线性方程组的直接解法

解线性方程组的直接解法 一、实验目的及要求 关于线性方程组的数值解法一般分为两大类:直接法与迭代法。直接法是在没有舍入误差的情况下,通过有限步运算来求方程组解的方法。通过本次试验的学习,应该掌握各种直接法,如:高斯列主元消去法,LU分解法和平方根法等算法的基本思想和原理,了解它们各自的优缺点及适用范围。 二、相关理论知识 求解线性方程组的直接方法有以下几种: 1、利用左除运算符直接求解 线性方程组为b x\ =即可。 A Ax=,则输入b 2、列主元的高斯消元法 程序流程图: 输入系数矩阵A,向量b,输出线性方程组的解x。 根据矩阵的秩判断是否有解,若无解停止;否则,顺序进行; 对于1 p :1- =n 选择第p列中最大元,并且交换行; 消元计算; 回代求解。(此部分可以参看课本第150页相关算法) 3、利用矩阵的分解求解线性方程组 (1)LU分解 调用matlab中的函数lu即可,调用格式如下: [L,U]=lu(A) 注意:L往往不是一个下三角,但是可以经过行的变换化为单位下三角。 (2)平方根法

调用matlab 中的函数chol 即可,调用格式如下: R=chol (A ) 输出的是一个上三角矩阵R ,使得R R A T =。 三、研究、解答以下问题 问题1、先将矩阵A 进行楚列斯基分解,然后解方程组b Ax =(即利用平方根法求解线性方程组,直接调用函数): ??????? ??--------=19631699723723312312A ,?????? ? ??-=71636b 解答: 程序: A=[12 -3 2 1;-3 23 -7 -3;2 -7 99 -6;1 -3 -6 19]; R=chol(A) b=[6 3 -16 7]'; y=inv(R')*b %y=R'\b x=inv(R)*y %x=R\y 结果: R =3.4641 -0.8660 0.5774 0.2887 0 4.7170 -1.3780 -0.5830 0 0 9.8371 -0.7085 0 0 0 4.2514 y =1.7321 0.9540 -1.5945 1.3940 x =0.5463 0.2023 -0.1385 0.3279 问题 2、先将矩阵A 进行LU 分解,然后解方程组b Ax =(直接调用函数): ?????????? ??----=8162517623158765211331056897031354376231A ,????????? ? ??-=715513252b

线性方程组的解法及其应用

线性方程组的解法及其应用 The solution of linear equation and its application 专业:测控技术与仪器 班级: 2010-1班 作者:刘颖 学号: 20100310110105

摘要 线性方程组是线性代数的一个重要组成部分,也在现实生产生活中有着广泛的运用,在电子工程、软件开发、人员管理、交通运输等领域都起着重要的作用。在一些学科领域的研究中,线性方程组也有着不可撼动的辅助性作用,在实验和调查后期利用线性方程组对大量的数据进行处理是很方便简捷的选择。本文主要围绕如何解线性方程组来进行讲解,对于不同类型的线性方程组的不同方法,并简述线性方程组的一些实际应用。 关键词: 齐次线性方程组,非齐次线性方程组,克莱姆法则,消元法,矩阵,矩阵的秩,特解,通解。

Abstract Linear equations linear algebra is one of the important component parts, and in real life has extensive production use,and it plays an important role in electronic engineering, software development, personnel management, transportation, etc. In some discipline study, it also has the reigns of linear equations of the auxiliary function.In experiment and survey using the linear equations of the late on the data processing is very convenient simple choice. This article, focusing on how to solve linear equations to explain, for different types of linear equations of different methods, and briefly introduces some of the practical application of linear equations. Keywords: Homogeneous linear equations, Non homogeneous linear equation,Clem’s law,Elimination method,Matrix,Rank of matrix,Special solution,General solution.

解线性方程组直接解法

第2章 解线性方程组的直接解法 §0 引言 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 +++=??+++=??? ?+++=?L L L L 1112121 22212112,(,,,),()n n T T n n n n nn a a a a a a A x x x x b b b a a a ??????===??? ??? ? ?L L L L L L L Ax b = 若A 非奇异,即det()0A ≠,方程组Ax b =有唯一解。由 Cramer 法则,其解 det(),1,2,,det() i i A x i n A = =L 其中i A 为用b 代替A 中第i 列所得的矩阵。当n 大时, 1n +个行列式计算量相当大,实际计算不现实。 121212(,)12det()(1)n n n i i i i i i n i i i A a a a τ=-∑L L L §1 Gauss 消去法 (I )Gauss 消去法的例子 (1)1231123 212336 ()123315()18315() x x x E x x x E x x x E ++=??-+=??-+-=-? 2131()12(),()(18)()E E E E -?--? (2) 12312342356 ()15957()211793()x x x E x x E x x E ++=?? --=-??+=?

方程组13()()E E -与方程组145(),(),()E E E 同解 541 ()21( )()15 E E --得 (3)1231234366()15957()3() x x x E x x E x E ++=?? --=-??=? 由(3)得3 213,2,1x x x === 123(,,)(1,2,3)T T x x x = (3)的系数矩阵为11 10159001????--?????? ,上三角 矩阵。 (II )Gauss 消去法,矩阵三角分解 Ax b = 1112 11,12122 22,112 ,1 n n n n n n nn n n a a a a a a a a A b a a a a +++????????=?????????? L M L M L L M M L M 令(1) ,1,2,,;1,2,,,1ij ij a a i n j n n ===+L L (1)(1)A b A b ??=?? ???? 第1次消去 (1) 110a ≠, 令 (1)1 1(1)11 , 2,3,,i i a l i n a ==L 作运算:11()()i i i l E E E -+→ i E 表示第i 个方程(第i 行) 2,3,,i n =L (2)(1)(1) 111110 2,3,,i i i a a l a i n =-==L

线性方程组的直接解法及matlab的实现

本科毕业论文 ( 2010 届) 题目线性方程组的直接解法及matlab的实现 学院数学与信息工程学院 专业数学与应用数学 班级2006级数学1 班 学号0604010127 学生姓名胡婷婷 指导教师王洁 完成日期2010年5月

摘要 随着科技技术的发展及人类对自然界的不断探索模拟.在自然科学和工程问题中的很多问题的解决常常归结为线性代数问题! 本文的主要内容是对线性方程组求解方法的探讨,主要介绍了四种求解线性方程组的方法,第一种是教科书上常见的消元法,我们称之为基本法.第二种方法是标准上三角形求解法,即将增广矩阵经过初等变换后化成标准上三角形,然后求解.它改进了一般教科书上的常见方法,与常见方法比较有如下优点:1)规范了自由未知量的选取;2)只用矩阵运算;3)减少了计算量.第三种方法是对特定的方程组(系数矩阵A为n阶对称正定矩阵,且A的顺序主子式均不为零.)的求解方法进行描述,并且为这种线性方程的求解提供了固定的公式化的方法.第四种方法是对现在实际问题中常常会遇到的系数矩阵为三对角矩阵的方程组的求解方法.同时给出这几种方法的数值解法(matlab程序),由于运用电脑软件求解,所以必须考虑计算方法的时间、空间上的效率以及算法的数值稳定性问题,所以针对不同类型的线性方程组有不同的解法.但是,基本的方法可以归结为两大类,即直接法和迭代法. 关键词 高斯消去法;三角分解法;乔莱斯基分解法;追赶法

Abstract Systems of linear equations are associated with many problems in engineering and scinence ,as well as with applications of mathematics to the social sciences and the quantitative study of business and economic problems. The main content of this article is the method for solving linear equations, we introduce four methods for solving linear equations in this paper. The first is the elimination method which is commonly found in textbooks, and we call the Basic Law. The second method is Standard on the triangle Solution, that first change Augmented matrix into standards in primary triangle, and then solving. It improves the general textbook on common methods, compared with the common method has the following advantages:1) Specification of the free choice of unknowns; 2)Only matrix operations;3) Reduce the computation. The third method describes a way to solve a Specific equations(N coefficient matrix A is symmetric positive definite matrix, and A are not zero-order principal minor), And for this linear equation provides a fixed formulaic approach. The fourth method is to present practical problems often encountered in the coefficient matrix is tridiagonal matrix method for solving the equations. These methods are given numerical solution of (matlab program), As the use of computer software to solve, it is necessary to consider ways of computing time and space efficiency and numerical stability of algorithms, Therefore, different types of linear equations have a different solution. However, the basic method can be classified into two categories, namely direct methods and iterative methods. Key words Gaussian elimination; Triangular decomposition; Cholesky decomposition method; Thomas algorithm

齐次和非齐次线性方程组的解法(整理定稿)

线性方程组解的结构(解法) 一、齐次线性方程组的解法 【定义】 r (A )= r 时,若()r A n ≤,则存在齐次线性方程组的同解方程组; $ 若()r A n >,则齐次线性方程组无解。 1、求AX = 0(A 为m n ?矩阵)通解的三步骤 (1)?? →A C 行 (行最简形); 写出同解方程组CX =0. (2) 求出CX =0的基础解系,,,n r -12ξξξ; (3) 写出通解n r n r k k k --=++ +1122X ξξξ其中k 1,k 2,…, k n-r 为任意常数.

解线性方程组

课程设计阶段性报告 班级:学号:姓名:申报等级: 题目:线性方程组求解 1.题目要求:输入是N(N<256)元线性方程组Ax=B,输出是方程组的解,也可能无解或有多组解。可以用高斯消去法求解,也可以采用其它方法。 2.设计内容描述:将线性方程组做成增广矩阵,对增广矩阵进行变换然后采用高斯消元法消去元素,从而得到上三角矩阵,再对得到的上三角矩阵进行回代操作,即可以得到方程组的解。 3.编译环境及子函数介绍:我使用Dev-C++环境编译的,调用uptrbk() FindMax()和ExchangeRow(),uptrbk是上三角变换函数,FindMax()用于找出列向量中绝对值最大项的标号,ExchangeRow()用于交换两行 4. 程序源代码: #include #include #include //在列向量中寻找绝对值最大的项,并返回该项的标号 int FindMax(int p,int N,double *A) { int i=0,j=0; double max=0.0; for(i=p;imax) { j=i; max=fabs(A[i*(N+1)+p]); } } return j;

//交换矩阵中的两行 void ExchangeRow(int p,int j,double *A,int N) { int i=0; double C=0.0; for(i=0;i

线性方程组的平方根解法

浅析线性方程组的平方根解法 在求解线性方程组时, 直接解法有顺序高斯消元法、列主元高斯消元法、全主元高斯消元法、高斯约当消元法、消元形式的追赶法、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 分解为:

i DU i 其中D 为对角矩阵,Ui 为单位上三角阵?于是:A = LDU 仁L(DUI) 因为A 为对称矩阵,所以,A = AT = UITDTL 七U 仃(DLT),由A 的LU 分解的惟一 性即得:L = UIT,即 Ui = LT ,故 A = LDLT 工程技术中的许多实际问题所归结出的线性方程组,其系数矩阵常有对称正定 性,对于具有此类特殊性质的系数矩阵,利用矩阵的三角分解法求解是一种较好 的有效方法,这就是对称正定矩阵方程组的平方根法及改进的平方根法, 这种方 法目前在计算机上已被广泛应用。 定理3对称矩阵A 为正定的充分必要条件是A 的各阶顺序主子式大于零。 2对称正定矩阵的三角分解 定理(Cholesky 分解)设A 为n 阶对称正定矩阵,则存在惟一的主对角线元素 都是正数的下三角阵L ,使得:A = LLT 。 分解式A = LLT 称为正定矩阵的Cholesky 分解,利用Cholesky 分解来求解系数 矩阵为对称正定矩阵的方程组AX ^ b 的方法称为平方根法。 设A 为4阶对称正定矩阵,则由定理 4 知,A = LLT ,即: a ii a i2 a i3 a i4 l ii 0 0 0 l ii l 2i l 3i l 4i a 21 a 22 a 23 a 24 l 2i l 22 0 0 0 l 22 l 32 l 42 a 3i a 32 a 33 a 34 l 3i l 32 l 33 0 0 l 33 l 43 a 4i a 42 a 43 a 44 l 4i l 42 l 43 144 l 44 将右端矩阵相乘, 并令两端矩阵的元素相等, 于是不难算得矩阵 L 的元素的计算 公式为: 平方根法的计算框图见图 用平方根法求解系数矩阵对称正定的线性方程组时,计算过程是数值稳定 U ii U 22 U l2 U in U ii 1 U nn U 2n U 22 U nn

3线性方程组典型习题解析

3 线性方程组 3、1 知识要点解析(关于线性方程组的常用表达形式) 3.1.1 基本概念 1、方程组1111221n 1211222 2n 2m11m22mn m x x b x x b x x b a a a a a a a a a +++=??+++=? *???++ +=? 称为含n 个未知量m 个方程的线性方程组, i)倘若12m b ,b ,....,b 不全为零,则该线性方程组称为非齐次线性方程组; ii)若12m b =b = =b 0=,则该线性方程组就就是齐次线性方程组, 这时,我们也把该方程组称为1111221n 1211222 2n 2m11m22mn m x x x x x x a a a a a a a a a ++ +=??+++=? ???++ +=?c c c 的导出组, (其中12m c ,c ,...c 不全为零) 2、记1111 1221 n m x b x b ,x ,b x b n m mn a a A a a ???? ?? ? ? ? ? ?== ? ? ? ? ? ??? ???? = 则线性方程组(*)又可以表示为矩阵形式 x b A =** 3、又若记 1j 2j j mj ,j 1,2, n a a a α?? ? ? == ? ? ??? 则上述方程游客一写成向量形式 1122n n x x x b. ααα++ +=***。 同时,为了方便,我们记(,b)A A =,称为线性方程组(*)的增广矩阵。 3.1.2 线性方程组解的判断

1、齐次线性方程组x 0A =,(n=线性方程组中未知量的个数 对于齐次线性方程组,它就是一定有解的(至少零就就是它的解), i)那么,当r n A =秩()=时,有唯一零解; ii)当r n A =秩()<时,又非零解,且线性无关解向量的个数为n-r 、 2、非齐次线性方程组x b A = ()<() ()=()=n, ()=()()=()() A A A A A A A A A A A ?? ???????? ? ?秩秩无解;秩秩有唯一解, 秩秩秩秩有无穷多解,且基础解系个数为 -秩秩秩不可能 3.1.3 线性方程组的解空间 1、齐次线性方程组的解空间 (作为线性方程组的一个特殊情形,在根据其次线性方程与非齐次线性方程组解 的关系,我们这里首先讨论齐次线性方程组的解空间) 定理:对于数域K 上的n 元齐次线性方程组的解空间W 的维数为 A dim(W)=n-秩()=n-r , 其中A 就是方程组的系数矩阵。那么,当齐次线性方程组[(*)--ii)] 有 非零解时,它的每个基础解系所含解向量的数目都等于A n-秩()。 2、 非齐次线性方程组的解空间 我们已知线性方程组的解与非齐次线性方程组的解的关系,那么我们可 首先求出非齐次线性方程组的一个解γ0(称其为方程组特解);然后在求对应的导出组的解空间(设该解空间的基础解系为ηηη12n-r ,,...),则(*)解空间的维数为n-r,且非齐次线性方程组的每一个解都可以表示为: 2.................()k k k γηηη+?0112n-r n-r ++...+ 我们称其为该非齐次线性方程组(*)的通解、

浅析线性方程组的解法

目录 摘要................................................................................... I Abstract. ............................................................................. II 第一章绪论............................................................................ I 1.1引言 (1) 1.2线性方程组解的求解方法的研究现状 (1) 1.3本文对线性方程组解法的研究结构 (1) 第二章线性方程组理论基础 (2) 2.1 线性方程组概念 (2) 2.2 线性方程组的解的情况分析 (2) 2.3 齐次线性方程组解的结构 (4) 2.4非齐次线性方程组解的结构 (4) 第三章线性方程组的数值解 (5) 3.1 迭代法 (5) 3.1.1 Jacobi方法 (6) 3.2.2 高斯-赛德尔方法 (8) 第四章全文总结和展望 (10) 4.1 全文总结 (10) 4.2 未来展望 (10) 参考文献 (11) 致谢................................................................. 错误!未定义书签。

线性方程组的求解方法 学生:指导教师: 摘要:本文在对线性方程组解的结构的研究背景与意义分析的基础上,对线性方程组的求解方法的研究现状进行了介绍,之后针对线性方程组展开了研究,包括线性方程组的概念、线性方程组的求解方法以及线性方程组的作用等,在对线性方程组有了全面的认识后,基于线性方程组解的结构展开了研究,包括线性方程组解的基本定理,齐次和非齐次线性方程组解的结构形式,以及齐次和非齐次线性方程组解的结构,我们用迭代法中最常用的Jacobi方法中的相似上三角矩阵定理和迭代法中的收敛性讨论线性方程组的数值解法,并用高斯-赛德尔方法进行验证。得到线性方程组的数值解的一般方法。最后,对全文进行了总结和展望。 关键词:线性方程组;数值解;迭代法;Jacobi方法;高斯-赛德尔方法

线性方程组的直接解法 实验报告

本科实验报告 课程名称:数值计算方法B 实验项目:线性方程组的直接解法 最小二乘拟合多项式 实验地点:ZSA401 专业班级:学号:201000 学生姓名: 指导教师:李志 2012年4月13日

线性方程组的直接解法 一、实验目的和要求 实验目的:合理利用Gauss 消元法、LU 分解法或追赶法求解方程组。 实验要求:利用高斯消元法,LU 分解法或追赶法进行编程,求解题中所给的方程组。 二、实验内容和原理 实验内容:合理利用Gauss 消元法、LU 分解法或追赶法求解下列方程组: ① ?? ?? ? ?????=????????????????????13814142210321321x x x ②??? ? ?? ??????=????????????????????? ?? ? ??--?-2178.4617.5911212592.1121130.6291.513 14 .59103.043 2115x x x x ③?? ??? ??? ? ???????----=????????????????????????????????-55572112112112121 n n x x x x (n=5,10,100,…) 实验原理:这个实验我选用的是高斯消元法。高斯消元法:先按照 L ik =a ik^(k-1)/a kk^(k-1) , a ij^(k)=a ij^(k-1)-l ik a kj^(k-1) [其中k=1,2,…,n-1;i=k+1,k+2,…,n;j=k+1,k+2,…,n+1] 将方程组变为上三角矩阵,再经过回代,即可求解出方程组的解。 三.计算公式 通过消元、再回代的求解方法称为高斯消元法。特点是始终消去主对角线 下方的元素。 四、操作方法与实验步骤 #include "Stdio.h" #define N 3 main() { double a[N][N+1],b[N]; int i,j,k,x=0; for(i=0;i

线性方程组的直接解法

第2章线性方程组的直接解法 2.1实验目的 理解线性方程组计算机解法中的直接解法的求解过程和特点,学习科学计算的方法和简单的编程技术。 2.2概念与结论 1. n阶线性方程组 如果未知量的个数为 n ,而且关于这些未知量x1,x2, …,x n的幂次都是一次的(线性的)那末, n 个方程 a11x1+a12x2+ … +a1n x n=b1 ┆┆┆ (1) a n1x1+a n2x2+ … +a nn x n= b n 构成一个含n个未知量的线性方程组,称为n阶线性方程组。其中,系数a11,…,a1n,a21, …,a2n, …,a n1, …,a nn 和b1, …,b n都是给定的常数。 方程组(1)也常用矩阵的形式表示,写为 Ax=b 其中,A是由系数按次序排列构成的一个n阶矩阵,称为方程组的系数矩阵,x和b都是n维向量,b称为方程组的右端向量。 2. n阶线性方程组的解 使方程组(1)中每一个方程都成立的一组数x1*,x2*, …,x n*称为式(1)的解,把它记为向量的形式,称为解向量. 3.一些特殊的线性方程组 1) 上三角方程组 2) 三对角方程组 ? ? ? ? ? ? ? ? ? ? ? ? = ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? - - - - - n n nn n n n n n n n n b b b x x x a a a a a a a a a a a a 2 1 2 1 1 1 1 2 1 2 23 22 1 1 1 13 12 11

4.矩阵的Doolittle 分解 5.Doolittle 分解的紧凑格式 6.矩阵的Crout 分解 ????????? ? ??=?????????? ???????????? ? ?--n n n n n n d d d x x x b a c b c b a c b a c b 21 2111333 22211???? ?? ? ? ???????? ??=??????? ??nn n n n n nn n n n n u u u u u u l l l a a a a a a a a a 222 11211 2 1 21 2 1 2222111211111 ???? ?? ? ? ???????? ??=??????? ??11 1 21122 1 2221 11 2 1 2222111211 n n nn n n nn n n n n u u u l l l l l l a a a a a a a a a ????? ?? ? ??nn n n n n n n u l l l u u l l u u u l u u u u 3 2 1 333323122322211131211

解线性方程组直解法

第2章 解线性方程组的直接解法 §0 引言 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 +++=??+++=????++ +=? 1112121 22212112,(,,,),()n n T T n n n n nn a a a a a a A x x x x b b b a a a ??????===???????? Ax b = 若A 非奇异,即det()0A ≠,方程组Ax b =有唯一解。由 Cramer 法则,其解 det(),1,2,,det()i i A x i n A == 其中i A 为用b 代替A 中第i 列所得的矩阵。当n 大时, 1n +个行列式计算量相当大,实际计算不现实。 121212(,)12det()(1)n n n i i i i i i n i i i A a a a τ=-∑ §1 Gauss 消去法 (I )Gauss 消去法的例子 (1)1231123212336()123315()18315()x x x E x x x E x x x E ++=??-+=??-+-=-? 2131()12(),()(18)()E E E E -?--? (2) 12312342356()15957()211793()x x x E x x E x x E ++=??--=-??+=?

方程组13()()E E -与方程组145(),(),()E E E 同解 541 ()21()()15E E --得 (3)1231234366 () 15957() 3() x x x E x x E x E ++=??--=-??=? 由(3)得3213,2,1x x x === 123(,,)(1,2,3)T T x x x = (3)的系数矩阵为11 10159001?? ?? --?????? ,上三角 矩阵。 (II )Gauss 消去法,矩阵三角分解 Ax b = 111211,1 212222,1 12,1 n n n n n n nn n n a a a a a a a a A b a a a a +++????????=?????????? 令(1) ,1,2,,;1,2,,,1 ij ij a a i n j n n ===+ (1)(1)A b A b ??=?????? 第1次消去 (1) 110a ≠, 令 (1) 1 1(1)11 ,2,3,,i i a l i n a == 作运算:11()()i i i l E E E -+→ i E 表示第i 个方程(第i 行) 2,3,,i n = (2)(1)(1) 1111102,3,,i i i a a l a i n =-==

相关文档
最新文档