logo资料库

线性方程组的求解-列主元消元法,LU分解法,改进的平方根法,追赶法和雅可比迭代,高斯—塞德尔迭代.doc

第1页 / 共23页
第2页 / 共23页
第3页 / 共23页
第4页 / 共23页
第5页 / 共23页
第6页 / 共23页
第7页 / 共23页
第8页 / 共23页
资料共23页,剩余部分请下载后查看
摘要
一.用列主元消去法解方程组:
1.问题的提出:
2.问题的分析:
3.问题的解决:
消去过程结束,回代计算得到解
二.编写一个列主元消去法求逆矩阵的程序,并用以求如下矩阵的逆矩阵。
1.问题的提出:
2.问题的分析:
3.问题的解决:
三.用LU分解法解方程组
1.问题的提出:
2.问题的分析:
3.问题的解决:
四.用改进平方根法解方程组:
1.问题的提出:
2.问题的分析:
3.问题的解决:
五.用追赶法解方程组:
1.问题的提出:
2.问题的分析:
3.问题的解决:
六.分别用雅可比迭代法与高斯-赛德尔迭代法解方程组:
1.问题的提出:
2.问题的分析:
3.问题的解决:
参考文献:
个人体会:
附录:程序代码:
1.程序代码:
2.程序代码:
3.程序代码:
5.程序代码:
6.程序代码:
jacobi程序:
gauss-seidel程序:
目录 b 三.用 LU 分解法解方程组 摘要.................................................................................................1 一.用列主元消去法解方程组................................................................... 2 1.问题的提出 .......................................................................................................................... 2 2.问题的分析 .......................................................................................................................... 2 3.问题的解决 .......................................................................................................................... 3 二.编写一个列主元消去法求逆矩阵的程序................................................... 4 1.问题的提出 .......................................................................................................................... 4 2.问题的分析 .......................................................................................................................... 4 3.问题的解决 .......................................................................................................................... 5 Ax  ............................................................. 5 1.问题的提出 .......................................................................................................................... 5 2.问题的分析 .......................................................................................................................... 5 3.问题的解决 .......................................................................................................................... 6 四.用改进平方根法解方程组................................................................... 7 1.问题的提出 .......................................................................................................................... 7 2.问题的分析 .......................................................................................................................... 7 3.问题的解决 .......................................................................................................................... 8 五.用追赶法解方程组........................................................................... 9 1.问题的提出 .......................................................................................................................... 9 2.问题的分析 .......................................................................................................................... 9 3.问题的解决 ........................................................................................................................ 10 六.分别用雅可比迭代法与高斯-赛德尔迭代法解方程组....................................11 1.问题的提出 ........................................................................................................................ 11 2.问题的分析 ........................................................................................................................ 11 3.问题的解决 ........................................................................................................................ 12 参考文献......................................................................................... 14 个人体会......................................................................................... 15 附录:程序代码................................................................................. 16
摘要 在科技研究和工程技术所提出的计算问题中,经常会遇到线性方程组的求解问题,这里 主要是有关线性方程组的直接解法。解线性方程组的直接法是用有限次运算求出线性方程组 Ax=b 的解的方法。线性方程组的直接法主要有 Gauss 消元法及其变形、LU(如 Doolittle、 Crout 方法等)分解法和一些求解特殊线性方程组的方法(如追赶法、LDLT 法等)。这里主 要有列主元消元法,LU 分解法,改进的平方根法,追赶法和雅可比迭代,高斯—塞德尔迭代 的构造过程及相应的程序。线性方程的解法在数值计算中占有极重要的地位,因此,线性方 程组的求解是数值分析课程中最基本的内容之一。 关键词:列主元消元法;LU 分解 ;改进平方根法;追赶法;雅可比迭代;高斯—塞德 尔迭代 1
一.用列主元消去法解方程组: 1.问题的提出: x  4 x  x  3 3 x  x  2 x  x  2 2  x  1  2 x  1  3 x  1  x   1 3    x (1) 3 2 2 4 x 2 3 (2)        x x  1 2 x  1 x x  1 x x  1 2 2 2 2  x 2   3 4 2 x x  3 4 3 x   3 2 x  4 3 x  3 x 3 1  4 x  4 x   4  3 x 4 8  20  4 4 2.问题的分析: 列主元消去算法主要分为两个过程:消去过程和回代过程 1. 消去过程 , n k  ,2,1  对  1 (1)选主元 找 ki   , k , n  , 使 ( k ) a ki k  max nik  ) a ( k ik (2)若 ) ( ka k ik 0 则停止计算(detA=0) (3)若 ki k 则换行  E  k  E ki (4)消元 ,1 对i = k   , n  1 ikl  ) ) a a ( k ik ( k kk 对 j  k ,1  , n  1 a ( k ij )1  ) a ( k ij  ) al ik ( k kj 2.回代过程 )( n nna (1)若 (2) nx  ( ) n a , nn ( n a nn 1  ) 0 则停止计算(detA=0) 2
(3)对 i ,1  n 1, a ix  ) ( n   , 1 ni n  j a i  ) ( n ii n ) ( ij x j a 1 3.问题的解决: (1)解:对于 A |)1( b = bA | = 第 1 步选列主元为 a )1( 31  ,3 1 i 3 1 1   2 1   3 1    1 2   ,作变换 0 1  1  3  E  1 3 1 2 1   E        4 1 3  4 3 ,然后计算 l 21 2 3 .0 667 , l 31 1 3 .0 333 , l 41   1 3  .0 333 再 作 变 换  E 2  El 1 21    EE 2 , 3  El 1 31    EE 3 , 4  El 1 41   E ,4 得 到  A )2( )2( = | b 1 3  .10 667 .10 333 .10 667        1  333 .0  333 .0 .2 667 2 333 .0  333 .2 333 .0  3  3 5 3        第 2 步,对 )2(A 选列主元为 a )2( 22  5 3 .1 667 , 2 i 2 ,计算 l 32 4 5 E 3 再做变换 (  8.0 , 42 l 1 ,  El 32 2 )  E 3 , ( E 4  El 42 2 )  E 4 ,得到  )3( bA )3(    1 3 3/50 0 0 0 0        1  3/1  15/9 3 2 3/1  15/39 0 3  3 5/13 0        消去过程结束,回代计算得到解 x 1  1 x 2  2 x 3  0 x 4  1 所以原方程组的解为 X )1,0,2,1( T 。 (2)解:对于 A |)1( b    bA |   1 2 1 1        21  32  1 1 41  1  3  0 3 8  20  2  4        3
第 1 步选列主元为 a 2 , 1 i 作变换 ,2  E  1  E ,2 然后计算 l 21  l 31  l 41  1 2 , )1( 21    再作变换 E  2 El 1 21  EE 2 ,  El 1 31 3    EE 3 , 4  El 41 1   E 4 ,得到  A )2( )2( | b   2 0 0 0        2  0 2 0 3 3  2/1 2/1 2/32/1  2/9 2/5  20 2 8 14        第 2 步,对 )2(A 选列主元为 a )2( 32  ,2 2 i  ,3 作变换 ( E  2 ) ( E 3 ) 得到  )3( bA )3(   2 0 0 0        2  2 0 0  3 3 2/32/1  2/1 2/1 2/5 2/9  20 8 2 14        第 3 步,对 )3(A 选列主元为 a )3( 43  ,2/5 i 3  4 ,作换行 ( E  3 ) ( E 4 ) ,计算 43 l 5/1 ,作 变换 ( E 4  El 43 3 )  E 4 ,则 )4( ( A | b )4( )  2 0 0 0        2  2 0 0 3 2/1  2/5 0 3  2/3 2/9 5/2   20 8 14 5/4         消去过程结束,回代计算得到 x 1  7 x 2  3 x 3  2 x 4  2 所以原方程组的解为 X )2,2,3,7( T 二.编写一个列主元消去法求逆矩阵的程序,并用以求如下 矩阵的逆矩阵。 1.问题的提出:  A      5 2 1 2 8 3  1 3  6       2.问题的分析: 1A 设 A 是 n 阶非奇异矩阵,则 (  1  X A 存在,令 nX  , , 2 XX , 1 ) 则 其中, AX  ( , EE 1 E , 2 E   , nE ) 是单位矩阵 4
( AX 从而 即 求解上述 n 个方程组时,将它们的增广矩阵 ( ) , EE  1 n ,2,1 , n  AX 2  k , ,  , E k , 1 AX AX k , 2  , E n ) ( , kEA ) 合并后有 ( , EA )            a a a 11 1 1 r n   a a a r rr rn   a a a     1 1 n nr nn 按列选主元无回代高斯消元法得 ( BE , )  ( EE 1 , 2 ,  , BBE 2 n , , 1 ,  , AX  E k , k k   1 0 0   0 0 1   0 0 1             B n )     1 0 0       0 1 0      0 0 1  ,2,1   n 的解。   ,   b b b 11 1 1 r n   b b b r rr rn   b b b 1 n nr nn     1         kB B A 1 显然列向量 是方程 因此 3.问题的解决: 5 2 1 解:由上述过程可得      5 2 1      2 8 3  1 3  6       3B  2 8 3       0 0 1      1 3  6       1B =      1 0 0      , 5 2 1      2 8 3  1 3  6       2B       0 1 0      , ,解得 B   B 1 B 2   B 3 203 .0 032 .0  05.0       032 .0 11.0 06.0  05.0 06.0  128 .0        所以      1A  032 .0 11.0 06.0  203 .0 032 .0  05.0 05.0 06.0  128 .0       三.用 LU 分解法解方程组 b Ax  1.问题的提出: 0 12 20 2 48 24  0 6  24  24 6 6 12  12 2 16 A   b                   4 4 2  2        2.问题的分析: 5
求解线性方程组的 LU 分解法:将系数矩阵 A 分解成两个三角矩阵的乘积, A=LU 的形式 即: 其中,L 为下三解矩阵,U 为上三解矩阵,则线性方程组:Ax=b 可改写为 令 得 LUx=b Ux=y Ly=b 然后,用前代方法求 Ly=b 得列矩阵 y,再用回代方法求 Ux=b,得到的列矩阵 x 即为所求的 线性方程组的解. 3.问题的解决:       1 1 l 43 u 11 u 12 u 22 U        u 13 u u 23 33 24 u 14 u u u 34 44       得到 1 l l 32 42 u 12 u  21 22 lu  22 lu  22 32 42 u 13 lu  13 21 lu  23 31 lu  23 42 u 23 u  32 33 lu  33 43 lu 13 lu 13 41 u 14  21 lu 24  42 lu 14  31 lu 24 u 24  32 lu 34 u 43 34  u 44       lu 14  41 lu 14 31 41 lu 12 lu 12 lu 12 0 12 20 2 12 12 2 16       解:设 L        21 1 l l l 31 41 21 31 u 11 lu 11 lu 11 lu 41 11 24  24 6 6  LU       48 24  0 6  解得:         1 0.5 0 0.125      Ux  , y L 令     , (  U submatrix M 0 3 8 0 48  0 0   1 0  0.071 0  0 0 0 1 U  11 ) 24 12 0 0 0 12 14 0 12 6 1 12.929     0 1 0.5 0.25  Ax  LUx  Ly b b ,        1 5.0 0 .0 125 48        1 5.0 25.0 24 0  12 12 14 所以原方程组的解为  1 071 .0 12 6 1  929 .12  .0             X  2 y 1 y y y 3 4  1       x 1 x x x             3 2 4             =       4 4 2  2        4 6 5  357 .3        解得 y        解得 x        4 6 5  357 .3 0.521 1.006 0.376 - - 0.26              521 .1 006  .0 376  26.0 T 。 6
四.用改进平方根法解方程组: 1.问题的提出: 用改进平方根法解下列方程组: (1) 5.0  5.1 5.0  25.0  25.0 0 0 5.0  5.1 25.0 25.0  0 35.0 35.1 00.2 00.1  35.0  35.0  00.2 00.2 00.2 00.2 35.1 35.0  00.1  00.2 35.0  35.0 00.2 00.1  35.0  35.1 00.2 00.2 35.0 35.0  b 5.0 5.0  0 0 0 0 b  A Ax            Ax  35.1 35.0 00.2 00.2 35.0  35.0  00.1  00.2 (2) A               0 25.0  25.0 5.1 5.0  0 35.0  35.0  00.1  00.2 35.1 35.0 00.2 00.2 0 25.0 25.0  5.0  5.1 5.0  0 0 0 0 5.0  5.0           b 1   0   0  0   0   0            35.0  35.0  00.2 00.2 35.0 35.1 00.2 00.1  00.1  00.2 35.0  35.0 00.2 00.2 35.1 35.0  00.2 00.2 35.0 35.0  00.2 00.1  35.0  35.1              b  00.2 00.2 00.12 00.12 00.2 00.2 00.2 00.2                           2.问题的分析: 平方根法主要用于求解对称正定矩阵方程:首先要提到的是关于正定矩阵的定理,说的 是若 A 为 n 阶地对称正定矩阵,则存在一个实的非奇异下三角矩阵 L,使 A=LL’(L’表示 L 的对称矩阵)。根据这个前提,在结合前面的 LU 分解算法,便有了平方根算法。平方根算 法的计算量约为普通三角分解算法的一半,但由于这里要用到开平方,效率不是很高,所以, 便有了为效率而存在的改进的平方根算法。 对称矩阵分解法(改进平方根法)如下: 设对称矩阵,存在分解式 A  LDU ,因 A 对称矩阵,即 TAA  得 ULLU   T , T , A  T LDL AA  T   LDU T   T T DLU ,由分解的唯一性得 于是可得对称矩阵 A 的 LR 分解式 7
分享到:
收藏