搜档网
当前位置:搜档网 › 第二章 线性方程组的数值解法

第二章 线性方程组的数值解法

第二章  线性方程组的数值解法
第二章  线性方程组的数值解法

第二章 线性方程组的数值解法

在科技、工程技术、社会经济等各个领域中很多问题常常归结到求解线性方程组。例如电学中的网络问题,样条函数问题,构造求解微分方程的差分格式和工程力学中用有限元方法解连续介质力学问题,以及经济学中求解投入产出模型等都导致求解线性方程组。

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 L K K K K L L 22112

222212********* (1.1) 其矩阵形式为

b Ax = (1.2) 其中

?????

???????=???

?????????=?

?

?????

?????=

n n nn n n n n b b b b x x x x a a a a a a a a a A M M L K K K K L L 2121212222111211

),,2,1,(n j i a ij L =,),,2,1(n i b i L =均为实数,i b 不全为0,且A 为非奇异。

关于线性方程组的数值解法一般分为两类:

1.直接法 就是不考虑计算机过程中的舍入误差时,经有限次的四则运算得到方程组准确解的方法。

而实际中由于计算机字长的限制,舍入误差的存在和影响,这种算法也只能求得线性方程组的近似解。本章将阐述这类算法中最基本的消去法及其某些变形。这些方法主要用于求解低阶稠密系数矩阵方程组。

2.迭代法 从某个解的近似值出发,通过构造一个无穷序列,用某种极限过程去逐步逼近线性方程组的精确解的方法。本章主要介绍迭代法与迭代法。迭代法是解大型稀疏矩阵(矩阵阶数高而且零元素较多)的线性方程组的重要方法。

§1 高斯)(Gauss 消去法

1.1 Gauss 消去法

Gauss 消去法是将线性方程组化成等价的三角形方程组求解。首先举例说明Gauss

消去法的基本思想和过程。

例1 解线性方程组

???

??=?+=+?=?+2

24056242321

321321x x x x x x x x x (1.3)

解 用 2

1

?

乘第一个方程的两端并加至第二个方程,然后用2?乘第一个方程两端加至第三个方程,得同解方程组

??

?

?

??=+??=+?=?+102736362423232321x x x x x x x (1.4) 再消去第三个方程中的变量2x ,又可得到与(1.4)等价的方程组

??

?

???=??=+?=?+3123636242332321x x x x x x (1.5)

这是一个三角形方程组。这时,我们可从(1.5)的第三个方程解出3x ,然后回代第二个方程解出2x ,继续回代到第一个方程,则解为

T x )4

1

,23,41(=

上述解方程组的方法就是Gauss 消去法。一般地求解n 阶线性方程组(1.1)的步骤由如下1?n 步组成

将( 1.2)记为)0()

0(b x A

=,)(0

)0(ij a A =,0)0(i b b =。其中

)0()0()0()|()|(A b A b A ==

第一步 设0)

0(11

≠a

,记),,3,2()0(11

)

0(11n i a a l i i L ==。用1i l ?乘)0(A 的第一行加到

第i 行上,将第一列的元素13121,,,n a a a L 消为零,得

???

???

?

???????==)1()

1()1(2

)

1(2)

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

0(1)0(12)0(11)1()

1(00

)|(n nn n n

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

A L L L

L L L

L L (1.6) 式中)

0(1)0()1(ij i ij ij a l a a ?=,),,3,2,()0(1)0()

1(n j i b l b b i i i i

L =?=。

第二步 设0)

1(22

≠a

,记),,4,3()1(22

)1(2

2n i a a l i i L ==,将)1(A 的第二列元素

)1(2)1(42)1(32,,,n a a a L 消为零,完成第二次消元。仿此继续进行消元,假设进行了1?k 步,

得到

???

?

??

???

?

?????

????

?==???????)1()1()

1()

1()

1()

1(2

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

0(11)1()

1()

1(0

000000)|(n k nn k nk k kn k kk n k

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

A

L

L

L L L

L

L L L

L L L L L L L L L L L L (1.7)

一般第k 步)

11(?≤≤n k

设0)

1(≠?k kk

a ,计算乘数

),,1()1()

1(n k i a a l k kk

k ik ik L +==??,将)1(?k A 的第k 列的元素)

1()1(1,,??+k nk

k k k a a L 消为零,完成1?n 次消元后,我们可得到上梯形矩阵

???

???

?

???????==?????)1()

1()

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

0(1)0(12)0(11)1()

1(1

)|(n n n nn

n

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

A

L L L

L L L

L L (1.8) 其中,

??????=?===??????)

1()1()()1()1()()

()1()1(,0

,/k k ik k i

k i k kj ik k ij k ij k ik k kk k ik ik b l b b a l a a a a a l n k j i ,,1,L += (1.9) 式中的元素)

1(?k kk

a 称为(第k 步)的约化主元素,显然第k 步消元可以进行的条件是

0)1(≠?k kk a ,可以证明0)1(≠?k kk a 的充要条件是A 的各阶顺序主子式

)1,,2,1(02

1222

21

112

11?=≠?

?

???

??

?????=n k a a a a a a a a a A kk k k k k k L L K K K K L L 。

若0)

1(=?k kk a ,由于A 为n 阶非奇异矩阵,所以)

1()1(1,,??+k nk k k k a a L 中至少有一不为零。

例如)(0)

1(k r a k rk

>=?,于是可交换第r 行和第k 行,然后进行消元计算。

(1.8)式中)

1(?n A

对应的上三角形方程组与(1.1)同解

??

?

???

?==++=+++??)1()1()

1(2

122)1(22)0(1)0(12)0(121)0(11n n n n nn n n n n b x a b x a x a b x a x a x a L L L L L L (1.10) Gauss 消去法的回代过程是解三角形方程组(1.10),可以从下到上逐次把

11,,,x x x n n L ?的值计算出来,容易得到解的计算公式为

??

????==?+=????∑)1(11)1(1)

1(/][/k kk n k j j k kj k k k

n nn n n n a x a b x a b x 1,,2,1L ??=n n k (1.11)

1.2 Gauss 消去法的计算量

由消去法步骤可知,消去第一列1?n 个系数所需要的乘法运算次数为n n )1(?,消去第二列2?n 个系数需要)1)(2(??n n 次乘法运算。最后,消去第1?n 列中的一个系数需要1*2次乘法运算。所以,共需乘法运算总次数为

n n n n n n n k k k k n

k n k n k 3

131]1)1(21[1)12)(1(61)1(32

2

2

1

?=?+??++=

?=?∑∑∑=== 其次,生成ij l 时还需要除法运算,总数为

n n

n n k n k 2

1

21

)1(212

1

1

?=?=∑?= 在回代求解时,需要作乘法运算,次数为

n n k n k 2

12121

1

?=

∑?= 同时,还需要进行n 次除法。因此,求解过程共需乘除法运算的次数为

n n n n n n n n 3

1

31]2121[231312323?+=+?+? 对于较大的n ,

所需运算的工作量可用3

3

1n 来估计,因为相对来讲低阶项微不足道,而加减法运算所需时间远少于乘除法,所以分析算法有效性时往往只统计乘除法次数。 由上面的公式容易求出,求解30阶线性方程组时,用Gauss 消去法只需要9890次乘除法运算,在第一章第 节中我们曾指出,若用Cramer 法则求解则需要 次乘除法运算。

§2 Gauss 主元素消去法

2.1 主元的选取对求解的影响

在Gauss 消去法的消元过程中,只要求保证0)

1(≠?k kk a )1,,2,1(?=n k L ,但主

元素的选取对结果会产生很大影响。例如0)

1(≠?k kk

a 而绝对值很小时,用其作除数,会导

致其它元素的数量级急剧增加因而舍入误差也增大,最后会使计算结果不可靠。

例1 解方程组

??

?

??=++=++=++96

.05.696.00.5020.036.05.40.20.61.31.15.0321321321x x x x x x x x x (2.1)

用3位浮点数进行计算。

解 若按自然顺序选取主元,则消元结果如下

??????????????→????

???????????→????

?

?????=24601220000.240.12100.0000.610.310

.1500.05905.240.100

0.240.12100.0000.610.310

.1500.0960.050.6960

.000.5020.0360.050

.400.200.610.310

.1500.0)|()0()0(b A

回代求解便得

02.2,40.2,80.5*

3*2*1==?=x x x

但是满足方程组(2.1)的精确解为

00.2,00.1,60.2321==?=x x x

显然,近似解是一个很坏的结果。

为了改善计算结果,在消元时可选取绝对值较大的系数作为主元。例如,在消元的第一步可选第三个方程中1x 的系数5.00作为主元,这时消元结果则为

????

????????→???????

?????→?

??????

????99.599

.200364.024.212.40960.050

.6960.0500.090.545.200.10

364.024.212.40960.050

.6960.0500.000.610.310.1500.0020.0360.050.40.2960.050.6960.00

.5)|(31)0()

0(r r b A 最后回代求解得

00.2,00.1,60.2*

3*2*1==?=x x x

该解与精确解一样。

上例说明,在采用Gauss 消去法解方程时,小主元可呢功能会导致计算失败,而应选取绝对值较大的元素作为主元,由此也导出了主元素法。

2.2列主元素法

为了使消元过程不至于中断和减少舍入误差的影响,我们不逐次选取不为零的主对角线上的元素作为主元,例如第k 步,从)

1()1(1)

1(,,,??+?k nk

k k k k kk a a a L 中选取绝对值最大的元素为主元,即求k i 满足

)1()1(max ?≤≤?=k i n

i k k k i k k a a

这种选主元素的消元法称为列主元素消去法。这样可使乘数绝对值不大于1,也就是

1≤ik l ,从而不放大误差。

在使用计算机求解方程组时,为节约存贮单元,消元后得到的)

(k ij a 自然可以存放在原来的增广矩阵)

1(?k ij

a 的位置上,因此可以将)

(k ij a 右上角标记去掉。在算法表述中将公式

(1.9)和(1.11)中的等式“=”改为赋值号“←”。

算法2.1 应用Guass 列主元消去法解n 阶线性方程组b Ax = 输入 方程组的阶数n ;增广矩阵)|()

0(b A A

=。

输出 方程组的解n x x x ,,,21L 或系数矩阵奇异的信息。

step 1 选主元:求k i 使

ik n

i k k i a a k ≤≤=max

step 2 若0=k i k a ,则系数矩阵为奇异,停机;否则转入step 3

step 3 若k i k =,则转step 4-5;否则,换行j i kj k a a ?),,1,(n k k j L +=,

ik k b b ?

step 4 计算乘数kk ik ik ik a a l a /=←),,1(n k i L +=

step 5 消元计算

k

ik i i kj ik ij ij b l b b a l a a ?←?← ),,1,(n k j i L +=

step 6 回代求解

,

,1

/)(/a x a b x a b x n

k j j kj k k nn n n ∑+=?

←← ),,1(n n k L ?=

step 7 输出(n x x x ,,,21L )

在Guass 消去法的消元过程的第k 步,若从)

1()1(1)

1(,,,??+?k nk

k k k k kk a a a L 中选取绝对值最大的元素作主元,即)

1()

1(max ?≤≤?=k k n

j k k j k j

k a a 经这样修改的Guass 消去法称为Guass 行主元消去法。

2.3 全主元素法

所谓全主元Guass 消去法,就是在消元过程的第k 步中,不是仅按行(列)选主元,而是在系数矩阵右下角1+?k n 阶方阵中选)

1(,)

1(max ?≤≤?=k ij n

j i k k j i a a k

k

作为主元。 一般在列和行消去法中,所选主元仍是一个绝对值很小的数时才用Guass 全主元消去法,它与列主元和行主元消去法相比,显然运算量要大得多,而行主元消去法要记录列交换的信息。一般情形下,列主元Guass 消去法也能满足计算精度要求,是解线性方程组的使用方法之一。

§3 直接三角分解法

3.1 Guass 消去法的矩阵表示形式

Guass 消去法的消元过程是对方程组(1.1)对应的增广矩阵进行一系列初等变换,将系数矩阵A 化成上三角形矩阵的过程。例如,列主元消去法消元过程,也等价于一系列

初等矩阵左乘增广矩阵,第一次消元相当于用初等矩阵

???

??

??

?

???

????????=100

010

00

10001131211L L L L L L L L

L n l l l

L (3.1)

左乘矩阵)|()0()0()

0(b A A

=。第二步及第k 步相当于分别用矩阵

??????????????????=100010001000012321L L L L L L L L L n l l L ,??????????????

???

??

???=+1111

1k n k k k l l L O M O

(3.2)左乘前一次的结果,即

)|()0()0(12b A L L L k L

1?=n k 时,A 就化为一个上三角矩阵U ,得到

)|()|()1()0()

0(121???=n n n b U b A

L L L L (3.3)

矩阵(3.3)是一类特殊的单位下三角矩阵,它们具有下列简单的性质:

(1)??????

???

?

??

???

?????=+?1111

11

k n k k k l l L O M O (3.4)

(2)?

??????????

??

???=??11

11

213231211

211L O M M n n l l l l l L L , L l l l l l L L L n n n =?????

??

?????????=???11

112132312111

1

211L O M M L (3.5) 于是由(3.3)式可得

)|()|()|()1()

1(111211)0()0(??????==n n n b U L b

U L L L b A L 既有

LU A =,)1(?=n Lb b

其中LU A =称矩阵A 的杜利特尔(Doolittle )分解,也称矩阵LU 分解或三角分解。这说明,消元过程实际上是将系数矩阵A 分解为单位下三角阵与上三角矩阵的乘积过程。 如果一个线性方程组的系数矩阵A 能够作出这种分解,解方程组就变的容易了,因为LU A =,则

b LUx Ax ==

令b Ly =,y Ux =,从前一方程解出y 代入后一方程就可以解出x 。由于L 和U 都是

三角形矩阵,求解十分方便。

3.2 矩阵的直接三角分解

从上面可以看到方程组系数矩阵A 的三角分解,在解线性方程组的直接解法中起着重要作用。那么,满足什么条件才能进行三角分解?而且,这种分解是否唯一?我们有如下定理

定理2.1 设A 为n 阶方阵,若A 的顺序主子式)1,,2,1(?=n k A k L 均不为零,则矩阵A 存在唯一的LU 分解。

证明 由上一节可知)1,,2,1(0?=≠n k A k L ,消元过程必可进行到底,也就是矩阵A 的LU 分解必存在。所以,只需证明唯一性。设A 有两种分解

11U L LU A == (3.7)

因为A 为非奇异时,11,,,U U L L 均为非奇异阵。由(3.7)式有

1111??=U U L L

由(3.4)式和矩阵运算性质可知11?L ,L L 11?仍是单位下三角阵。而1

1?U U 为上三角阵,

故有

I U U L L ==??1111

所以,L L =1,U U =1,A 的三角分解是唯一的。

如果不考虑选主元素,矩阵A 的因子分解,无需借助中间结果)

(k A

,而可以直接通

过关系式LU A =,由A 的元素确定L 和U 的元素。下面讨论如何对A 进行LU 分解。

假定n 阶非奇异矩阵LU A =,即

??

???

??

?

?

??

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

?????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 M O L L L O M M L L L L L L L 222

11211

21212122221112

11111 (3.8) 比较两端矩阵对应的元素,先考察第一行对应的元素,有

j j u a 11= ),,2,1(n j L = (3.9) 其次,第一列对角线下的元素相等,则

111i i i u l a =,i i i u a l 111/= ),,3,2(n i L = (3.10)

(3.9)式和(3.10)式分别确定了U 的第一行和L 的第一列。一般的有关系式

???????<≥+=∑∑=?=i

j u l i

j u u l a j

k kj ik i k ij kj ik ij 1

1

1

),,3,2(n i L =

于是可得到ij u 和ij l 的计算公式

??

?

?

?

????

+=?=?===?===∑∑?=?=),,1;1,,2(/)(),,;,,2(),,2,1(111

111n j i n j u u l a l n i j n i u l a u n j a u j

j k kj ik ij ij i k kj ik ij ij j j

L L L L L L (3.11)

计算的过程按第1行,第1列,第2行,第2列,……的顺序进行,如图2.3.1所示。 的三角分解。 例1 求矩阵

?

????

????????=214511242A

1 3

32?n

2

4

22?n 1

2?n 图2.3.1 的三角分解。 解 按(3.11)式

21111==a u ,41212==a u ,21313?==a u

2

1/112121=

=u a l ,224

/113131===u a l

34*21112212222?=??=?=u l a u ,6)2(*2

1

513212323=??=?=u l a u

37

)3/()4*21(/)(2212313232=??=?=u u l a l

12]6*37

)2(*2[2(233213313333?=+???=+?=u l u l a u

所以

?????

??????????????

?

?????

???

?=120063024213

720121001A

因为A 的元素ij a 计算出ij l 和ij u 以后就不再使用了,所以,L 和U 的非零元素,使可以存放在A 中的相应元素的位置上,如图2.3.2所示。

根据(3.11)的公式,矩阵的三角分解可按下述格式进行,这种格式既便于记忆又便于笔算,称作紧凑格式。

(1)将A 的元素按图2.3.2填入“( )”内。

(2)计算顺序按图2.3.1所示,自左向右先算行依次计算ij u ;再自上而下算列求ij l 。 (3)求ij u 时,将它所对应的ij a 逐次减去ij u 所在行左面的元素ij l 与ij u 所在列上面的响应的元素ij u 的乘积。

(4)在计算ij l 时,

除作与(3)相似的运算外,还要除以ij l 所在列上方的对角元jj u 。 n n u a u a u a u a 11131312121111)()()()(L n n u a u a u a 22232322

22)()()(L n n u a u a 3333

33)()(L

1

131

312121)()()(n n l a l a l a M

2

232

32)()(n n l a l a M

3

3)(n n l a

nn nn u a )(

图2.3.2

例1矩阵A 的三角分解的紧凑格式的计算见图2.3.30.

图2.3.3

所以

LU A U L =??

??

?

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

?????

???

?=,1200630242,13

720121001

3.3 利用直接三角分解法计算方程组的解 一旦A 实现了矩阵的

LU 分解,那么求解方程组b Ax =的问题,前面已提到,

它等价于求解两个三角形方程组

(1)b Ly =,求y ;

(2)y Ux =,求x 。也就是

?

?

????

??????=????????????????????????n n n n b b b y y y l l l M M L O M M 21212121111 , ??

???

?

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

?n n nn n n y y y x x x u u u u u u M M M O L L 2121222

11211 (3.12)

很容易可推得计算向量y 的分量n y y y ,,,21L 以及x 的分量n x x x ,,,21L 的递推公式

??

??

??=∑?=1

11i j j

ij i i y l b b y ),,2(n i L = (3.13)

??

??

??=∑+=n

i j ii

j ij i nn n i u x u y u y x 1/)(/)1,,1(L ?=n i (3.14)

比较(3.11)式和(3.13)式,可知它们的运算规律相同,所以,在利用直接三角分解法求解方程时,只需将常数列向量b 列在图2.3.2的最后一列,按ij u 的计算方法便可求得i y 。

例2 用直接三角分解法解线性方程组

???

??=++=++=++20

531825214

32321

321321x x x x x x x x x 解 按紧凑格式计算

(1)1 (2)2 (3)3 (14)14

(5)5-2*2=1 (2)2-2*3=-4 (18)18-2*14=-10 (2)2 (3)3 (1)[1-3*2]/1

=-5

(5)5-3*3- (-5)*(-4)=-24

(20)20-3*14- (-5)*(-10)=-72

所以

???????????=153012001L , ???????

?????=2400

41032

1

U , ?

????

???????=721014y 解方程组

?????

???????=?

?????????????????????=7210142400

410

32

1

321x x x Ux

由计算公式(3.14),得原方程组解

T x )3,2,1(=

用直接三角分解法求解线性方程组的乘除法运算量仍是3

3

n 数量级。由于求出ij u ,ij

l 和i y 后,ij a 和i b 就无需保留。因此,在用计算机计算时,可将L ,U 和y 存在A 与b 所占的单元,回代时用x 取代y ,计算过程中不需要增加新的存贮单元。

3.4选主元的三角分解法

为了避免当0=kk u 计算中断或||kk u 很小时可能引起的舍入误差的扩大。我们可以

采用与列主元消去法类似的方法,不是直接分解A ,而是有时需交换行,实现对等价的PA 的LU 分解。其中,P 为非奇异的n 阶矩阵。具体的方法是,假设第1?k 步分解已完成,这时有

11u n u 1 22u n u 2

1

1??k k u O

n

k u 1?

1

11121n k k l l l l M

M

? L

1

1

??k n k k l l

)

()()

()(nn nk kn kk a a a a L M M

L

)

()

(11

n k k b b y y M M

?

图2.3.4

第k 步分解,为了避免用小的数kk u 作除数,需要利用公式(3.11)作测算,引进量

∑?=?=1

1

~k j jk

ij ik

i u

l a u ),,1,(n k k i L +=

这样便有 kk k u u =~ , k

i ik u u l ~/~= ),,1(n k i L += 记

i

n

i k i u u k

~max ≤≤= 我们用k

i

u ~作为kk u ,交换图2.3.4中的k 行和k i 行的元素,),(j i 位置的新元素,仍记为ij l 和ij a 。然后,进行第k 步分解运算。显然有1≤ik l ),,1(n k i L +=。

为节约计算机的存贮单元,将i b 记作1+n i a ,计算过程中得到的ij l ,ij u 和i y 仍放在原来增广矩阵的位置上。

算法2.2 选主元的三角分解法解n 阶线性方程组b Ax =。

输入 方程组的阶数n ;增广矩阵)|(b A 。

输出 方程组的n x x x ,,,21L 或系数矩阵奇异的信息。

step 1 计算i

u ~,对于n k ,,2,1L =作到step 1-5。

∑?=?=←1

1

~k j jk ij ik

ik ik u l a u a ),,1,(n k k i L += step 2 选主元,求k i 使

ik n

i k k i a a k ≤≤=max

step 3 若0=k i k a ,则系数矩阵为奇异,停机;否则转入step 4 step 4 若k i k =,则转step 5;否则,换行

j i kj k a a ? )1,,1,(++=n k k i L

step 5 计算U 的第k 行元素,L 的第k 列元素 )

,,1(/~)1,,1(~1

1

n k i u u l a n k j u l

a u a u

u a kk

ik ik ik k i ij

ki

kj kj kj kk

kk

kk

L L +==←++=?

=←=←∑?= step 6 求解

)

1,,1(/)(/)(//1

1

L ?=?

=?

←=←∑∑+=+=n i a x a b u x u y x a b u y x ii

n

i j j ij i ii n

i j j ij i i nn

n nn n n

step 7 输出(n x x x ,,,21L )。

例3 应用选主元的三角分解法,解线性方程组

??????

??=?++=++??=?++=+?+1

3263221

2432143214

3214321x x x x x x x x x x x x x x x x 解 我们采用紧凑格式的方法计算,为了简便起见,不再用图2.3.2的形式,而是借助与矩阵初等变换的形式,详细的计算过程在最后。

?→??????????

???????????→???

???

?

?

???????????==?11131211121212116111311312611132121111121)|(21k r r b A ?

???

?

?

?????????????????????→?????????????????????????????→

??

?

????

?

??

?????

???????????????→?????????????????????????????→

??

?

??

??

???

?

??????????????????→???????????????????????????==?=?23623323

1774317307157237

532132343731611

132123177431730715723753213234373161113212743111375321323437316111

3113753221274311323437316111311313221213111123161113113132111231212131611134

3

2

4332k k r r k r r 因此,得到

LU A I I I =132334

其中ij I 表示j i r r ?的初等变换,

???

???

???

???????????=123

17743

10175

32

00

1

310001L , ?

?????????

??????????????=2330007157230

032343701113U , ???????????????????=23673016y

再利用公式(3.14)解y Ux =得原方程组的解

T x )2,0,1,1(?=

§4 平方根法

很多工程中的科学计算,例如应用有限元法解结构力学问题时,最后往往归结为求解系数矩阵为对称正定的线形方程组的求解。由于系数矩阵的各阶顺序主子式以及全部的特征值均大于零,这种特征也使得它的三角分解也有更简单的形式,不同的分解导出了一些不同的解法。

4.1 对称正定矩阵的Cholesky 分解法

定理2.2 设A 是n 阶对称正定矩阵,则必存在非奇异的下三角矩阵L ,使

T LL A = (4.1)

并且当L 的对角元素均为正数时,这种分解是唯一的。

证明 因为A 对称正定,则它的各阶顺序主子式均大于零。由定理2.1可知,矩阵A 存在唯一的Doolitle 分解,即

U L A 1=

其中,

1L 为单位下三角矩阵,U 为上三角矩阵。记),,(11nn u u diag D L =,U D P 1

?=,则P 为单位上三角矩阵,且DP L A 1=。由A 的对称性A A T

=,可得

A DP L L D P A T T T T ===11

由于T

P 为单位下三角矩阵,D D T

=,从而由分解的唯一性可知,T

L P 1=,于是 T

DL L A 11=

(4.2)

显然有011>===kk k k k k k u u U L U L A L ),,2,1(n k L =,这样

0>kk u ),,2,1(n k L =,故可令

),,,(22112

1nn u u u diag D

L =

T T

T LL D L D L L D D L A ===))((21

1

21

1121

21

1 其中,2

1

1D L L =为非奇异的下三角矩阵。而知限定L 的对角元素为正数时,这种分解

是唯一的。

我们称(4.1)式为矩阵A 的Cholesky 分解或T

LL 分解。

现在,我们来确定分解式(4.1)中下三角矩阵)(ij l L =元素的计算公式。设

???????

??

???=nn n n l l l l l l L L O

L L 2

1222111

其中,0>ii l ),,2,1(n i L =,0=ij l (当j i <时)。 比较A 与T

LL 相应的元素,可得

∑=>=n

k ij

jk

ik j i a l

l

1

)(,∑==i

k ii

ik ik a l l 1

(4.3)

∑∑?===+>=+1

1

2

21

,)

(i k ii ii ik j

k ij jj ij jk

ik a l l j i a l l l l

所以,有

?????

?

??

???<>?=?=∑∑?=?=j i j i l l l a j i l a l jj j k jk ik ij i k ik ii ij ,0,/)(,)

(112

1112 (4.4)

4.2 方程组的平方根解法

如果对称正定的方程组系数矩阵完成了上述分解后,方程组b Ax =,就化为

b x LL T =。令y x L T =,则b Ly =,于是方程组b Ax =求解的问题,等价于求解两

个三角形方程组

(1)b Ly =,求y ; (2)y x L T

=,求x 它们的解分别为

???

????

=?==?=∑∑+=?=1,,,/)(,,2,1,/)(111

L L n i l x l y x n i l y l b y ii n

i k i ki i i ii i k k ik i i (4.5) 求解线性方程组的上述方法称为平方根法,也称为Cholesky 分解法。由(4.3)式知,

∑==i

k ii ik

a l

1

2

,所以

ii ik a l ≤2

, ii n

i ij n

i j a l ≤≤≤≤≤≤121max max

这表明,在分解过程中ij l 的数量级不会增长,可以证明不选主元素的平方根法是一个数值

稳定的方法。平方根法所需要的乘除法运算量大约为6

2

n 数量级,是LU 分解法的一半,

因为当求出L 时,T

L 也随之求得了。计算时所需存贮单元也少,只需要存贮A 的下三角部分,即

2

)

1(+n n 个单元,)(y b 需要n 个存贮单元。但是,这种方法在求L 时需要作n 次开方运算,这是它的缺点。

4.3 Cholesky 分解的变形——T

LDL 分解法

为了避免开方运算,由(4.2)式,对称正定矩阵又可作如下分解

第二章 线性方程组的数值解法

第二章 线性方程组的数值解法 在科技、工程技术、社会经济等各个领域中很多问题常常归结到求解线性方程组。例如电学中的网络问题,样条函数问题,构造求解微分方程的差分格式和工程力学中用有限元方法解连续介质力学问题,以及经济学中求解投入产出模型等都导致求解线性方程组。 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 L K K K K L L 22112 222212********* (1.1) 其矩阵形式为 b Ax = (1.2) 其中 ????? ???????=??? ?????????=? ? ????? ?????= n n nn n n n n b b b b x x x x a a a a a a a a a A M M L K K K K L L 2121212222111211 ),,2,1,(n j i a ij L =,),,2,1(n i b i L =均为实数,i b 不全为0,且A 为非奇异。 关于线性方程组的数值解法一般分为两类: 1.直接法 就是不考虑计算机过程中的舍入误差时,经有限次的四则运算得到方程组准确解的方法。 而实际中由于计算机字长的限制,舍入误差的存在和影响,这种算法也只能求得线性方程组的近似解。本章将阐述这类算法中最基本的消去法及其某些变形。这些方法主要用于求解低阶稠密系数矩阵方程组。 2.迭代法 从某个解的近似值出发,通过构造一个无穷序列,用某种极限过程去逐步逼近线性方程组的精确解的方法。本章主要介绍迭代法与迭代法。迭代法是解大型稀疏矩阵(矩阵阶数高而且零元素较多)的线性方程组的重要方法。 §1 高斯)(Gauss 消去法 1.1 Gauss 消去法 Gauss 消去法是将线性方程组化成等价的三角形方程组求解。首先举例说明Gauss

线性方程组的数值解法实验

线性方程组的数值解法 实验 题目 用Gauss消元法和Seidel迭代法求线性方程组的解。 实验目的 通过本次实验了解Gauss消元法和Seidel迭代法的基本原理,掌握其算法,学会用Matlab编程进行计算,并能用这些方法解决实际问题。 Gauss 顺序消元法的基本原理算法: (1)输入:,. A b (2)对1,2,,1 k n =???-做 1)if0 kk a=then输出算法失败信息,停机; 2)对1,, i k n =+???做 1/; ik ik ik kk a l a a ←= 2; i i ik k b b l b =- 3对1,, j k n =+???做; ij ij ik kj a a l a =- (3)if0 nn a=then输出算法失败信息,并停机else做 1)/; n n n nn b x b a ←= 2)对1,,2,1 i n =-???做 1 ()/; n i i i ij j ii j i b x b a x a =+ ←=-∑ (4)输出方程组的解.X

流程图见附页 Seidel 迭代法的基本原理算法: (1)输入:,; A b (2)输入:初始解向量 ;x (3)对1,2,, i n =???做 1) 1 ()/; n i i ij j ii j j i y b a x a = ≠ =-∑ 2); i i i e y x =- 3); i i x y = (4)if 1 {||} max i i n eε ≤≤ 时方程组无解,当RB RA n ==时方程组有唯一解,当RB RA n =<时,方程组有无穷多解; ②根据公式 (1)()() (1)()() (,1,,) (1,,) k k k ij ij ik kj k k k i i ik k a a l a i j k n b b l b i k n + + =-=+??? =-=+??? 将增广矩阵[,] B A b =化为上三角形矩阵; (2)建立. backsub m文件; (3)调用. backsub m文件,在Matlab命令窗口输入,A b矩阵,再输入[,,,](,) RA RB n X gaus A b =,进行Matlab实现得出方程的解。

线性方程组的解法

线性方程组的解法 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的元素,不需逐步 计算存储.

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

线性方程组的解法及其应用 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.

线性方程组的直接解法及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

线性方程组数值解法

. 计算法实验 题目:

班级:学号::

目录 计算法实验 (1) 1 实验目的 (3) 2 实验步骤 (3) 2.1环境配置: (3) 2.2添加头文件 (3) 2.3主要模块 (3) 3 代码 (3) 3.1主程序部分 (3) 3.2多项式程部分 (3) 3.3核心算法部分 (3) 3.4数据结构部分 (3) 4运行结果 (3) 4.1列主元高斯消去法运行结果 (3) 4.2LU三角分解法运行结果 (3) 4.3雅克比迭代法运行结果 (3) 边界情况调试 (3) 5总结 (3) 输入输出 (3) 列主元高斯消元法 (3) 雅克比迭代法 (3) 6参考资料 (3)

1 实验目的 1.通过编程加深对列主元高斯消去法、LU三角分解法和雅克比迭代法等求解多 项式程法的理解 2.观察上述三种法的计算稳定性和求解精度并比较各种法利弊 2 实验步骤 2.1环境配置: VS2013,C++控制台程序 2.2添加头文件 #include "stdio.h" #include "stdlib.h" #include "stdafx.h" #include 2.3主要模块 程序一共分成三层,最底层是数据结构部分,负责存储数据,第二层是交互部分,即多项式程部分,负责输入输出获得数据,最上层是核心的算法部分,负责处理已获得的数据。具体功能如下: ●数据结构部分 数据结构部分是整个程序的最底层,负责存储部分。因数组作为数据元素插入和删除操作较少,而顺序表空间利用率大且查看便,故此程序选用二维顺序表保存系数。数据结构文件中写的是有关其的所有基本操作以供其他文件调用。 ●多项式程部分

解线性方程组的直接解法

解线性方程组的直接解法 一、实验目的及要求 关于线性方程组的数值解法一般分为两大类:直接法与迭代法。直接法是在没有舍入误差的情况下,通过有限步运算来求方程组解的方法。通过本次试验的学习,应该掌握各种直接法,如:高斯列主元消去法,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

线性方程组数值解法总结

好久没来论坛,刚刚发现以前的帖子现在那么火很欣慰,谢谢大家支持! 今天趁着不想做其他事情,把线性方程组的数值解法总结下,有不足的地方希望大神指教!数学建模中也会用到线性方程组的解法,你会发现上10个的方程手动解得话把你累个半死,而且不一定有结果,直接用matlab的函数,可以,关键是你不理解用着你安心吗?你怎么知道解得对不对? 我打算开个长久帖子,直到讲完为止!这是第一讲,如有纰漏请多多直接,大家一起交流!线性方程组解法有两大类:直接法和迭代法 直接法是解精确解,这里主要讲一下Gauss消去法,目前求解中小型线性方程组(阶数不超过1000),它是常用的方法,一般用于系数矩阵稠密,而有没有特殊结构的线性方程组。 首先,有三角形方程组的解法引入Gauss消去法,下三角方程组用前代法求解, 这个很简单,就是通过第一个解第二个,然后一直这样直到解出最后一个未知数,代码如下:前代法: function [b]= qiandai_method(L,b) n=size(L,1); %n 矩阵L的行数 for j=1:n-1 %前代法求解结果存放在b中 b(j)=b(j)/L(j,j); b(j+1:n)=b(j+1:n)-b(j)*L(j+1:n,j); end b(n)=b(n)/L(n,n); 上三角方程组用回代法,和前面一样就是从下面开始解x,代码: 后代法: function [y]=houdai_method(U,y) n=size(U,1); %n 矩阵L的行数 for j=n:-1:2 %后代法求解结果存放在y中 y(j)=y(j)/U(j,j); y(1:j-1)=y(1:j-1)-y(j)*U(1:j-1,j); end y(1)=y(1)/U(1,1); Gauss消去的前提就是这两个算法: 具体思想是把任何一个线性方程组的系数矩阵A,分解为一个上三角和一个下三角的乘积,即A=LU,其中L为下三角,U为上三角。 那么具体怎么做呢? 有高斯变换,什么是高斯变换?由于时间有限我不可能去输入公式,所以我用最平白的话把它描述出来。 你先想一下怎么把一个矩阵的某一列的从第j个分量后全部变0? 高斯变换就是通过每次一个矩阵Li把A的第i列对角线元素以下的都变为0,最后把这么多Li一次左乘起来就是一个矩阵L’=L(n-1)L(n-2)…L2L1,而L’A=U, 那么L=L’的转置,这样就得到了A得分解。 我们要求Ax=b A=LU

浅析线性方程组的解法

目录 摘要................................................................................... 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方法;高斯-赛德尔方法

线性方程组的直接解法

第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

线性方程组的数值解法

第三章线性方程组地数值解法 范数 (1> 常用范数 ① 向量 1- 范数: ② 向量 2- 范数: ③ 向量∞- 范数: ④ 向量 p- 范数: 向量1- 范数,向量2- 范数,向量∞- 范数实际上为任意 p- 范数地特例. (2> 矩阵范数 设,则 (1>,A地行范数 (2>,A地列范数 (3>,A地 2- 范数,也称谱范数 (4>, F- 范数 其中指矩阵地最大特征值 (3>谱半径(用于判断迭代法地收敛值> 设为矩阵A地特征值,则

称为A地谱半径 谱半径小于任何半径,若,则 (4>设A为非奇异矩阵,称 为A地条件数 矩阵地条件数与范数选取有关,通常有 显然当A对称时 直接法 Gauss消去法 ①Gauss顺序消去法 对线性方程组Ax=b,设,按顺序消元法,写出增广矩阵(A┆b>第一步,写出,将2~n行中地变为0 第k步,写出,将k+1~n行中地变为0 具体步骤可参照下面地例题 例5:用Gauss消去法解方程组

解: Guass列主元消去法 消去过程与Guass消元法基本相同,不同地是每一步消元时,都要将所选到地绝对值最大元素作为主元. 具体分析参见习题详解1 ②矩阵三角(LU>分解法 基本思想:将Ax=b化为LUx=b,令Ux=y 可得Ly=b,Ux=y,相当于先求出y,再求出x 其中,L,U分别为下三角矩阵和上三角矩阵 若L为单位下三角矩阵,则称为Doolittle分解。若U为单位上三角矩阵,则称为Crout分解. ③矩阵Doolittle分解法

计算公式 具体解题见习题详解2 注意计算顺序,先行再列,用简图表示为 虚线上地元素为对角元,划为行元. ④ 分解法 计算公式

线性方程组的直接解法

第4章 线性方程组的直接解法 本章主要内容 线性方程组的直接解法——消元法(高斯消元法、主元消元法). 矩阵的三角分解法( Doolittle 分解、Crout 分解、 LDU 分解) 紧凑格式 改进平方根法. 本章重点、难点 一、消元法(高斯消元法、列主元消元法) 本章求解的是n 阶线性方程组Ax=b 的(即方程的个数和未知量的个数相等的线性方程组) ?????????=+???++????????????? ??=+???++=+???++n n nn 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 3222212111212111 1. 高斯消元法 ①高斯消元法的基本思想:通过对线性方程组Ax=b 的进行同解消元变换(也可以用矩阵的初等行变换法进行线性方程组的消元变换),将线性方程组化为上三角形方程组,然后用回代法求出此线性方程组的解。 ②高斯消元法计算公式: ????? ? ? ????????--=-=--==? ????? ????? ???? +=-=-=====-+=------------∑)1,..., 2,1()1,..., 2,1(,...,1,,,,...,2,1) ,...,2,1,(,) 1(1)1()1()1() 1() 1()1() 1()1()() 1()1()1()1()(,)0()0(n n i a x a b x n n i a b x n k j i b a a b b a a a a a n k n j i b b a a i ii n i j j i ij i i i n nn n n n k k k kk k ik k i k i k kj k kk k ik k ij k ij i i ij ij 对回代公式: 消元公式:

线性方程组的几种求解方法

线性方程组的几种解法 线性方程组形式如下: 常记为矩阵形式 其中 一、高斯消元法 高斯(Gauss)消元法的基本思想是:通过一系列的加减消元运算,也就是代数中的加减消去法,将方程组化为上三角矩阵;然后,再逐一回代求解出x 向量。现举例说明如下: (一)消元过程 第一步:将(1)/3使x 1的系数化为1 得 再将(2)、(3)式中x 1的系数都化为零,即由(2)-2×(1)(1) 得 )1(32)2( (03) 4 32=+x x )1(321)1(......23132=++ x x x

由(3)-4×(1)(1) 得 第二步:将(2)(1) 除以2/3,使x 2系数化为1,得 再将(3)(1) 式中x 2系数化为零,即 由(3)(1) -(-14/3)*(2)(2) ,得 第三步:将(3)(2) 除以18/3,使x 3系数化为1,得 经消元后,得到如下三角代数方程组: (二)回代过程 由(3)(3) 得 x 3=1, 将x 3代入(2)(2) 得x 2=-2, 将x 2 、x 3代入(1)(1) 得x 2=1 所以,本题解为[x]=[1,2,-1]T (三)、用矩阵演示进行消元过程 第一步: 先将方程写成增广矩阵的形式 第二步:然后对矩阵进行初等行变换 初等行变换包含如下操作 (1) 将某行同乘或同除一个非零实数 ) 3(3)3(......1-=x )2(3)3( (63) 18-=x ) 2(32) 2(......02=+x x ) 1(32)3( (63) 10 314-=-- x x

(2)将某行加入到另一行 (3)将任意两行互换 第三步:将增广矩阵变换成上三角矩阵,即主对角线全为1,左下三角矩阵全为0,形式如下: 示例: (四)高斯消元的公式 综合以上讨论,不难看出,高斯消元法解方程组的公式为 1.消元 (1)令 a ij(1) = a ij , (i,j=1,2,3,…,n) b i(1) =b i , (i=1,2,3,…,n) (2)对k=1到n-1,若a kk(k)≠0,进行 l ik = a ik(k) / a kk(k) , (i=k+1,k+2,…,n) a ij(k+1) = a ij(k) - l ik * a kj(k), (i,j= k+1,k+2,…,n) b i(k+1) = b i(k) - l ik * b k(k), (i= k+1,k+2,…,n) 2.回代 若a nn(n) ≠0 x n = b n(n) / a nn(n) x i = (b i(i) – sgm(a ij(i) * x j)/- a ii(i),(i = n-1,n-2,…,1),( j = i+1,i+2,…,n ) (五)高斯消元法的条件 消元过程要求a ii(i) ≠0 (i=1,2,…,n),回代过程则进一步要求a nn(n) ≠0,但就方程组Ax=b 讲,a ii(i)是否等于0时无法事先看出来的。 注意A的顺序主子式D i(i=1,2,…,n),在消元的过程中不变,这是因为消元所作的变换是“将某行的若干倍加到另一行”。若高斯消元法的过程进行了k-1步(a ii(i) ≠0,i

计算方法实验报告-线性方程组的数值解法

重庆大学 学生实验报告实验课程名称计算方法 开课实验室DS1421 学院年级专业 学生姓名学号 开课时间至学年第学期

1.实验目的 (1)高斯列主元消去法求解线性方程组的过程 (2)熟悉用迭代法求解线性方程组的过程 (3)设计出相应的算法,编制相应的函数子程序 2.实验内容 分别用高斯列主元消去法 ,Jacobi 迭代法,Gauss--Saidel 迭代法,超松弛迭代法求解线性方程组 ????? ???????-=????????????????????????------725101391444321131243301024321x x x x 3.实验过程 解:(1)高斯列主元消去法 编制高斯列主元消去法的M 文件程序如下: %高斯列主元消元法求解线性方程组Ax=b %A 为输入矩阵系数,b 为方程组右端系数 %方程组的解保存在x 变量中 format long;%设置为长格式显示,显示15位小数 A=[2,10,0,-3;-3,-4,-12,13;1,2,3,-4;4,14,9,-13] b=[10,5,-2,7]' [m,n]=size(A); %先检查系数正确性 if m~=n error('矩阵A 的行数和列数必须相同'); return; end if m~=size(b) error('b 的大小必须和A 的行数或A 的列数相同'); return; end %再检查方程是否存在唯一解 if rank(A)~=rank([A,b]) error('A 矩阵的秩和增广矩阵的秩不相同,方程不存在唯一解'); return; end c=n+1; A(:,c)=b; %(增广) for k=1:n-1

三元线性方程组的几何解法.doc

三元线性方程组的几何解法 任春丽,王金金 (西安电子科技人学理学院数学系,陕西酋安710071 ) 线性方程组是线性代数中重要的内容,其解的结构在线性代数课程中已通过向量及矩阵理论讨论的非常清楚,但在教材中很少提及几何意义.由于三元线性方程表示空间屮的平而,因此,通过平面图形Z间的位置关系求解线性方程组,不仅形象、直观,而且为从三维空间抽象的代数问题推广到n维空间更定了基础°文献[2] 丿IJ矩阵 的秩判别了空间屮平面、直线之间的位證关系;相反的,本文利用空间中平而、肓线之间的位宜关系讨论了三元线性方程组解的情况,并举例说明。 1.两个方程的三元线性方程组 设方程组(I): [仲+恥+C"。-街俩个平面) A2X +B2y + C2z = D2—兀2 讨论:令e=4,d,G,o)(心1,2), %=Q,B,C)(i = l,2) ⑴若wa,即牛鲁咱唔‘则 眄与龙2重合,方程组(I)有无穷多解; (2)若n.//n2i a^a29即4 =邑』』, 1 2 1 2 码场C? D2则眄与?平行但不重合,方程组(I )无解; (3)若讥叫,则陌与幻相交,方程纨I)有无穷多解,其解为相交直线上的所有点。 例1求解下列线性方程组 3兀 + 6y — 3z = 8 fx + 2y-z = 7 (1){ : (2){ ?一兀一 2y + z = 3 [-2x + y + z = 4 解⑴因为—7^-,所以两个平 -1-213 血平行但不重合,故方程组无解; (2)因为阿x〃2 =(1,2,T)x(一2,1,1) = (3丄5) H 0, 所以两个平面相交于H线L,故方程组有无穷多 解。又点(1,4,2)在L上,故直线L的参数方程x = 1 + 3f, 为:」= 4+r,即是方程组的通解。 z = 2 + 5/. 2.三个方程的三元线性方程组 设方程组(II): A}x + + Gz = °―兀、 < A2x + B2y + C2z = D2—兀2(三个平面) A.x + B,y^C.z = D. 一心 讨论:令q=Q,d,G,q)(i = l,2,3), n,=(4.,B/,C/)(i = l,2,3)o (1)若= 1,2,3)中至少有两个平行,则至 少有两个平面重合,其解的讨论同第1 H; (2)若? (/ = 1,2,3)屮至少有两个平行,但相应的乞?加勺(心力,则至少冇两个平面平行但 不重合,方程组(II)无解; (3)若?加? (心/),则三个平面两两相交, 方程组(II)可能有解,也可能无解。进一步:求 x = x Q + mt, ! IW与兀2的交线L的参数式方程:\y = y o+ntf z = 5 + pt. 如果厶〃龙3,但点(兀O,y°,Zo)不在龙3上,则

数值分析讲义——线性方程组的解法

数值分析讲义 第三章线性方程组的解法 §3.0 引言 §3.1 雅可比(Jacobi)迭代法 §3.2 高斯-塞德尔(Gauss-Seidel)迭代法 §3.3 超松驰迭代法§3.7 三角分解法 §3.4 迭代法的收敛性§3.8 追赶法 §3.5 高斯消去法§3.9 其它应用 §3.6 高斯主元素消去法§3.10 误差分析 §3 作业讲评3 §3.11 总结

§3.0 引言 重要性:解线性代数方程组的有效方法在计算数学和科学计算中具有特殊的地位和作用.如弹性力学、电路分析、热传导和振动、以及社会科学及定量分析商业经济中的各种问题. 分类:线性方程组的解法可分为直接法和迭代法两种方法. (a) 直接法:对于给定的方程组,在没有舍入误差的假设下,能在预定的运算次数内求得精确解.最基本的直接法是Gauss消去法,重要的直接法全都受到Gauss消去法的启发.计算代价高. (b) 迭代法:基于一定的递推格式,产生逼近方程组精确解的近似序列.收敛性是其为迭代法的前提,此外,存在收敛速度与误差估计问题.简单实用,诱人.

§3.1 雅可比Jacobi 迭代法 (AX =b ) 1 基本思想: 与解f (x )=0 的不动点迭代相类似,将AX =b 改写为X =BX +f 的形式,建立雅可比方法的迭代格式:X k +1=BX (k )+f ,其中,B 称为迭代矩阵.其计算精度可控,特别适用于求解系数为大型稀疏矩阵(sparse matrices)的方程组. 2 问题: (a) 如何建立迭代格式? (b) 向量序列{X k }是否收敛以及收敛条件? 3 例题分析: 考虑解方程组??? ??=+--=-+-=--2.453.82102 .72103 21321321x x x x x x x x x (1) 其准确解为X *={1, 1.2, 1.3}. 建立与式(1)相等价的形式: ??? ??++=++=++=84.02.01.083.02.01.072 .02.01.02 13312321x x x x x x x x x (2) 据此建立迭代公式: ?????++=++=++=+++84 .02.01.083.02.01.072.02.01.0)(2)(1)1(3 )(3 )(1)1(23)(2)1(1k k k k k k k k k x x x x x x x x x (3) 取迭代初值0) 0(3 )0(2)0(1===x x x ,迭代结果如下表. JocabiMethodP31.cpp

相关主题