1、解线性方程组的直接方法 / Direct Method for Solving Linear Systems /,邹昌文,引言与预备知识,线性方程组数值解法分类 直接法 迭代法 向量与矩阵基本知识复习P162,讨论线性方程组,直接法高斯消去法,顺序高斯消去法/ Gaussian Elimination / 例:解下列线性方程组,方程组等价于由最后一方程,消元过程,回代过程, 高斯消去法一般思路:,现考虑n阶线性方程组,消元,其中,Step k:设 ,计算因子 且计算,共进行 ? 步,n 1,回代,No unique solution exists.,What if we cant find s
2、uch k ?,No unique solution exists.,定理,若A的所有顺序主子式 / determinant of leading principal submatrices / 均不为0,则高斯消元无需换行即可进行到底,得到唯一解。,注:事实上,只要 A 非奇异,即 A1 存在,则可通过逐次消元及行交换,将方程组化为三角形方程组,求出唯一解。,主元对解的影响,若主对角线上某元素为0则无法进行消元 若主对角线上某元素绝对值接近0,则用其作除数,会导致其他元素数量级的严重增长和舍入误差的扩散,将严重影响计算结果的精度。,例:单精度解方程组,用Gaussian Eliminatio
3、n计算:,8个,小主元 / Small pivot element / 可能导致计算失败。, 全主元消去法 / Complete Pivoting /,每一步选绝对值最大的元素为主元素,保证 。,Step k: 选取, If ik k then 交换第 k 行与第 ik 行;If jk k then 交换第 k 列与第 jk 列;, 消元,注:列交换改变了 xi 的顺序,须记录交换次序,解完后再换回来。, 列主元消去法 / Partial Pivoting, or maximal column pivoting /,省去换列的步骤,每次仅选一列中最大的元。,例:,注:列主元法没有全主元法稳定。
4、, 标度化列主元消去法 / Scaled Partial Pivoting /,对每一行计算 。为省时间,si 只在初始时计算一次。以后每一步考虑子列 中 最大的 aik 为主元。,注:稳定性介于列主元法和全主元法之间。, 高斯-若当消去法 / Gauss-Jordan Method /,与 Gaussian Elimination 的主要区别:, 每步不计算 mik ,而是先将当前主元 akk(k) 变为 1;, 把 akk(k) 所在列的上、下元素全消为0;,Hey! Isnt it better than Gaussian Elimination?,What makes you say
5、so?,Obviously we no longer need the backward substitution!,Youd better wait till we go through the next section to draw your conclusion, 运算量 / Amount of Computation /,由于计算机中乘除 / multiplications / divisions / 运算的时间远远超过加减 / additions / subtractions / 运算的时间,故估计某种算法的运算量时,往往只估计乘除的次数,而且通常以乘除次数的最高次幂为运算量的数量
6、级。, Gaussian Elimination:,(n k) 次,(n k)2 次,(n k) 次,消元乘除次数:,1 次,(n i +1) 次,回代乘除次数:,Gaussian Elimination 的总乘除次数为,运算量为 级。, Complete Pivoting:,比 Gaussian Elimination多出 次比较,保证稳定,但费时。, Partial Pivoting:,比 Gaussian Elimination只多出 次比较,略省时,但不保证稳定。, Scaled Partial Pivoting:,比 Gaussian Elimination多出 次除法和 次比较,比列主元法稳定。但若逐次计算 si(k),则比全主元法还慢。, Gauss-Jordan Method:,运算量约为 。故通常只用于求逆矩阵,而不用于解方程组。求逆矩阵即 。,例:用高斯-约当消去法求,的逆矩阵,解 C = A I =,