第二章 预备知识 线性代数方程组的求解 2.1 直接法与三角形方程组求解 2.2 Gauss消去法 2.3 Gauss列主元消去法
一、直接法概述 直接法是将原方程组化为一个或若干个三角形 方程组的方法,共有若干种. 对于线性方程组 ------------(1) 其中 系数矩阵 未知量向量 常数项
若用初等变换法求解,则对其增广矩阵作行初等变换: 根据Cramer(克莱姆)法则,若 determinantal 行列式的记号 若用初等变换法求解,则对其增广矩阵作行初等变换: 经过n-1次
以上求解线性方程组的方法称为Gauss消去法 即 ------------(2) 同解 以上求解线性方程组的方法称为Gauss消去法 都是三角 形方程组 则 上述方法称为直接三角形分解法
不论是Gauss消去法还是直接三角形分解法, 最都归结为解三角形方程组 二、三角形线性方程组的解法 若记 下三角形线性方程组 上三角形线性方程组
回代方向 即
其解为
回 代 方 向 其解为:
2.2 Gauss消去法 一、消元与回代计算 对线性方程组 对其增广矩阵施行行初等变换:
定义行乘数
且
定义行乘数
二、Gauss消去法的运算量 计算机作乘除运算所耗时间要远远多于加减运算 且在一个算法中,加减运算和乘除运算次数大体相当 故在衡量一个算法的运算量时只需统计乘除的运算次数 乘法次数: 除法次数:
全部回代过程需作乘除法的总次数为 于是Gauss消去法的乘除法运算总的次数为 数级
Gauss消去法乘除法约为2700次 而如果用Cramer法则的乘除法运算次数约为 用行列式定义 或 用行列式性质
2.3 Gauss列主元消去法 一、Gauss列主元消去法的引入 例1. 用Gauss消去法解线性方程组(用3位十进制浮 点数计算) 解: 本方程组的精度较高的解为 用Gauss消去法求解(用3位十进制浮点数计算)
主元 9999 回代后得到 与精确解相比,该结果相当糟糕 究其原因,在求行乘数时用了很小的数0.0001作除数
如果在求解时将1,2行交换,即 0.9999 回代后得到 这是一个相当不错的结果
例2. 解线性方程组(用8位十进制尾数的浮点数计算) 解: 这个方程组和例1一样,若用Gauss消去法计算会有 小数作除数的现象,若采用换行的技巧,则可避免
绝对值最大 不需换行
经过回代后可得 事实上,方程组的准确解为
例2所用的方法是在Gauss消去法的基础上,利用换行 避免小主元作除数,该方法称为Gauss列主元消去法 行变换相 当于左乘 初等矩阵 由于
令 则 显然若令
则有 因此 从而 故
即 顺序主元 且
定义1. 不带行交换的Gauss 消去法的消元过程,产生 一个单位下三角矩阵L和一个上三角矩阵U,即 该过程称之为 由上述分析不难得到
Gauss消去法 可以执行 定理1. 在定理中,可能注意到 可能存在
2.Gauss列主元消去法消元过程的矩阵描述 此不可避免要进行行交换 即 表示不换行 初等矩阵
因此,Gauss列主元消去法的消元过程为 : 显然 上三 角阵 仍然为单位 下三角矩阵
初等矩阵的乘积,称为排列阵 则 推广到一般情形 仍然为单位 下三角矩阵 令 则 单位下三角阵与上三角阵的乘积
综合以上讨论,有 定理2. 请作出Gauss法和列主元消去法的程序(BASIC语言)
三、Gauss列主元消去法的算法设计 开始 (一) 流程图 换行 消元 输出无解信息 停机 回代求解
高斯消去法框图
§2.4 程序的使用 §2.4 程序的使用(1.Gaosi,2.Lie-zhu-yuan) 1. 打开VB执行文件 §2.4 程序的使用 §2.4 程序的使用(1.Gaosi,2.Lie-zhu-yuan) 1. 打开VB执行文件 2. 用记事本打开计算程序,粘贴到VB环境下的代码文件 3. 修改路径与文件名,修改必要的输出语句(主要是调试程序用) 4. 运行获得计算结果 5. 用记事本打开结果文件查看计算结果