线性代数方程组的解法

(整期优先)网络出版时间:2021-04-26
/ 2


线性代数方程组的解法

金靖翰

摘 要: 本文论述了线性代数方程组的几种解法 .


关键词 线性代数方程组;高斯消元法;列主元消元法;三角分解法;杜立特尔分解法;迭代法;雅可比迭代法;高斯-赛德尔迭代法

1引言


目前,解线性代数方程组在计算机上常用的的方法大致把它分为两类:“直接法”与“迭代法”.在线性代数中曾指出60861c480da51_html_d2d116ed15ddf5ff.gif 阶线性代数方程组有唯一的解,并且可以用克拉默法则求方程组的解,初次看来问题已经解决,但从使用效果看并不是这样的.因为求60861c480da51_html_d2d116ed15ddf5ff.gif 阶线性代数方程组,如果用克拉默法则,需要计算60861c480da51_html_922fff0c60c93632.gif60861c480da51_html_d2d116ed15ddf5ff.gif 阶行列式,每个60861c480da51_html_d2d116ed15ddf5ff.gif 阶行列式为60861c480da51_html_977898b92219aa92.gif 项之和,每项又是60861c480da51_html_d2d116ed15ddf5ff.gif 个元素的乘积,所以计算中仅乘法次数就高达60861c480da51_html_63e1d2e591fc885c.gif次,当60861c480da51_html_d2d116ed15ddf5ff.gif 较大时,它的计算量是非常惊人的.因为现在所碰到的很多问题都需要很大的计算量,故需要好用的算法来求解.



先来回顾一下回代过程和迭代过程.

60861c480da51_html_f67423c96a567034.gif60861c480da51_html_2e290d9903fe538.gif (1)

是一个三角形方程组,当60861c480da51_html_827d351d7b2cac63.gif 有唯一解时,可以用反推的方式求解,也就是先从第60861c480da51_html_5445ad0051c94667.gif 个方程解得

60861c480da51_html_d624bb92943637f4.gif , (2)

然后代入第60861c480da51_html_bac4d06cb62c135f.gif 个方程,可得到

60861c480da51_html_9dfc3892bde5beb7.gif , (3)

如此继续下去,假设已得到60861c480da51_html_10ee0836b68014fa.gif60861c480da51_html_ce63ef42cbd1b419.gif60861c480da51_html_c952f7f9cf23652b.gif ,60861c480da51_html_cd8812117f2e902a.gif ,代进第60861c480da51_html_b6e8b14fd2d4c14.gif 个方程即得60861c480da51_html_8900a0bf0eb259b7.gif 的计算 60861c480da51_html_e4b4baf8ef98b1a9.gif60861c480da51_html_81716f94bdb2a2.gif (4)

上述求解的过程叫做回代过程.

定义1[1] (向量的范数) 若向量60861c480da51_html_a913fa80742875ea.gif 的某个实值函数60861c480da51_html_2307fb4755315c73.gif 满足

  1. 60861c480da51_html_d61a78d0bde79fab.gif 是非负的,即60861c480da51_html_f794e1d95cd9ec7d.gif60861c480da51_html_da80f4dc532ab1b4.gif 的充要条件是60861c480da51_html_4c28d4f6e7936138.gif ;

  2. 60861c480da51_html_d61a78d0bde79fab.gif 是齐次的,即60861c480da51_html_cc538a05cc70881e.gif60861c480da51_html_10749c2212e43cbf.gif ;

  3. 三角不等式,即对60861c480da51_html_27a6e325d36fcc2.gif ,总是有

60861c480da51_html_ae541b03f6820718.gif .

那么60861c480da51_html_f67f703d41456bd7.gif 上向量60861c480da51_html_76683726eb2224f3.gif 的范数(或模)就是60861c480da51_html_c1025f4828453205.gif .

下面给几个最常遇到的向量范数.

向量60861c480da51_html_fd191fbe2c94186.gif 的“1”范数:

60861c480da51_html_e6614df8d839b4d4.gif (5)

向量60861c480da51_html_fd191fbe2c94186.gif 的“2”范数:

60861c480da51_html_67fbbc7b596dd70c.gif (6)

向量60861c480da51_html_fd191fbe2c94186.gif60861c480da51_html_b7c3a7ebd3b167aa.gif 范数:

60861c480da51_html_604197f07245c609.gif (7)

1 60861c480da51_html_3d1bedca70046cc5.gif60861c480da51_html_eeaeaab413ea3d5b.gif ,60861c480da51_html_a71271dca893cdbb.gif ,60861c480da51_html_8dec01dbcc72cc5e.gif .

由式(5),(6)及(7)知

60861c480da51_html_53eddacdf0645331.gif

60861c480da51_html_9e5eddb0077b7059.gif

60861c480da51_html_e8a6588f90d027da.gif .

定义2 若矩阵60861c480da51_html_3d342fc81c757349.gif 的某个实值函数60861c480da51_html_ddb82ac65dfd0cab.gif 满足

  1. 60861c480da51_html_6662e3994f5a3f36.gif 是非负的,即60861c480da51_html_5883ae43e1a3f11d.gif60861c480da51_html_4f0e11d79f697886.gif 的充要条件是60861c480da51_html_7585b051b86f7ca7.gif ;

  2. 60861c480da51_html_6662e3994f5a3f36.gif 是齐次的,即60861c480da51_html_ba3635dc7c824ee.gif60861c480da51_html_72f4245f375900c5.gif ;

  3. 三角不等式,即对60861c480da51_html_7ee9f8f739ac762c.gif 总有

60861c480da51_html_559a53f68239953c.gif ;

  1. 矩阵的乘法不等式,即对60861c480da51_html_bfa23805184134c8.gif 总有

60861c480da51_html_e345cc0486b12050.gif

那么称60861c480da51_html_75311d698c898c67.gif60861c480da51_html_a3820f1d29c71e4b.gif 上矩阵60861c480da51_html_a584cfbca6f9932c.gif 的范数(或模).

表 1是矩阵60861c480da51_html_ccede760b9bf2ea5.gif 几个常用算子范数的定义与算式.

表 1

范数名称

记号

定义

计算公式

“1”范数(又名列模)

60861c480da51_html_9bfa4b1f79ea811e.gif

60861c480da51_html_afb8bda44e34e70b.gif

60861c480da51_html_ca7f63136bf0ef39.gif

“2”范数(又名谱模)

60861c480da51_html_c7f24460c42e1679.gif

60861c480da51_html_3883f08cc9b2be63.gif

60861c480da51_html_39a32f072223425c.gif

60861c480da51_html_41444c4fa0aa13af.gif ”范数(又名行模)

60861c480da51_html_4b9f2c3dd7c05e25.gif

60861c480da51_html_787eaa9758e525ad.gif

60861c480da51_html_6956a7a7954228a7.gif


60861c480da51_html_f0596bf0a216653a.gif 的极限60861c480da51_html_f08810ce65679430.gif就是方程组60861c480da51_html_1042ad288309655f.gif 的解向量,这时候在给定允许的误差内,只要60861c480da51_html_3487f597146c54c.gif 适当的大,60861c480da51_html_a2018112448067f6.gif就可以作为方程组在满足精度要求条件下的近似解.这种求近似解的方法就是解线性方程组的一类基本的迭代解法,其中60861c480da51_html_cec46302dd51e3b1.gif 称为迭代矩阵,公式(9)称迭代公式(或迭代过程),由迭代公式得到的序列60861c480da51_html_5856ce0ef7ac35ae.gif 叫做迭代序列.如果迭代的序列是收敛的,则称为迭代法收敛;如果迭代的序列是不收敛,则称它是迭代法发散.

定理3 60861c480da51_html_ebbcaa3cf95e5737.gif .如果约化主元素60861c480da51_html_b995657bfa8fc979.gif60861c480da51_html_7bf33c2cbd3f7484.gif ,则可以利用高斯消元的方法把方程组60861c480da51_html_3e7265bbc2a56b03.gif 约化成三角形方程组

60861c480da51_html_de252c46d9a398d1.gif

来求解,其计算公式如下:

(1)消元计算:对60861c480da51_html_f95b273129cbb2dc.gif 依次计算

60861c480da51_html_1a3949b54e9cfda5.gif

(2)回代计算:

60861c480da51_html_7f026f3baa774580.gif

3用高斯消元法与列主元消元法解线性代数方程组(重点)!

3.1 高斯消元法解方程组60861c480da51_html_8a3da1e8d57049bf.gif

用高斯消元的方法求线性代数方程组的解的整个计算过程可分为两个环节,也就是利用按照次序消去未知数的方法,把原来的方程组转化成跟它同解的三角形方程组(这个转化的过程叫消元过程),再通过回代过程求三角形方程组的解,最终得到原来方程组的解.其中按照方程的顺进行消元的高斯消元法,又叫顺序消元法.



3.2列主元消元法解方程组60861c480da51_html_a12a73391ca20d12.gif

列主元消元法实际上是一种行交换的消元法,它跟顺序消元法比较而言,主要特点是在进行第60861c480da51_html_4b11c46aa2ee47b0.gif 次消元前,不管60861c480da51_html_e694848d2a43d591.gif 的值是否等于零,都在子块60861c480da51_html_3e62c5ad253b5721.gif 的第一列中选择一个元60861c480da51_html_f1a5a3945585a653.gif ,使

60861c480da51_html_16928a9b157a7c57.gif

并将60861c480da51_html_50ae5f1f605f6c46.gif 中的第

60861c480da51_html_4b11c46aa2ee47b0.gif 行元与第60861c480da51_html_19497f6b2ea59d95.gif 行元互相变换(相当于交换同解方程组60861c480da51_html_2818084a1a3135e5.gif 中的第60861c480da51_html_4b11c46aa2ee47b0.gif 个方程),然后再进行消元计算得到结果.


注:列主元素法的精度虽然稍低于全主元素法[1],但它计算简单,相对比全主元素法它的工作的量大大减少,并且从计算经验和理论分析都可以表明,它与全主元素法同样拥有很好的值稳定性,列主元素法是求解中小型浓密型方程组的最好的方法之一.

4用三角分解法解线性代数方程组

4.1 矩阵的三角分解

定义4 把一个60861c480da51_html_1e13b0da5b783a12.gif 阶矩阵60861c480da51_html_268b2105e427b134.gif 分解成两个三角矩阵相乘的形式称为矩阵的三角分解.

常见的矩阵三角分解是

60861c480da51_html_e1128d52933147bc.gif

其中60861c480da51_html_feae0894c766c2bf.gif 是下三角形的矩阵,60861c480da51_html_2068c2d4a7fc90fe.gif 是上三角形的矩阵.

定理5[1](矩阵三角分解基本定理)设60861c480da51_html_247685d5adb32c83.gif .若60861c480da51_html_268b2105e427b134.gif的顺序主子式60861c480da51_html_456ae60992fda806.gif60861c480da51_html_93ad425fbd280c8e.gif ,那么存在唯一的杜利特尔分解

60861c480da51_html_ecad0785f2145e8f.gif

其中60861c480da51_html_feae0894c766c2bf.gif是单位下三角形矩阵,60861c480da51_html_2068c2d4a7fc90fe.gif为非奇异的上三角形矩阵.

如果60861c480da51_html_feae0894c766c2bf.gif 是单位下三角形的矩阵,60861c480da51_html_2068c2d4a7fc90fe.gif 是上三角形的矩阵,那么把这种分解法称为杜利特尔分解法,其中杜利特尔分解法是这种三角分解的一种特例,下面主要介绍利用杜利特尔分解法来求方程组的解.

4.2 用杜利特尔分解法解线性代数方程组

用杜利特尔分解法解方程组60861c480da51_html_98a23272e5e4c846.gif的步骤可以把它归纳为

(1)实现60861c480da51_html_b49c010871d6932d.gif 分解,也就是

  1. 按算式

60861c480da51_html_5c0913e8a391a71.gif60861c480da51_html_c0df66daa4c39ced.gif (11)

60861c480da51_html_18d294cd97f46006.gif60861c480da51_html_2ee53ff871df5890.gif (12)

依次计算60861c480da51_html_2068c2d4a7fc90fe.gif 的第一行元60861c480da51_html_b1221459426d9922.gif60861c480da51_html_feae0894c766c2bf.gif 的第一列元60861c480da51_html_f1afa6f437851f97.gif

  1. 60861c480da51_html_e226a1c2f30c816d.gif 按算式

60861c480da51_html_5255f33418ff74f3.gif60861c480da51_html_e6dd8b23856b6d4e.gif (13) 60861c480da51_html_b5a4b326c5413f18.gif60861c480da51_html_a87623c9e459d810.gif (14)

依次计算60861c480da51_html_2068c2d4a7fc90fe.gif 的第60861c480da51_html_9a7767242542a6ac.gif 行元60861c480da51_html_606e2b0e73acfb33.gif60861c480da51_html_feae0894c766c2bf.gif 的第60861c480da51_html_9a7767242542a6ac.gif 列元60861c480da51_html_cc54d1b6853fce73.gif .

(2)求解三角形方程组60861c480da51_html_b294eb201c00de1b.gif ,即按算式60861c480da51_html_79b9725abc9d2877.gif 依次计算60861c480da51_html_3fd2d535c39a1ed3.gif .

(3)求解三角形方程组60861c480da51_html_6db57dadda9bdd92.gif ,即按算式60861c480da51_html_5b5960d0db514c70.gif 依次计算60861c480da51_html_72f5046da8e41c06.gif.



利用杜利特尔分解法解方程组与高斯消元法是相似的,它重要的优点是:在利用60861c480da51_html_a7fb91015fee6cd0.gif 分解,解有相同的系数矩阵的方程组时,用杜利特尔分解法非常方便,只用两个式子就可以得到方程组的解.

5用迭代法解线性代数方程组

用迭代法求方程组60861c480da51_html_a7fb91015fee6cd0.gif 的解,需要考虑迭代过程的收敛性,在下面的讨论中,都假设方程组60861c480da51_html_b6a9358044a8f89a.gif 的系数矩阵的对角阵是不为零的.

5.1 用雅可比迭代法解方程组60861c480da51_html_3784c3092db6c42b.gif

对于一般线性方程组60861c480da51_html_b6a9358044a8f89a.gif ,如果从第60861c480da51_html_b60ed9229f799d72.gif 个方程解出60861c480da51_html_281e470aeb6aa5eb.gif ,就可以把它转化成等价的方程组

60861c480da51_html_6f3c83713876feab.gif . (15)

从而可以得到对应的迭代公式

60861c480da51_html_13330bcd736ab4b.gif60861c480da51_html_218fb4f48c62f1fd.gif (16)

这就是解一般方程组60861c480da51_html_b6a9358044a8f89a.gif 的分量形式的雅可比(Jacobi)迭代公式.如果把它改成

60861c480da51_html_3add413f50ca3f3.gif (17)

并把系数矩阵60861c480da51_html_a648732212288c1b.gif 表示成

60861c480da51_html_697a0aef01df300e.gif (18)

其中

60861c480da51_html_a7954f2b40c8191d.gif60861c480da51_html_68530c82ff2a58e3.gif60861c480da51_html_6b64596376816b72.gif

则可以看出60861c480da51_html_b6a9358044a8f89a.gif 式的左右两端分别是向量60861c480da51_html_be52ee889560eb8a.gif60861c480da51_html_96c0ea637546f2e3.gif 的第60861c480da51_html_5650684561fac597.gif 个分量,故

60861c480da51_html_dc3b53a6fb6fe8b7.gif

因为60861c480da51_html_562e536851615a03.gif 可逆,所以

60861c480da51_html_f04940176b891cb3.gif

于是就可以得到60861c480da51_html_7aa74cb83405812d.gif 是雅可比迭代的公式.

其中60861c480da51_html_9ee2da930a55a24.gif (称为雅可比迭代矩阵),60861c480da51_html_a2e89a685cf0a751.gif .

5.2 用高斯-赛德尔迭代法解方程组60861c480da51_html_c9fa70870b2f3c7b.gif

高斯-赛德尔迭代法也是常用的迭代法,设线性代数方程组为60861c480da51_html_b4a38dadd07dd379.gif ,则高斯-赛德尔迭代法的迭代公式为

60861c480da51_html_317d919445105cd5.gif60861c480da51_html_2bd6253108cca4c0.gif (19)

其中迭代法(19)就称为高斯-赛德尔迭代法.通过雅可比迭代法类似的途径,就可以得到矩阵的表达式

60861c480da51_html_a409c50f2aae6fe4.gif60861c480da51_html_95ab60a84cd62140.gif

其中60861c480da51_html_c62e00a4afeb474e.gif (称为高斯-赛德尔迭代矩阵),60861c480da51_html_e87ff49ae9494ab4.gif .

高斯-赛德尔迭代法与雅可比迭代法都有算式简单、容易在计算机上实现等优点,但是用计算机来计算时,雅可比迭代法需要两组工作单元用来寄存60861c480da51_html_ef3d448a0ee1abe3.gif60861c480da51_html_d3d242234ccbe399.gif 的量,而高斯赛-德尔迭代法只需一组工作单元存放60861c480da51_html_ef3d448a0ee1abe3.gif60861c480da51_html_d3d242234ccbe399.gif 的分量.对于给定的线性方程组,用这两种方法求解可能都收敛或者都不收敛,也可能一个收敛另一个不收敛,两种方法的收敛速度也不一样.

5.3 迭代法的收敛条件与误差分析

定义6[1] 矩阵60861c480da51_html_3aed5cfe977c636e.gif 全部的特征值60861c480da51_html_b8f8f35b00d74c29.gif60861c480da51_html_c44622d751d99a16.gif 的模的最大值,叫做矩阵60861c480da51_html_67c25a96a9113b5.gif 的谱半径,记作60861c480da51_html_c866416612a9aa9d.gif ,即

60861c480da51_html_fc0f5e5405b96b11.gif .

定理7[1] 对任意初始向量60861c480da51_html_3004e3e0587d5eba.gif 迭代过程60861c480da51_html_f56ee6fb7e01130d.gif 收敛的充要条件是60861c480da51_html_f7da7db1d3222926.gif ;当60861c480da51_html_f7da7db1d3222926.gif 时,60861c480da51_html_ed0c33c82a8f60b6.gif 越小,那么其收敛的速度是越快的.


由定理7可知,用雅可比迭代法求解时,其迭代的过程是收敛的,而用高斯-赛德尔迭代法来求解,其迭代的过程是发散的.在不同条件下,收敛的速度是不同的,对同一矩阵,一种方法是收敛的,一种方法发散.

第 7 页