1、数值计算方法,第三章 解线性方程组的直接方法,Direct Method for Solving Linear Systems,其中,简记作,求解,解线性方程组的两类方法:,迭代法:从解的某个近似值出发,通过构造一个无穷序列去逼近精确解的方法。(一般有限步内得不到精确解),直接法: 经过有限次运算后可求得方程组精确解的方法(不计舍入误差!), 高斯消元法:,一、Gauss 消去法计算过程,相当于第i个方程-第一个方程数新的第i方程同解!第一方程不动!,其中,上述消元过程除第一个方程不变以外, 第2第 n 个方程全消去了变量 1,而系数 和常数项全得到新值:,系数矩阵与常数项:,消元,记,其中,
2、Step k:设 ,计算因子 且计算,共进行 ? 步,n 1,回代过程算法,消去第一列的 n-1 个系数要计算n*(n-1) 个乘法。,Gauss消去法乘法计算量,需要修改前述算法,研究原矩阵A在什么条件下才能保证高斯消去的进行。,No unique solution exists.,What if we cant find such k ?,No unique solution exists.,定理6,若A的所有顺序主子式 /* determinant of leading principal submatrices */ 均不为0,则高斯消元无需换行即可进行到底,得到唯一解。,注:事实上,
3、只要 A 非奇异,即 A1 存在,则可通过逐次消元及行交换,将方程组化为三角形方程组,求出唯一解。,高斯主元素消去法,例1.,用Gauss消去法解线性方程组(用3位十进制浮点数计算),解:,本方程组的精度较高的解为,用Gauss消去法求解(用3位十进制浮点数计算),9999,回代后得到,与精确解相比,该结果相当糟糕,究其原因,在求行乘数时用了很小的数0.0001作除数,主元,如果在求解时将1,2行交换,即,0.9999,回代后得到,这是一个相当不错的结果,每一步消去过程相当于左乘初等变换矩阵Lk,Gauss消去法的矩阵表示,LU形式,Hey hasnt GE given me enough h
4、eadache? Why do I have to know its matrix form?!,When you have to solve the system for different with a fixed A.,Could you be more specific, please?,Factorize A first, then for every you only have to solve two simple triangular systems and .,证明:由1中定理可知,LU 分解存在。下面证明唯一性。,若不唯一,则可设 A = L1U1 = L2U2 ,推出,U
5、pper-triangular,Lower-triangular With diagonal entries 1,注: L 为一般下三角阵而 U 为单位上三角阵的分解称为Crout 分解。实际上只要考虑 A* 的 LU 分解,即 ,则即是 A 的 Crout 分解。,直接计算 A 的 LU 分解(例),一般计算公式,计算量与 Gauss 消去法同.,LU 分解求解线性方程组, 平方根法 /* Choleskis Method */:对称 /* symmetric */ 正定 /* positive definite */ 矩阵的分解法,因此,Diagonal:对角,为非奇异下三角阵,为非奇异上
6、三角阵,-(2),-(3),因此,所以,综合以上分析,则有,-(4),-(5),定理11. (Cholesky分解),且该分解式唯一,这种关于对称正定矩阵的分解称为Cholesky分解,-(6),-(7),-(8),对称正定线性方程组的解法,线性方程组,-(10),-(11),则线性方程组(10)可化为两个三角形方程组,-(12),-(13),-(14),-(15),对称正定方程 组的平方根法,例1.,用平方根法解对称正定方程组,解:,即,所以原方程组的解为,本例中出现了大量的根式运算,原因为,考虑改变分解方式,请求解例1.,平方根法的数值稳定性,用平方根法求解对称正定方程组时不需选取主元,由
7、,可知,因此,平方根法是数值稳定的,事实上,对称正定方程组也可以用顺序Gauss消去法求解,而不必加入选主元步骤,Algorithm: Choleskis Method To factor the symmetric positive definite nn matrix A into LLT, where L is lower triangular. Input: the dimension n; entries aij for 1 i, j n of A. Output: the entries lij for 1 j i and 1 i n of L. Step 1 Set ; Step
8、 2 For j = 2, , n, set ; Step 3 For i = 2, , n1, do steps 4 and 5Step 4 Set ; Step 5 For j = i+1, , n, set ; Step 6 Set ; Step 7 Output ( lij for j = 1, , i and i = 1, , n ); STOP.,因为A 对称,所以只需存半个 A,即其中,运算量为 O(n3/6), 比普通LU 分解少一半,但有 n 次开方。用A = LDLT 分解,可省开方时间。, 追赶法解三对角方程组 /* Crout Reduction for Tridiag
9、onal Linear System */,Step 1: 对 A 作Crout 分解,直接比较等式两边的元素,可得到计算公式(p.194)。,Step 2: 追即解 :,Step 3: 赶即解 :,与G.E.类似,一旦 i = 0 则算法中断,故并非任何 三对角阵都可以用此方法分解。,Hey, what does diagonally dominant mean?,It means that the diagonal entries of the matrix are very LARGE.,Well, how large is LARGE?,They satisfy the followi
10、ng inequality:,注: 如果 A 是严格对角占优阵,则不要求三对角线上的所有元素非零。 根据不等式可知:分解过程中,矩阵元素不会过分增大,算法保证稳定。 运算量为 O(6n)。,5.向量和矩阵的范数,一、向量范数,显然,二、矩阵的范数,矩阵范数例,与前述三种向量范数相容的三种矩阵范数:,求矩阵A的各种常用范数,解:,由于,特征方程为,容易计算,计算较复杂,对矩阵元素的 变化比较敏感,使用最广泛,性质较好,矩阵A的谱半径, (A),定理1.,定理1.,5.6 误差分析,右端项b的扰动对解的影响,相对误差放大因子,系数矩阵A的扰动对解的影响,条件数的定义,条件数的性质,精确解为,A1
11、=,解:考察 A 的特征根,39206 1, 测试病态程度:,此时精确解为,2.0102 200%,cond (H2) =,27,cond (H3) ,748,cond (H6) =,2.9 106,cond (Hn) as n ,注:一般判断矩阵是否病态,并不计算A1,而由经验得出。 行列式很大或很小(如某些行、列近似相关); 元素间相差大数量级,且无规则; 主元消去过程中出现小主元; 特征值相差大数量级。, 近似解的误差估计及改善:,设 的近似解为 ,则一般有,cond (A), 改善方法:,Step 1: 近似解,Step 2:,Step 3:,Step 4:,若 可被精确解出,则有就是精确解了。,经验表明:若 A 不是非常病态(例如: ),则如此迭代可达到机器精度;但若 A 病态,则此算法也不能改进。,二、误差分析, 改善方法:,Step 1: 近似解,Step 2:,Step 3:,Step 4:,若 可被精确解出,则有就是精确解了。,经验表明:若 A 不是非常病态(例如: ),则如此迭代可达到机器精度;但若 A 病态,则此算法也不能改进。,