第 4 章:解线性方程组的直接法(一)

解线性方程组的直接法

  • 4.1 高斯消元法
  • 4.2 直接分解法
  • 4.3 病态方程组

在自然科学和工程技术中很多问题的解决常常归结为解线性方程组,即求线性方程组 (1) 的未知量\(x_1,x_2,...,x_n\)的数值
image
其中\(a_{ij},b_i\)为常数
写成矩阵形式 \(Ax = b\)
image
\(A=(a{ij})\) 为系数矩阵,\(x=(x_1,x_2,...x_n)^T\)为解的向量,\(b=(b_1,b_2,...,b_n)\)为常数向量

实际问题中的线性方程组分类

  • 按系数矩阵中零元素的个数
    • 稠密线性方程组、稀疏线性方程组
    • 高阶线性方程组、低阶线性方程组
    • 对称正定方程组、三角形方程组、对角占优方程组

实际计算中,往往从三个方面考虑选择何种算法求解线性方程组:

  • 解的精度高
  • 计算量小
  • 所需计算机内存小

但这些目标相互之间是矛盾的,不可能同时满足,因此实际计算时应根据问题的特点和要求及所用计算机的性能来选择算法
关于线性方程组的数值解法一般有两类:直接法和迭代法

4.1 高斯消元法

三角形方程组的解
  • 对角型方程组
    image

  • 下三角方程组
    image
    image
    image

  • 上三角方程组
    与求解下三角方程组的次序相反,从第n个方程到第1个方程,依次解出\(x_i\)

消元法的基本思想就是通过对方程组做初等变换,把一般形式的方程组化为等价的具有上述形式的易解方程组

高斯消元法与列主消元法

高斯消元法是我们熟悉的古老、简单而有效的解方程组的方法。整个过程分为消元和回代两部分
image
上述过程相当于对方程组的增广矩阵作行的初等变换
image
得到上三角矩阵,再用回代的方法解出 \(x_2\)\(x_1\)
一般地,可以对方程组施行以下初等变换,这些初等变换并不改变方程组的解,其中\(r_i\)表示矩阵的第\(i\)

  • 交换某两个方程的位置,\(r_{i} \leftrightarrow r_{j}\)
  • 某个方程两边同承一个不为零的数\(k\),即以非零数\(k\)乘以某一行中的所有元素,\(kr_i\)
  • 把某一个方程两边同乘一个常数后加到另一个方程两边

上述这些变换可以写成增广矩阵的形式。以三阶线性方程组为例,对应的简单矩阵为
image
高斯消元法就是通过以上三种变换,把\((A,b)\)化为等价的上三角形式
image

  • 第一步\((k=1)\),首先计算乘数

\[m_{i1} = \frac{a_{i1}^{(1)}}{a_{11}^{(1)}}, \quad i = 2, 3, \ldots, n \]

image
image
image
image
image
image
image

  • 在上面的消元法中,未知量是按照在方程组中的自然顺序消去的,也叫顺序消元法
  • 在消元过程中假定对角元素不为零,校园步骤才能顺利进行,由于顺序消元不改变\(A\)的顺序主子式,因此高斯消元法可行的充分必要条件为\(A\)的各阶顺序主子式不为\(0\)
  • 但是,实际上只要A的行列式不为\(0\),方程组\(Ax=b\)就有解,因此高斯消元法本身具有局限性。
  • 高斯消元法对于简单的矩阵也可能失效,例如
    image
  • 另一方面,即使高斯消元法可行,如果\(a_{kk}^{(k)}\)很大,在运算中用它作为除法的分母会导致其他元素数量级的严重增长和摄入误差扩散。这是高斯消元法的另一个缺陷
  • 在某些情况下,调换方程的次序,对方程组的解是有影响的,在消元法中抑制舍入误差的增长十分必要
列主消元法
  • 调换方程组的次序是依照在运算中作分母量的绝对值尽量要大,以减少输入误差的影响
  • 如果在一列中选取规模最大的元素,将其调到主干方程的位置再做消元,则称为列主消元法

设线性方程组的增广矩阵为

\[B = \left( \begin{array}{cccc|c} a_{11} & a_{12} & \cdots & a_{1n} & b_1 \\ a_{21} & a_{22} & \cdots & a_{2n} & b_2 \\ \vdots & \vdots & \ddots & \vdots & \vdots \\ a_{n1} & a_{n2} & \cdots & a_{nn} & b_n \end{array} \right)\]

  • 首先在 \(A\) 的第\(1\)列中选取绝对值最大的元素作为主元素,例如

\[|a_{i_1,1}| = \max_{1 \leq i \leq n} |a_{i1}| \neq 0 \]

  • 然后交换 \(B\) 的第一行与第 \(i_1\)行,经第一次消元计算得

\[(A | b) \rightarrow (A^{(2)} | b^{(2)}) \]

  • 重复上述过程,设已完成第 \(k-1\) 步的选主元素,交换两行及消元计算,\((A|b)\)约化为
    image
  • 其中\(A^{k}\)的元素仍记为\(a_{ij}\)\(b^{k}\)的元素仍记为\(b_i\)
  • \(k\)步选主元素(在\(A^{(k)}\)的右下角方阵的第 \(1\) 列内选),即确定\(i_k\),使得
    image
  • 交换\(A^{(k)|b^{(k)}}\)\(k\)行与\(i_k,k=1,2,...,n-1\)行的元素,再进行消元计算,最后将原线性方程组化为上三角形方程组,再代回求解
  • 由于\(A\)的行列式不为零,可以证明$$中至少有一个元素不为零,因此列主消元总是可行的。
  • 列主消元法与高斯消元法相比,只增加了选列主元和交换两个方程的过程
  • 用列主消元法可以克服\(Gauss\)消元法的额外限制,只要方程组有解,列主消元法就可以求解,同时又提高解的精度
例题

用列主消元法解下面的线性方程组

\[\left\{ \begin{array}{rcl} 10x_1 - 19x_2 - 2x_3 &=& 3 \\ -20x_1 + 40x_2 + x_3 &=& 4 \\ x_1 + 4x_2 + 5x_3 &=& 5 \end{array} \right.\]

image
image
image
image
image

用列主消元法,利用矩阵的初等行变换求解方程组

\[\left\{ \begin{array}{rcl} 2x_1 + 2x_2 + 3x_3 &=& 3 \\ 4x_1 + 7x_2 + 7x_3 &=& 1 \\ -2x_1 + 4x_2 + 5x_3 &=& -7 \end{array} \right.\]

image

高斯-约旦消元法
  • 高斯消元法有消元和回代两个过程,消去的是对角线下方的元素,将系数矩阵化为上三角矩阵。对消元过程稍加改变,可以将系数矩阵化为对角阵,这时求解就不需要回代了
  • 这种消去对角线上方与下方的元素,将系数矩阵化为对角阵的方法称为高斯-约旦消元法
  • 从形式上来看对角阵比上三角阵更简单,易于计算\(x_i\),但将上三角阵化为对角矩阵的工作量略大于上三角阵回代的工作量,因此用回代解方程组比高斯-约旦方法更实用
  • 高斯-约旦消元法更多的是应用于求矩阵的逆矩阵

直接分解法

\(n=4\)为例,在高斯消元法中,从对系数矩阵进行初等变换的角度观察方程组系数矩阵的演变过程

  • 方程组
    • image
  • 其增广矩阵为
    • image
  • 第一步,将方程组(9)化为如下方程组
    • image
    • 这个过程相当于用三个初等矩阵左乘\(A\)\(b\),记\(l_{i1} = \frac{a_{i1}}{a_{11}}, \quad i = 2, 3, 4\),容易验证
      • image
    • \(T_1Ax=T_1b\),得到\(A^{(2)}x=b^{(2)}\),其中
      • image
  • 第二步消元相当于用两个初等矩阵左乘\(A\)\(b\),记\(l_{i2} = \frac{a_{i2}^{(2)}}{a_{22}^{(2)}}, \quad i = 3, 4\)
    • image

    • image
  • 同理,第三步消元相当于用一个初等矩阵左乘\(A\)\(b\),记\(l_{43} = \frac{a_{43}^{(3)}}{a_{33}^{(3)}}\),有
    • image

    • image
  • 完成了消元过程,有
    • image
  • 也就是说所有的消元步骤可表示为:\((A,b)\)左乘一系列下三角初等矩阵
  • 容易验证,这些下三角矩阵的乘积仍为下三角矩阵
    • image
  • 于是有:\(\tilde{A} = T A\) 或者 \(A=T^{-1} \tilde{A}\),这里的\(T^{-1}\)仍为下三角矩阵,其对角线元素为\(1\),称为单位下三角阵。而\(\tilde{A}\)已经是上三角阵。记\(T^{-1}=L,\tilde{A}=U,\)则有\(A=LU\),即\(A\)等于一个单位下三角阵乘上一个上三角阵,结果仍为上三角阵

image

posted @ 2024-12-22 08:49  韦飞  阅读(180)  评论(0)    收藏  举报