当前位置: 代码迷 >> 综合 >> 计算方法(三):线性方程组的解法
  详细解决方案

计算方法(三):线性方程组的解法

热度:110   发布时间:2023-11-25 01:15:04.0

文章目录

  • 线性方程组的解法
    • 高斯消元法与选主元技巧
      • 三角形方程组及其解法
      • 高斯消元法
      • 列主元消元法
    • 三角分解法
      • 矩阵的三角分解
      • (矩阵形式)杜利特尔分解法
      • 解三对角线方程组的追赶法
      • 解对称正定矩阵方程组的平方根法
    • 向量和矩阵的范数
      • 向量的范数
      • 矩阵的范数
    • 迭代法
      • 雅可比迭代法
      • 高斯-赛德尔迭代法
      • 迭代收敛条件与误差估计
      • 逐次超松弛(SOR)迭代法
    • 方程组的状态与解的迭代改善
      • 方程组的状态与矩阵的条件数
      • 方程组近似解可靠性判别法
      • 近似解的迭代改善法
      • 预条件处理方法

线性方程组的解法

高斯消元法与选主元技巧

基本思想:通过初等行变换,将一个方程乘以某个常数,一个方程加上另一个方程的常数倍等,减少方程中的未知数数目,最后化成三角形方程组,从而得到所需要的解。

三角形方程组及其解法

上三角形方程组:
{ a 11 x 1 + a 12 x 2 + ? + a 1 n x n = b 1 a 22 x 2 + ? + a 2 n x n = b 2 ? ? a n n x n = b n \begin{cases}a_{11}x_1+a_{12}x_2+\cdots+a_{1n}x_n=b_1\\\ \ \ \ \ \ \ \ \ \ \ \ \ \ a_{22}x_2+\cdots+a_{2n}x_n=b_2\\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \cdots \ \ \cdots\\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a_{nn}x_n=b_n\end{cases} ??????????a11?x1?+a12?x2?+?+a1n?xn?=b1?              a22?x2?+?+a2n?xn?=b2?                            ?  ?                                      ann?xn?=bn??

回代的方法求解:先从第n个方程求出 x n x_n xn?,代入第n-1个方程求出 x n ? 1 x_{n-1} xn?1?,依次类推,可求出所有的 x i x_i xi?
{ x n = b n a n n x i = b i ? ∑ j = i + 1 n a i j x j a i i 要 求 a i i ( i ) ≠ 0 \begin{cases}x_n=\frac{b_n}{a_{nn}}\\x_i=\frac{b_i-\sum_{j=i+1}^na_{ij}x_j}{a_{ii}}\end{cases}\\要求a^{(i)}_{ii}\neq0 { xn?=ann?bn??xi?=aii?bi??j=i+1n?aij?xj???aii(i)???=0
类似的,下三角形方程组:
{ a 11 x 1 = b 1 a 21 x 1 + a 22 x 2 = b 2 ? ? a n 1 x 1 + a n 2 x 2 + ? + a n n x n = b n \begin{cases}a_{11}x_1 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =b_1\\a_{21}x_1+a_{22}x_2 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =b_2\\\ \ \ \ \ \ \ \ \ \ \ \ \ \ \cdots \ \ \cdots \\a_{n1}x_1+a_{n2}x_2+\cdots+a_{nn}x_n=b_n\end{cases} ??????????a11?x1?                                       =b1?a21?x1?+a22?x2?                         =b2?              ?  ?an1?x1?+an2?x2?+?+ann?xn?=bn??
前代的方法求解:先从第1个方程求出 x 1 x_1 x1?,代入第2个方程求出 x 2 x_2 x2?,依次类推,可求出所有的 x i x_i xi?
{ x 1 = b 1 a 11 x i = b i ? ∑ j = 1 i ? 1 a i j x j a i i \begin{cases}x_1=\frac{b_1}{a_{11}}\\x_i=\frac{b_i-\sum_{j=1}^{i-1}a_{ij}x_j}{a_{ii}}\end{cases} { x1?=a11?b1??xi?=aii?bi??j=1i?1?aij?xj???
回代法和前代法的计算量都是 1 2 n ( n + 1 ) \frac{1}{2}n(n+1) 21?n(n+1) 次乘除运算。

高斯消元法

高斯消元法分为两大步:消元和回代

(1)将系数矩阵A经过一系列的初等行变换变成右上三角矩阵,其常向量b也同时作相应变换,即
[ a 11 a 12 ? a 1 n b 1 a 21 a 22 ? a 2 n b 2 ? ? ? a n 1 a n 2 ? a n n b n ] = [ a 11 ( 1 ) a 12 ( 1 ) ? a 1 n ( 1 ) b 1 ( 1 ) a 21 ( 1 ) a 22 ( 1 ) ? a 2 n ( 1 ) b 2 ( 1 ) ? ? ? a n 1 ( 1 ) a n 2 ( 1 ) ? a n n ( 1 ) b n ( 1 ) ] → [ a 11 ( 1 ) a 12 ( 1 ) ? a 1 n ( 1 ) b 1 ( 1 ) 0 a 22 ( 2 ) ? a 2 n ( 2 ) b 2 ( 2 ) ? ? ? 0 a n 2 ( 2 ) ? a n n ( 2 ) b n ( 2 ) ] = [ A ( 2 ) b ( 2 ) ] \left[\begin{matrix}a_{11}& a_{12} & \cdots&a_{1n}&b_1\\a_{21}& a_{22} & \cdots&a_{2n}&b_2\\\vdots&\vdots&&\vdots\\a_{n1}& a_{n2} & \cdots&a_{nn}&b_n\end{matrix}\right]=\left[\begin{matrix}a_{11}^{(1)}& a_{12} ^{(1)}& \cdots&a_{1n}^{(1)}&b_1^{(1)}\\a_{21}^{(1)}& a_{22}^{(1)} & \cdots&a_{2n}^{(1)}&b_2^{(1)}\\\vdots&\vdots&&\vdots\\a_{n1}^{(1)}& a_{n2}^{(1)} & \cdots&a_{nn}^{(1)}&b_n^{(1)}\end{matrix}\right]\rightarrow\left[\begin{matrix}a_{11}^{(1)}& a_{12} ^{(1)}& \cdots&a_{1n}^{(1)}&b_1^{(1)}\\0& a_{22}^{(2)} & \cdots&a_{2n}^{(2)}&b_2^{(2)}\\\vdots&\vdots&&\vdots\\0& a_{n2}^{(2)} & \cdots&a_{nn}^{(2)}&b_n^{(2)}\end{matrix}\right]=\left[\begin{matrix}A^{(2)}&b^{(2)}\end{matrix}\right] ??????a11?a21??an1??a12?a22??an2??????a1n?a2n??ann??b1?b2?bn????????=???????a11(1)?a21(1)??an1(1)??a12(1)?a22(1)??an2(1)??????a1n(1)?a2n(1)??ann(1)??b1(1)?b2(1)?bn(1)????????????????a11(1)?0?0?a12(1)?a22(2)??an2(2)??????a1n(1)?a2n(2)??ann(2)??b1(1)?b2(2)?bn(2)?????????=[A(2)?b(2)?]
其中第i行加上第1行的 ? m i 1 -m_{i1} ?mi1?
m i 1 = a i 1 ( 1 ) a 11 ( 1 ) a i j ( 2 ) = a i j ( 1 ) ? m i 1 a 1 j ( 1 ) b i ( 2 ) = b i ( 1 ) ? m i 1 b 1 ( 1 ) m_{i1}=\frac{a_{i1}^{(1)}}{a_{11}^{(1)}}\\a_{ij}^{(2)}=a_{ij}^{(1)}-m_{i1}a_{1j}^{(1)}\\b_{i}^{(2)}=b_{i}^{(1)}-m_{i1}b_1^{(1)} mi1?=a11(1)?ai1(1)??aij(2)?=aij(1)??mi1?a1j(1)?bi(2)?=bi(1)??mi1?b1(1)?
A ( 2 ) x = b ( 2 ) A^{(2)}x=b^{(2)} A(2)x=b(2) 再进行消元可得
[ A ( 3 ) b ( 3 ) ] = [ a 11 ( 1 ) a 12 ( 1 ) a 13 ( 1 ) ? a 1 n ( 1 ) b 1 ( 1 ) 0 a 22 ( 2 ) a 23 ( 2 ) ? a 2 n ( 2 ) b 2 ( 2 ) 0 0 a 33 ( 3 ) ? a 3 n ( 3 ) b 3 ( 3 ) ? ? ? ? ? 0 0 a n 3 ( 3 ) ? a n n ( 3 ) b n ( 3 ) ] \left[\begin{matrix}A^{(3)}&b^{(3)}\end{matrix}\right]=\left[\begin{matrix}a_{11}^{(1)}& a_{12} ^{(1)}& a_{13} ^{(1)}&\cdots&a_{1n}^{(1)}&b_1^{(1)}\\0& a_{22}^{(2)} &a_{23} ^{(2)}& \cdots&a_{2n}^{(2)}&b_2^{(2)}\\0&0&a_{33}^{(3)}&\cdots&a_{3n}^{(3)}&b_3^{(3)}\\\vdots&\vdots&\vdots&&\vdots&\vdots\\0&0&a_{n3}^{(3)}&\cdots&a_{nn}^{(3)}&b_n^{(3)}\end{matrix}\right] [A(3)?b(3)?]=?????????a11(1)?00?0?a12(1)?a22(2)?0?0?a13(1)?a23(2)?a33(3)??an3(3)???????a1n(1)?a2n(2)?a3n(3)??ann(3)??b1(1)?b2(2)?b3(3)??bn(3)???????????
其中第i行加上第2行的 ? m i 2 -m_{i2} ?mi2?
m i 2 = a i 2 ( 2 ) a 22 ( 2 ) a i j ( 3 ) = a i j ( 2 ) ? m i 2 a 2 j ( 2 ) b i ( 3 ) = b i ( 2 ) ? m i 2 b 2 ( 2 ) m_{i2}=\frac{a_{i2}^{(2)}}{a_{22}^{(2)}}\\a_{ij}^{(3)}=a_{ij}^{(2)}-m_{i2}a_{2j}^{(2)}\\b_{i}^{(3)}=b_{i}^{(2)}-m_{i2}b_2^{(2)} mi2?=a22(2)?ai2(2)??aij(3)?=aij(2)??mi2?a2j(2)?bi(3)?=bi(2)??mi2?b2(2)?
重复上述过程,第k次消元时:
m i k = a i k ( k ) a k k ( k ) a i j ( k + 1 ) = a i j ( k ) ? m i k a k j ( k ) b i ( k + 1 ) = b i ( k ) ? m i k b k ( k ) m_{ik}=\frac{a_{ik}^{(k)}}{a_{kk}^{(k)}}\\a_{ij}^{(k+1)}=a_{ij}^{(k)}-m_{ik}a_{kj}^{(k)}\\b_{i}^{(k+1)}=b_{i}^{(k)}-m_{ik}b_k^{(k)} mik?=akk(k)?aik(k)??aij(k+1)?=aij(k)??mik?akj(k)?bi(k+1)?=bi(k)??mik?bk(k)?
得到与 A x = b Ax=b Ax=b 同解的方程组: A ( k + 1 ) x = b ( k + 1 ) , k = 1 , 2 , ? , n ? 1 A^{(k+1)}x=b^{(k+1)},k=1,2,\cdots,n-1 A(k+1)x=b(k+1),k=1,2,?,n?1

保证高斯消元法顺利进行的条件:各次主元素 a i i ( i ) ≠ 0 a_{ii}^{(i)}\neq0 aii(i)???=0,主元 a i i ( i ) ≠ 0 a_{ii}^{(i)}\neq0 aii(i)???=0 的充要条件是主子矩阵 A i ≠ 0 A_i\neq0 Ai???=0 非奇异。

定理1:设 A = [ a i j ( k ) ] ∈ R n × n , b = ( b 1 ( 1 ) , b 2 ( 1 ) , ? , b n ( 1 ) ) ∈ R A=[a_{ij}^{(k)}]\in R^{n\times n},b=(b_1^{(1)},b_2^{(1)},\cdots,b_n^{(1)})\in R A=[aij(k)?]Rn×n,b=(b1(1)?,b2(1)?,?,bn(1)?)R。若约化主元 a k k ( k ) ≠ 0 a_{kk}^{(k)}\neq0 akk(k)???=0,则可通过高斯消元法将方程组 A x = b Ax=b Ax=b 约化求解,计算公式如下:

(1)消元计算
m i k = a i k ( k ) a k k ( k ) a i j ( k + 1 ) = a i j ( k ) ? m i k a k j ( k ) b i ( k + 1 ) = b i ( k ) ? m i k b k ( k ) m_{ik}=\frac{a_{ik}^{(k)}}{a_{kk}^{(k)}}\\a_{ij}^{(k+1)}=a_{ij}^{(k)}-m_{ik}a_{kj}^{(k)}\\b_{i}^{(k+1)}=b_{i}^{(k)}-m_{ik}b_k^{(k)} mik?=akk(k)?aik(k)??aij(k+1)?=aij(k)??mik?akj(k)?bi(k+1)?=bi(k)??mik?bk(k)?
(2)回代求解
{ x n = b n ( n ) / a n n ( n ) x i = ( b i ( i ) ? ∑ j = i + 1 n a i j ( i ) x j ) / a i i ( i ) \begin{cases}x_n={b_n^{(n)}}/{a_{nn}^{(n)}}\\x_i=({b_i^{(i)}-\sum_{j=i+1}^na_{ij}^{(i)}x_j})/{a_{ii}^{(i)}}\end{cases} { xn?=bn(n)?/ann(n)?xi?=(bi(i)??j=i+1n?aij(i)?xj?)/aii(i)??

高斯消元法算法分析:

(1)算法的时间复杂度:共需乘除法运算的总数为
S = 1 3 n 3 + n 2 ? 1 3 n = O ( n 3 ) S=\frac{1}{3}n^3+n^2-\frac{1}{3}n=O(n^3) S=31?n3+n2?31?n=O(n3)
(2)算法的空间复杂度:符合原地工作的原则。

(3)数值计算的稳定性:当 ∣ a k k ( k ) ∣ = 0 |a_{kk}^{(k)}|=0 akk(k)?=0 ,运算会中断,即使不等于0,但当 ∣ a k k ( k ) ∣ |a_{kk}^{(k)}| akk(k)? 很小时,一方面会损失精度,另一方面还可能导致商太大使计算产生溢出。所以,高斯消元法对数值计算是不稳定的。

列主元消元法

列主元的思想是: 当变换到第k步时,从第k列 a k k ( k ) a_{kk}^{(k)} akk(k)? 及以下的各元素中选取绝对值最大者,然后通过行变换将它交换到主元素 a k k ( k ) a_{kk}^{(k)} akk(k)? 的位置(k,k)上。即选取 a i k k ( k ) a_{i_kk}^{(k)} aik?k(k)?,满足: ∣ a i k k ( k ) ∣ = m a x k ≤ i ≤ n ∣ a i k ( k ) ∣ |a_{i_kk}^{(k)}|=max_{k\leq i\leq n}|a_{ik}^{(k)}| aik?k(k)?=maxkin?aik(k)?,进行 k k k 行与 i k i_k ik? 行互换。

采用列主元的高斯消元法是不影响求解结果的。

但列主元不能保证当前的主元素是同一行(即第k行)中的绝对值最大者,其计算过程还是不稳定的,不适于求解大规模的线性方程组。

全选主元(简称全主元) :基本思想是当变换到第k步时,从系数矩阵右下角(n-k-1)阶矩阵中选取绝对值最大的元素,通过行、列变换将它交换到主元素 a k k ( k ) a_{kk}^{(k)} akk(k)? 的位置(k,k)上。

虽然行交换不影响最后求解的结果,但列交换将会导致最后结果(即解向量)中对应未知数的次序混乱。 必须在选主元过程中记住所进行的一切列交换,以便对最后结果进行恢复。

三角分解法

基本思想:将 A A A 分解成两个三角形矩阵 L 、 U L、U LU 的乘积 A = L U A=LU A=LU ,线性方程组 A x = b Ax=b Ax=b 归结为
{ L y = b U x = y \begin{cases}Ly=b\\Ux=y\end{cases} { Ly=bUx=y?
这两个方程可以通过前代法和回代法求解。

矩阵的三角分解

常用的矩阵三角分解形式: A = L U A=LU A=LU,称为矩阵 A A A L U LU LU 分解。若 L L L 是单位下三角阵, U U U 是上三角阵,称为杜利特尔分解;若 L L L 是下三角阵, U U U 是单位上三角阵,则称为克劳特分解

从高斯消元法过程可知,高斯消元法就是对系数矩阵 A A A 左乘n-1个初等单位下三角矩阵: A ( k + 1 ) = L k A ( k ) , k = 1 , 2 , ? , n ? 1 A^{(k+1)}=L_kA^{(k)},k=1,2,\cdots,n-1 A(k+1)=Lk?A(k),k=1,2,?,n?1 m i k = a i k ( k ) a k k ( k ) , a k k ( k ) ≠ 0 , i = k + 1 , k + 2 , ? , n m_{ik}=\frac{a_{ik}^{(k)}}{a_{kk}^{(k)}},a_{kk}^{(k)}\neq 0,i=k+1,k+2,\cdots,n mik?=akk(k)?aik(k)??,akk(k)???=0,i=k+1,k+2,?,n
L k = [ 1 ? 1 ? m k + 1 , k 1 ? ? ? m n k 1 ] k = 1 , 2 , ? , n ? 1 L_k=\left[\begin{matrix}1&&&&&\\&\ddots\\&&1\\&&-m_{k+1,k}&1\\&&\vdots&&\ddots\\&&-m_{nk}&&&1\\\end{matrix}\right]\ \ \ \ \ k=1,2,\cdots,n-1 Lk?=??????????1???1?mk+1,k???mnk??1???1???????????     k=1,2,?,n?1
得:
A ( n ) = L n ? 1 L n ? 2 ? L 1 A b ( n ) = L n ? 1 L n ? 2 ? L 1 b A = ( L 1 ? 1 L 2 ? 1 ? L n ? 1 ? 1 ) A ( n ) = L U A^{(n)}=L_{n-1}L_{n-2}\cdots L_1A\\b^{(n)}=L_{n-1}L_{n-2}\cdots L_1b\\A=(L_1^{-1}L_2^{-1}\cdots L_{n-1}^{-1})A^{(n)}=LU A(n)=Ln?1?Ln?2??L1?Ab(n)=Ln?1?Ln?2??L1?bA=(L1?1?L2?1??Ln?1?1?)A(n)=LU

其中
{ L = L 1 ? 1 L 2 ? 1 ? L n ? 1 ? 1 U = A ( n ) L k ? 1 = [ 1 ? 1 m k + 1 , k 1 ? ? m n k 1 ] L = [ 1 m 21 1 m 31 m 32 ? ? ? ? 1 m n 1 m n 2 m n , n ? 1 1 ] U = A ( n ) = [ a 11 ( 1 ) a 12 ( 1 ) ? a 1 n ( 1 ) 0 a 22 ( 2 ) ? a 2 n ( 2 ) ? ? ? 0 0 ? a n n ( n ) ] \begin{cases}L=L_1^{-1}L_2^{-1}\cdots L_{n-1}^{-1}\\U=A^{(n)}\end{cases}\\L_k^{-1}=\left[\begin{matrix}1&&&&&\\&\ddots\\&&1\\&&m_{k+1,k}&1\\&&\vdots&&\ddots\\&&m_{nk}&&&1\\\end{matrix}\right]\\L=\left[\begin{matrix}1&&&&&\\m_{21}&1&&&\\m_{31}&m_{32}&\ddots&&\\\vdots&\vdots&\ddots&1&&\\m_{n1}&m_{n2}&&m_{n,n-1}&1\end{matrix}\right]\\U=A^{(n)}=\left[\begin{matrix}a_{11}^{(1)}& a_{12} ^{(1)}& \cdots&a_{1n}^{(1)}\\0& a_{22}^{(2)}& \cdots&a_{2n}^{(2)}\\\vdots&\vdots&&\vdots\\0&0&\cdots&a_{nn}^{(n)}\end{matrix}\right] { L=L1?1?L2?1??Ln?1?1?U=A(n)?Lk?1?=??????????1???1mk+1,k??mnk??1???1???????????L=????????1m21?m31??mn1??1m32??mn2?????1mn,n?1??1??????????U=A(n)=???????a11(1)?0?0?a12(1)?a22(2)??0?????a1n(1)?a2n(2)??ann(n)?????????
上述的LU分解,被称为杜利特尔(Doolittle)分解

定理2(矩阵三角分解基本定理):设 A ∈ R n × n A\in R^{n\times n} ARn×n,若 A A A 的顺序主子式 d e t ( A k ) ≠ 0 det(A_k)\neq0 det(Ak?)??=0,则存在唯一的杜利特尔分解: A = L U A=LU A=LU,其中 L L L 为单位下三角形矩阵, U U U 为非奇异的上三角形矩阵。

证明:由定理1和:
d e t ( A k ) = ∣ a 11 a 12 ? a 1 k a 21 a 22 ? a 2 k ? ? ? a k 1 a k 2 ? a k k ∣ = a 11 ( 1 ) a 22 ( 2 ) ? a k k ( k ) , a k k ( k ) ≠ 0 det(A_k)=\left|\begin{matrix}a_{11}& a_{12} & \cdots&a_{1k}\\a_{21}& a_{22} & \cdots&a_{2k}\\\vdots&\vdots&&\vdots\\a_{k1}& a_{k2} & \cdots&a_{kk}\end{matrix}\right|=a_{11}^{(1)}a_{22}^{(2)}\cdots a_{kk}^{(k)},a_{kk}^{(k)}\neq 0 det(Ak?)=?a11?a21??ak1??a12?a22??ak2??????a1k?a2k??akk???=a11(1)?a22(2)??akk(k)?akk(k)???=0
可知杜利特尔分解的存在性。

唯一性: A A A 存在两个杜利特尔分解: A = L 1 U 1 , A = L 2 U 2 A=L_1U_1,A=L_2U_2 A=L1?U1?,A=L2?U2?,则 L 1 U 1 = L 2 U 2 , L 2 ? 1 L 1 = U 2 U 1 ? 1 L_1U_1=L_2U_2,L_2^{-1}L_1=U_2U_1^{-1} L1?U1?=L2?U2?,L2?1?L1?=U2?U1?1?,由于 L 2 ? 1 L 1 L_2^{-1}L_1 L2?1?L1? 是单位上三角形矩阵,可知
L 2 ? 1 L 1 = U 2 U 1 ? 1 = I L_2^{-1}L_1=U_2U_1^{-1}=I L2?1?L1?=U2?U1?1?=I
所以, L 1 = L 2 , U 1 = U 2 L_1=L_2,U_1=U_2 L1?=L2?,U1?=U2?,得唯一性。

(矩阵形式)杜利特尔分解法

设实矩阵 A A A 的各阶主子式 d e t ( A j ) ≠ 0 det(A_j)\neq0 det(Aj?)??=0,则由定理2知,存在唯一的杜利特尔分解: A = L U A=LU A=LU

其中
L = [ 1 l 21 1 l 31 l 32 1 ? ? ? ? l n 1 l n 2 ? l n , n ? 1 1 ] , U = [ u 11 u 12 u 13 ? u 1 n u 22 u 23 ? u 2 n u 33 ? u 3 n ? ? u n n ] L=\left[\begin{matrix}1&&&&\\l_{21}&1&&&\\l_{31}&l_{32}&1&&\\\vdots&\vdots&\ddots&\ddots&\\l_{n1}&l_{n2}&\cdots&l_{n,n-1}&1\end{matrix}\right]\ \ ,U=\left[\begin{matrix}u_{11}&u_{12}&u_{13}&\cdots&u_{1n}\\&u_{22}&u_{23}&\cdots&u_{2n}\\&&u_{33}&\cdots&u_{3n}\\&&&\ddots&\vdots\\&&&&u_{nn}\end{matrix}\right] L=????????1l21?l31??ln1??1l32??ln2??1????ln,n?1??1?????????  ,U=????????u11??u12?u22??u13?u23?u33???????u1n?u2n?u3n??unn??????????
由矩阵相等的条件可得:

(1)由 a 1 i = u 1 i a_{1i}=u_{1i} a1i?=u1i?,得: u 1 i = a 1 i ( i = 1 , 2 , ? , n ) u_{1i}=a_{1i}\ (i=1,2,\cdots,n) u1i?=a1i? (i=1,2,?,n)。由 a i 1 = l i 1 u 11 a_{i1}=l_{i1}u_{11} ai1?=li1?u11?,得: l i 1 = a i 1 / u 11 ( i = 2 , 3 , ? , n ) l_{i1}=a_{i1}/u_{11}\ (i=2,3,\cdots,n) li1?=ai1?/u11? (i=2,3,?,n)

(2)由 a 2 i = l 21 u 1 i + u 2 i a_{2i}=l_{21}u_{1i}+u_{2i} a2i?=l21?u1i?+u2i?,得: u 2 i = a 2 i ? l 21 u 1 i ( 1 = 2 , 3 , ? , n ) u_{2i}=a_{2i}-l_{21}u_{1i}(1=2,3,\cdots,n) u2i?=a2i??l21?u1i?(1=2,3,?,n)。由 a i 2 = l i 1 u 12 + l i 2 u 22 a_{i2}=l_{i1}u_{12}+l_{i2}u_{22} ai2?=li1?u12?+li2?u22?,得: l i 2 = ( a i 2 ? l i 1 u 12 ) / u 22 ( i = 3 , 4 , ? , n ) l_{i2}=(a_{i2}-l_{i1}u_{12})/u_{22}(i=3,4,\cdots,n) li2?=(ai2??li1?u12?)/u22?(i=3,4,?,n)

(3)在求出 U U U 的前k-1行与 L L L 的前k-1列后, U U U 的k行、 L L L 的k列元为:
u k i = a k i ? ∑ j = 1 k ? 1 l k j u j i ( i = k , k + 1 , ? , n ) l i k = ( a i k ? ∑ j = 1 k ? 1 l i j u j k ) / u k k ( i = k + 1 , k + 2 , ? , n ) u_{ki}=a_{ki}-\sum_{j=1}^{k-1}l_{kj}u_{ji}(i=k,k+1,\cdots,n)\\l_{ik}=(a_{ik}-\sum_{j=1}^{k-1}l_{ij}u_{jk})/u_{kk}(i=k+1,k+2,\cdots,n) uki?=aki??j=1k?1?lkj?uji?(i=k,k+1,?,n)lik?=(aik??j=1k?1?lij?ujk?)/ukk?(i=k+1,k+2,?,n)
杜利特尔分解的紧凑格式:定义Q:
Q = L + U ? I = [ u 11 u 12 ? u 1 k ? u 1 n l 21 u 22 ? u 2 k ? u 2 n ? ? ? ? l k 1 l k 2 ? u k k ? u k n ? ? ? ? l n 1 l n 2 ? l n k ? n n n ] Q=L+U-I=\left[\begin{matrix}u_{11}&u_{12}&\cdots&u_{1k}&\cdots&u_{1n}\\l_{21}&u_{22}&\cdots&u_{2k}&\cdots&u_{2n}\\\vdots&\vdots&&\vdots&&\vdots\\l_{k1}&l_{k2}&\cdots&u_{kk}&\cdots&u_{kn}\\\vdots&\vdots&&\vdots&&\vdots\\l_{n1}&l_{n2}&\cdots&l_{nk}&\cdots&n_{nn}\end{matrix}\right] Q=L+U?I=???????????u11?l21??lk1??ln1??u12?u22??lk2??ln2???????u1k?u2k??ukk??lnk???????u1n?u2n??ukn??nnn?????????????
只要求出Q矩阵,便可得到矩阵 A A A 的三角分解 L U LU LU

步骤(重要): a i k / a k k → a i k , i = k + 1 , k + 2 , ? , n , a i j ? a i k a k j → a i j , i = k + 1 , ? , n , j = k + 1 , ? , n a_{ik}/a_{kk}\rightarrow a_{ik},i=k+1,k+2,\cdots,n,a_{ij}-a_{ik}a_{kj}\rightarrow a_{ij},i=k+1,\cdots,n,j=k+1,\cdots,n aik?/akk?aik?,i=k+1,k+2,?,n,aij??aik?akj?aij?,i=k+1,?,n,j=k+1,?,n

之后用: L Y = b , U X = Y LY=b,UX=Y LY=b,UX=Y,解方程组。

解三对角线方程组的追赶法

A = [ a 11 a 12 a 21 a 22 a 23 0 a 32 a 33 a 34 ? ? ? 0 a n ? 1 , n ? 2 a n ? 1 , n ? 1 a n ? 1 , n a n , n ? 1 a n n ] A=\left[\begin{matrix}a_{11}&a_{12}&&&&\\a_{21}&a_{22}&a_{23}&&0&&\\&a_{32}&a_{33}&a_{34}&&\\&&\ddots&\ddots&\ddots&&\\&&0&a_{n-1,n-2}&a_{n-1,n-1}&a_{n-1,n}\\&&&&a_{n,n-1}&a_{nn}\end{matrix}\right] A=?????????a11?a21??a12?a22?a32??a23?a33??0?a34??an?1,n?2??0?an?1,n?1?an,n?1??an?1,n?ann????????????

称线性方程组 A x = b Ax=b Ax=b三对角线方程组。

A A A 满足:
{ ∣ a 11 ∣ > ∣ a 12 ∣ > 0 ∣ a i i ∣ ≥ ∣ a i , i ? 1 ∣ + ∣ a i , i + 1 ∣ > 0 , i = 2 , 3 , ? , n ? 1 ∣ a n n ∣ > ∣ a n , n ? 1 ∣ > 0 \begin{cases}|a_{11}|>|a_{12}|>0\\|a_{ii}|\geq|a_{i,i-1}|+|a_{i,i+1}|>0,i=2,3,\cdots,n-1\\|a_{nn}|>|a_{n,n-1}|>0\end{cases} ??????a11?>a12?>0aii?ai,i?1?+ai,i+1?>0,i=2,3,?,n?1ann?>an,n?1?>0?

则称 A x = b Ax=b Ax=b对角占优的三对角线方程组。

A x = b Ax=b Ax=b 进行LU分解: A = L U A=LU A=LU
L = [ 1 l 21 1 0 l 32 1 ? ? ? ? 0 ? 0 l n , n ? 1 1 ] , U = [ u 11 a 12 0 ? 0 u 22 a 23 ? 0 ? ? u n ? 1 , n ? 1 a n ? 1 , n u n n ] L=\left[\begin{matrix}1&&&&\\l_{21}&1&&&\\0&l_{32}&1&&\\\vdots&\ddots&\ddots&\ddots&\\0&\cdots&0&l_{n,n-1}&1\end{matrix}\right]\ \ ,U=\left[\begin{matrix}u_{11}&a_{12}&0&\cdots&0\\&u_{22}&a_{23}&\cdots&0\\&&\ddots&\ddots\\&&&u_{n-1,n-1}&a_{n-1,n}\\&&&&u_{nn}\end{matrix}\right] L=????????1l21?0?0?1l32????1?0??ln,n?1??1?????????  ,U=???????u11??a12?u22??0a23??????un?1,n?1??00an?1,n?unn?????????
由矩阵乘法和矩阵相等得
{ u 11 = a 11 l i , i ? 1 = a i , i ? 1 / u i ? 1 , i ? 1 u i i = a i i ? l i , i ? 1 a i ? 1 , i ( i = 2 , 3 , ? , n ) \begin{cases}u_{11}=a_{11}\\l_{i,i-1}=a_{i,i-1}/u_{i-1,i-1}\\u_{ii}=a_{ii}-l_{i,i-1}a_{i-1,i}\end{cases}\ \ \ \ \ \ (i=2,3,\cdots,n) ??????u11?=a11?li,i?1?=ai,i?1?/ui?1,i?1?uii?=aii??li,i?1?ai?1,i??      (i=2,3,?,n)
得到LU分解之后,就可通过方程组
L y = b U x = y Ly=b\\Ux=y Ly=bUx=y
得到线性方程组的解
{ y 1 = b 1 y i = b i ? l i , i ? 1 y i ? 1 i = 2 , 3 , ? , n { x n = y n / u n n x i = ( y i ? a i , i + 1 ? x i + 1 ) / u i i i = n ? 1 , n ? 2 , ? , 1 \begin{cases}y_1=b_1\\y_i=b_i-l_{i,i-1}y_{i-1}\\i=2,3,\cdots,n\end{cases}\ \ \ \ \ \begin{cases}x_n=y_n/u_{nn}\\x_i=({y_i-a_{i,i+1}*x_{i+1}})/{u_{ii}}\ \ \ \ \ i=n-1,n-2,\cdots,1\end{cases} ??????y1?=b1?yi?=bi??li,i?1?yi?1?i=2,3,?,n?     { xn?=yn?/unn?xi?=(yi??ai,i+1??xi+1?)/uii?     i=n?1,n?2,?,1?
上述方法通常称为 “追赶法”。“追”的过程要做4(n-1)次乘除法,“赶”的过程需要做n次乘除法,总计算量:5n-4。

追赶法本质上是没有选主元的高斯消元法,对一般的三对角方程组来说“追赶法”的计算过程是不稳定的。但当三对角方程组中的系数矩阵满足严格对角占优时,“追赶法”不会出现中间结果数量级的巨大增长和舍入误差的严重积累。

解对称正定矩阵方程组的平方根法

平方根法又称楚列斯基(Cholesky)分解法

定理3:设 A ∈ R n × n A\in R^{n\times n} ARn×n 是对称正定矩阵,则存在唯一分解(称为楚列斯基分解):
A = L ~ L ~ T A=\tilde{L}\tilde{L}^T A=L~L~T
其中 L ~ \tilde{L} L~ 是对角元为正的下三角阵:
L ~ = [ l 11 l 21 l 22 ? ? ? l n 1 l n 2 ? l n n ] \tilde{L}=\left[\begin{matrix}l_{11}&&&\\l_{21}&l_{22}&&\\\vdots&\vdots&\ddots&\\l_{n1}&l_{n2}&\cdots&l_{nn}\end{matrix}\right] L~=??????l11?l21??ln1??l22??ln2?????lnn????????

待定系数法确定 l i j : a i j = ∑ p = 1 j l i p l j p , 1 ≤ j ≤ i ≤ n l_{ij}:a_{ij}=\sum_{p=1}^jl_{ip}l_{jp},1\leq j\leq i\leq n lij?:aij?=p=1j?lip?ljp?,1jin

a 11 = l 11 2 a_{11}=l_{11}^2 a11?=l112?,得 l 11 = a 11 l_{11}=\sqrt{a_{11}} l11?=a11? ?

a i 1 = l 11 l i 1 a_{i1}=l_{11}l_{i1} ai1?=l11?li1?,得 l i 1 = a i 1 / l 11 , i = 1 , 2 , ? , n l_{i1}=a_{i1}/l_{11},i=1,2,\cdots,n li1?=ai1?/l11?,i=1,2,?,n

假设已算出 L L L 的前j-1列元素,由 a j j = ∑ k = 1 j l j k 2 a_{jj}=\sum_{k=1}^jl_{jk}^2 ajj?=k=1j?ljk2?

l j j = ( a j j ? ∑ k = 1 j ? 1 l j k 2 ) 1 / 2 l_{jj}=(a_{jj}-\sum_{k=1}^{j-1}l_{jk}^2)^{1/2} ljj?=(ajj??k=1j?1?ljk2?)1/2

再由 a i j = ∑ k = 1 j ? 1 l i k l j k + l i j l j j a_{ij}=\sum_{k=1}^{j-1}l_{ik}l_{jk}+l_{ij}l_{jj} aij?=k=1j?1?lik?ljk?+lij?ljj?

l i j = ( a i j ? ∑ k = 1 j ? 1 l i k l j k ) / l j j , i = j + 1 , ? , n ; j ≠ n l_{ij}=(a_{ij}-\sum_{k=1}^{j-1}l_{ik}l_{jk})/l_{jj},i=j+1,\cdots,n;j\neq n lij?=(aij??k=1j?1?lik?ljk?)/ljj?,i=j+1,?,n;j??=n

可求出所有的 l i j l_{ij} lij?

向量和矩阵的范数

向量的范数

范数是对函数、向量和矩阵定义的一种度量形式,任何对象的范数值都是一个非负整数向量范数是度量向量长度的一种定义形式。

定义1:对任一向量 x ∈ C n x\in C^n xCn,称实数 N ( x ) = ∣ ∣ x ∣ ∣ N(x)=||x|| N(x)=x 为向量 x x x范数。||·||满足下列关系式:

  1. 正定性(非负性): ? x ∈ C n , ∣ ∣ x ∣ ∣ ≥ 0 , 且 ∣ ∣ x ∣ ∣ = 0 ? ? x = 0 \forall x\in C^n,||x||\geq0,且||x||=0\Leftarrow\Rightarrow x=0 ?xCn,x0,x=0??x=0
  2. 齐次性: ? x ∈ C n 和 α ∈ C , 有 ∣ ∣ α x ∣ ∣ = ∣ α ∣ ? ∣ ∣ x ∣ ∣ \forall x\in C^n和\alpha\in C,有||\alpha x||=|\alpha|·||x|| ?xCnαC,αx=α?x
  3. 三角不等式: ? x , y ∈ C n , ∣ ∣ x + y ∣ ∣ ≤ ∣ ∣ x ∣ ∣ + ∣ ∣ y ∣ ∣ \forall x,y\in C^n,||x+y||\leq||x||+||y|| ?x,yCn,x+yx+y

几个常用的向量范数:

  1. ∣ ∣ x ∣ ∣ 1 = ∑ j = 1 n ∣ x j ∣ ||x||_1=\sum_{j=1}^n|x_j| x1?=j=1n?xj?
  2. ∣ ∣ x ∣ ∣ 2 = ( ∑ j = 1 n ∣ x j ∣ 2 ) 1 2 ||x||_2=(\sum_{j=1}^n|x_j|^2)^{\frac{1}{2}} x2?=(j=1n?xj?2)21?
  3. ∣ ∣ x ∣ ∣ ∞ = m a x 1 ≤ j ≤ n ∣ x j ∣ ||x||_\infin=max_{1\leq j\leq n}|x_j| x?=max1jn?xj?

分别称为向量 x x x1范数、2范数和 ∞ \infin 范数,更一般的,称: ∣ ∣ x ∣ ∣ p = ( ∑ j = 1 n ∣ x j ∣ p ) 1 p ||x||_p=(\sum_{j=1}^n|x_j|^p)^{\frac{1}{p}} xp?=(j=1n?xj?p)p1?p范数

矩阵的范数

定义2:对任一矩阵 A ∈ C n × n A\in C^{n\times n} ACn×n,称实数 N ( A ) = ∣ ∣ A ∣ ∣ N(A)=||A|| N(A)=A 为矩阵 A A A范数。||·||满足下列关系式:

  1. 正定性(非负性): ? A ∈ C n × n , ∣ ∣ A ∣ ∣ ≥ 0 , 且 ∣ ∣ A ∣ ∣ = 0 ? ? A = 0 \forall A\in C^{n\times n},||A||\geq0,且||A||=0\Leftarrow\Rightarrow A=0 ?ACn×n,A0,A=0??A=0
  2. 齐次性: ? A ∈ C n × n 和 α ∈ C , 有 ∣ ∣ α A ∣ ∣ = ∣ α ∣ ? ∣ ∣ A ∣ ∣ \forall A\in C^{n\times n}和\alpha\in C,有||\alpha A||=|\alpha|·||A|| ?ACn×nαC,αA=α?A
  3. 三角不等式: ? A , B ∈ C n × n , ∣ ∣ A + B ∣ ∣ ≤ ∣ ∣ A ∣ ∣ + ∣ ∣ B ∣ ∣ \forall A,B\in C^{n\times n},||A+ B||\leq||A||+||B|| ?A,BCn×n,A+BA+B
  4. 矩阵乘法不等式: ? A , B ∈ C n × n , ∣ ∣ A B ∣ ∣ ≤ ∣ ∣ A ∣ ∣ ? ∣ ∣ B ∣ ∣ \forall A,B\in C^{n\times n},||A B||\leq||A||·||B|| ?A,BCn×n,ABA?B

矩阵、向量乘法的相容性: ∣ ∣ A x ∣ ∣ ≤ ∣ ∣ A ∣ ∣ ? ∣ ∣ x ∣ ∣ ||Ax||\leq ||A||·||x|| AxA?x

∣ ∣ A ∣ ∣ r = m a x x ≠ 0 ∣ ∣ A x ∣ ∣ r ∣ ∣ x ∣ ∣ r ||A||_r=max_{x\neq0}\frac{||Ax||_r}{||x||_r} Ar?=maxx??=0?xr?Axr??从属于向量的范数,或称为由向量范数导出的范数,满足矩阵、向量乘法的相容性: ∣ ∣ A x ∣ ∣ r ≤ ∣ ∣ A ∣ ∣ r ? ∣ ∣ x ∣ ∣ r ||Ax||_r\leq ||A||_r·||x||_r Axr?Ar??xr?

几个常用的矩阵范数:

  1. ∣ ∣ A ∣ ∣ 1 = m a x 1 ≤ j ≤ n ∑ i = 1 n ∣ a i j ∣ ||A||_1=max_{1\leq j\leq n}\sum_{i=1}^n|a_{ij}| A1?=max1jn?i=1n?aij?
  2. ∣ ∣ A ∣ ∣ 2 = [ λ m a x ( A T A ) ] 1 / 2 ||A||_2=[\lambda_{max}(A^TA)]^{1/2} A2?=[λmax?(ATA)]1/2 λ m a x ( ? ) \lambda_{max}(·) λmax?(?) 是矩阵的最大特征值
  3. ∣ ∣ A ∣ ∣ ∞ = m a x 1 ≤ i ≤ n ∑ j = 1 n ∣ a i j ∣ ||A||_{\infin}=max_{1\leq i\leq n}\sum_{j=1}^n|a_{ij}| A?=max1in?j=1n?aij?
  4. ∣ ∣ A ∣ ∣ F = ( ∑ i = 1 n ∑ j = 1 n ∣ a i j ∣ 2 ) 1 / 2 ||A||_F=(\sum_{i=1}^n\sum_{j=1}^n|a_{ij}|^2)^{1/2} AF?=(i=1n?j=1n?aij?2)1/2

分别称为矩阵A的1范数(列模)、2范数(谱模)、 ∞ \infin 范数(行模)和F范数。

迭代法

求解线性方程组: A x = b Ax=b Ax=b,其中A为非奇异矩阵,b为n元非零向量,将其等价地转化为方程组 x = B x + f x=Bx+f x=Bx+f

选取初始向量 x ( 0 ) = ( x 1 ( 0 ) , x 2 ( 0 ) , ? , x n ( 0 ) ) T x^{(0)}=(x_1^{(0)},x_2^{(0)},\cdots,x_n^{(0)})^T x(0)=(x1(0)?,x2(0)?,?,xn(0)?)T,则可构造迭代法
x ( k + 1 ) = B x ( k ) + f x^{(k+1)}=Bx^{(k)}+f x(k+1)=Bx(k)+f
得到迭代向量序列 { x ( k ) } \{x^{(k)}\} { x(k)},其中 x ( k ) = ( x 1 ( k ) , x 2 ( k ) , ? , x n ( k ) ) T x^{(k)}=(x_1^{(k)},x_2^{(k)},\cdots,x_n^{(k)})^T x(k)=(x1(k)?,x2(k)?,?,xn(k)?)T。若 x ( k ) x^{(k)} x(k) 收敛于 x ? x^* x?,则: x ? = B x ? + f x^*=Bx^*+f x?=Bx?+f x ? x^* x?就是方程组的解,称B为迭代矩阵。若迭代序列收敛,则称迭代法收敛,否则发散。

雅可比迭代法

将A分解为:
A = D ? L ? U A=D-L-U A=D?L?U
其中: D = d i a g ( a 11 , a 22 , ? , a n n ) D=diag(a_{11},a_{22},\cdots,a_{nn}) D=diag(a11?,a22?,?,ann?)
L = [ 0 ? a 21 0 ? a 31 ? a 32 0 ? ? ? ? a n 1 ? a n 2 ? a n , n ? 1 0 ] U = [ 0 ? a 12 ? a 13 ? ? a 1 n 0 ? a 23 ? ? a 2 n ? ? ? 0 ? a n ? 1 , n 0 ] L=\left[\begin{matrix}0&&&&\\-a_{21}&0&&&\\-a_{31}&-a_{32}&0&&\\\vdots&\vdots&\ddots&\\-a_{n1}&-a_{n2}&\cdots&a_{n,n-1}&0\end{matrix}\right]\ \ \ U=\left[\begin{matrix}0&-a_{12}&-a_{13}&\cdots&-a_{1n}\\&0&-a_{23}&\cdots&-a_{2n}\\&&\ddots&\ddots&\vdots\\&&&0&-a_{n-1,n}\\&&&&0\end{matrix}\right] L=????????0?a21??a31???an1??0?a32???an2??0???an,n?1??0?????????   U=????????0??a12?0??a13??a23??????0??a1n??a2n???an?1,n?0?????????
A x = b → ( D ? L ? U ) x = b → D x = ( L + U ) x + b Ax=b\rightarrow(D-L-U)x=b\rightarrow Dx=(L+U)x+b Ax=b(D?L?U)x=bDx=(L+U)x+b,可得雅可比迭代公式:
x ( k + 1 ) = B J x ( k ) + f J , k = 0 , 1 , 2 , ? x^{(k+1)}=B_Jx^{(k)}+f_J,k=0,1,2,\cdots x(k+1)=BJ?x(k)+fJ?,k=0,1,2,?
其中雅可比迭代矩阵 B J = D ? 1 ( L + U ) , f J = D ? 1 b B_J=D^{-1}(L+U),f_J=D^{-1}b BJ?=D?1(L+U),fJ?=D?1b

雅可比迭代公式的分量形式:
x i ( k + 1 ) = 1 a i i ( b i ? ∑ j = 1 , j ≠ i n a i j x j ( k ) ) x_i^{(k+1)}=\frac{1}{a_{ii}}(b_i-\sum_{j=1,j\neq i}^na_{ij}x_j^{(k)}) xi(k+1)?=aii?1?(bi??j=1,j??=in?aij?xj(k)?)

高斯-赛德尔迭代法

( D ? L ) x = U x + b (D-L)x=Ux+b (D?L)x=Ux+b,可得高斯-赛德尔(Gauss-Seidel)迭代公式
x ( k + 1 ) = B G x ( k ) + f G , k = 0 , 1 , 2 , ? x^{(k+1)}=B_Gx^{(k)}+f_G,k=0,1,2,\cdots x(k+1)=BG?x(k)+fG?,k=0,1,2,?
其中高斯-赛德尔矩阵 B G = ( D ? L ) ? 1 U , f G = ( D ? L ) ? 1 b B_G=(D-L)^{-1}U,f_G=(D-L)^{-1}b BG?=(D?L)?1U,fG?=(D?L)?1b

高斯-赛德尔迭代公式的分量形式:
x i ( k + 1 ) = 1 a i i ( b i ? ∑ j = 1 i ? 1 a i j x j ( k + 1 ) ? ∑ j = i + 1 n a i j x j ( k ) ) x_i^{(k+1)}=\frac{1}{a_{ii}}(b_i-\sum_{j=1}^{i-1}a_{ij}x_j^{(k+1)}-\sum_{j=i+1}^na_{ij}x_j^{(k)}) xi(k+1)?=aii?1?(bi??j=1i?1?aij?xj(k+1)??j=i+1n?aij?xj(k)?)
J迭代法与G-S迭代法的收敛范围并不重合,只是部分相交。 也就是说,可能有J迭代法收敛而G-S迭代法发散的情形发生,G-S迭代法并不是总比J迭代法收敛。在都收敛的情况下,也不能保证G-S迭代法比J迭代法收敛快。

迭代收敛条件与误差估计

定义3:设矩阵 A ∈ C n × n A\in C^{n\times n} ACn×n 的特征值为 λ 1 , λ 2 , ? , λ n \lambda_1,\lambda_2,\cdots,\lambda_n λ1?,λ2?,?,λn?,称
ρ ( A ) = m a x 1 ≤ j ≤ n ∣ λ j ∣ \rho(A)=max_{1\leq j\leq n}|\lambda_j| ρ(A)=max1jn?λj?
A A A谱半径

定理4:矩阵 A A A 的谱半径不大于矩阵 A A A 的任一算子范数 ∣ ∣ A ∣ ∣ r ||A||_r Ar?

证明:若 λ \lambda λ 是矩阵 A A A 的特征值(即存在非零向量 x x x 使得: A x = λ x Ax=\lambda x Ax=λx),则
∣ λ ∣ ? ∣ ∣ x ∣ ∣ r = ∣ ∣ λ x ∣ ∣ r = ∣ ∣ A x ∣ ∣ r ≤ ∣ ∣ A ∣ ∣ r ? ∣ ∣ x ∣ ∣ r ∣ λ ∣ ≤ ∣ ∣ A ∣ ∣ r 所 以 , ρ ( A ) ≤ ∣ ∣ A ∣ ∣ r |\lambda|·||x||_r=||\lambda x||_r=||Ax||_r\leq ||A||_r·||x||_r\\|\lambda|\leq ||A||_r\\所以,\rho(A)\leq ||A||_r λ?xr?=λxr?=Axr?Ar??xr?λAr?ρ(A)Ar?

由于矩阵范数计算要比矩阵谱半径计算简单得多,所以常用矩阵范数来估计矩阵特征值的上界。

迭代公式收敛的充要条件

定理8:迭代公式 x ( k + 1 ) = B x ( k ) + f x^{(k+1)}=Bx^{(k)}+f x(k+1)=Bx(k)+f 对任何初始向量 x ( 0 ) x^{(0)} x(0) 都收敛的充要条件是 ρ ( B ) < 1 \rho(B)<1 ρ(B)<1;收敛时, ρ ( B ) \rho(B) ρ(B) 越小,则收敛速度越快。

证明: x ? x^* x? 为方程的解, x ? = B x ? + f x^*=Bx^*+f x?=Bx?+f,有 x ( k ) ? x ? = B ( x ( k ? 1 ) ? x ? ) = B k ( x ( 0 ) ? x ? ) , k = 1 , 2 , ? x^{(k)}-x^*=B(x^{(k-1)}-x^*)=B^k(x^{(0)}-x^*),k=1,2,\cdots x(k)?x?=B(x(k?1)?x?)=Bk(x(0)?x?),k=1,2,?。所以,迭代公式对任何初始向量 x ( 0 ) x^{(0)} x(0) 都收敛的充要条件是 B k → 0 , k → ∞ B^k\rightarrow0,k\rightarrow\infin Bk0,k,即 ρ ( B ) < 1 \rho(B)<1 ρ(B)<1

若存在矩阵范数 ∣ ∣ ? ∣ ∣ r ||·||_r ?r?使得 ∣ ∣ B ∣ ∣ r < 1 ||B||_r<1 Br?<1则由 ρ ( B ) ≤ ∣ ∣ B ∣ ∣ r \rho(B) ≤||B||_r ρ(B)Br?知,迭代法收敛。

迭代法收敛的充分条件

定理5:若迭代过程 x ( k + 1 ) = B x ( k ) + f x^{(k+1)}=Bx^{(k)}+f x(k+1)=Bx(k)+f 中迭代矩阵 B B B 满足 ∣ ∣ B ∣ ∣ r = q < 1 ||B||_r=q<1 Br?=q<1,则

  1. 对任意初始向量 x ( 0 ) x^{(0)} x(0),该迭代过程均收敛于方程 x = B x + f x=Bx+f x=Bx+f 的唯一解 x ? x^* x?
  2. ∣ ∣ x ? ? x ( k ) ∣ ∣ r ≤ 1 1 ? q ∣ ∣ x ( k + 1 ) ? x ( k ) ∣ ∣ r ||x^*-x^{(k)}||_r\leq\frac{1}{1-q}||x^{(k+1)}-x^{(k)}||_r x??x(k)r?1?q1?x(k+1)?x(k)r?
  3. ∣ ∣ x ? ? x ( k ) ∣ ∣ r ≤ q k 1 ? q ∣ ∣ x ( 1 ) ? x ( 0 ) ∣ ∣ r ||x^*-x^{(k)}||_r\leq\frac{q^k}{1-q}||x^{(1)}-x^{(0)}||_r x??x(k)r?1?qqk?x(1)?x(0)r?

证明:1.:由 ∣ λ ∣ ≤ ρ ( B ) ≤ ∣ ∣ B ∣ ∣ r = q < 1 |\lambda|\leq\rho(B)\leq||B||_r=q<1 λρ(B)Br?=q<1,得 d e t ( I ? B ) ≠ 0 det(I-B)\neq0 det(I?B)??=0,故方程 ( I ? B ) x = f (I-B)x=f (I?B)x=f 有唯一解 x ? x^* x?

x ? ? x ( k + 1 ) = ( B x ? + f ) ? ( B x ( k ) + f ) = B ( x ? ? x ( k ) ) x^*-x^{(k+1)}=(Bx^*+f)-(Bx^{(k)}+f)=B(x^*-x^{(k)}) x??x(k+1)=(Bx?+f)?(Bx(k)+f)=B(x??x(k)),得
∣ ∣ x ? ? x ( k + 1 ) ∣ ∣ r ≤ ∣ ∣ B ∣ ∣ r ∣ ∣ x ? ? x ( k ) ∣ ∣ r = q ∣ ∣ x ? ? x ( k ) ∣ ∣ r 0 ≤ ∣ ∣ x ? ? x ( k ) ∣ ∣ r ≤ q k ∣ ∣ x ? ? x ( 0 ) ∣ ∣ r 得 l i m k → ∞ ∣ ∣ x ? ? x ( k ) ∣ ∣ r = 0 从 而 , l i m k → ∞ x ( k ) = x ? ||x^*-x^{(k+1)}||_r\leq||B||_r||x^*-x^{(k)}||_r=q||x^*-x^{(k)}||_r\\0\leq||x^*-x^{(k)}||_r\leq q^k||x^*-x^{(0)}||_r\\得\ lim_{k\rightarrow\infin}||x^*-x^{(k)}||_r=0\\从而,lim_{k\rightarrow\infin}x^{(k)}=x^* x??x(k+1)r?Br?x??x(k)r?=qx??x(k)r?0x??x(k)r?qkx??x(0)r? limk?x??x(k)r?=0,limk?x(k)=x?
2.: ∣ ∣ x ( k + 1 ) ? x ( k ) ∣ ∣ r = ∣ ∣ ( x ? ? x ( k ) ) ? ( x ? ? x ( k + 1 ) ) ∣ ∣ r ≥ ∣ ∣ x ? ? x ( k ) ∣ ∣ r ? ∣ ∣ x ? ? x ( k + 1 ) ∣ ∣ r ≥ ∣ ∣ x ? ? x ( k ) ∣ ∣ r ? q ∣ ∣ x ? ? x ( k ) ∣ ∣ r = ( 1 ? q ) ∣ ∣ x ? ? x ( k ) ∣ ∣ r ||x^{(k+1)}-x^{(k)}||_r=||(x^*-x^{(k)})-(x^*-x^{(k+1)})||_r\geq||x^*-x^{(k)}||_r-||x^*-x^{(k+1)}||_r\geq||x^*-x^{(k)}||_r-q||x^*-x^{(k)}||_r=(1-q)||x^*-x^{(k)}||_r x(k+1)?x(k)r?=(x??x(k))?(x??x(k+1))r?x??x(k)r??x??x(k+1)r?x??x(k)r??qx??x(k)r?=(1?q)x??x(k)r?

即得:
∣ ∣ x ? ? x ( k ) ∣ ∣ r ≤ 1 1 ? q ∣ ∣ x ( k + 1 ) ? x ( k ) ∣ ∣ r ||x^*-x^{(k)}||_r\leq\frac{1}{1-q}||x^{(k+1)}-x^{(k)}||_r x??x(k)r?1?q1?x(k+1)?x(k)r?
3.: ∣ ∣ x ( k + 1 ) ? x ( k ) ∣ ∣ r = ∣ ∣ B x ( k ) + f ? B x ( k ? 1 ) ? f ∣ ∣ r = ∣ ∣ B x ( k ) ? B x ( k ? 1 ) ∣ ∣ r = q ∣ ∣ x ( k ) ? x ( k ? 1 ) ∣ ∣ r = q k ∣ ∣ x ( 1 ) ? x ( 0 ) ∣ ∣ r ||x^{(k+1)}-x^{(k)}||_r=||Bx^{(k)}+f-Bx^{(k-1)}-f||_r=||Bx^{(k)}-Bx^{(k-1)}||_r=q||x^{(k)}-x^{(k-1)}||_r=q^k||x^{(1)}-x^{(0)}||_r x(k+1)?x(k)r?=Bx(k)+f?Bx(k?1)?fr?=Bx(k)?Bx(k?1)r?=qx(k)?x(k?1)r?=qkx(1)?x(0)r?

即得:
∣ ∣ x ? ? x ( k ) ∣ ∣ r ≤ q k 1 ? q ∣ ∣ x ( 1 ) ? x ( 0 ) ∣ ∣ r ||x^*-x^{(k)}||_r\leq\frac{q^k}{1-q}||x^{(1)}-x^{(0)}||_r x??x(k)r?1?qqk?x(1)?x(0)r?

雅可比迭代法与高斯-赛德尔迭代法收敛的充分条件:

定理6:若 A x = b Ax=b Ax=b 的系数矩阵 A = ( a i j ) n × n A=(a_{ij})_{n\times n} A=(aij?)n×n? 按行或列严格对角占优,即
∣ a j j ∣ > ∑ j = 1 , j ≠ i n ∣ a i j ∣ , i = 1 , 2 , ? , n 或 : ∣ a j j ∣ > ∑ i = 1 , i ≠ j n ∣ a i j ∣ , j = 1 , 2 , ? , n |a_{jj}|>\sum_{j=1,j\neq i}^n|a_{ij}|,i=1,2,\cdots,n\\或:|a_{jj}|>\sum_{i=1,i\neq j}^n|a_{ij}|,j=1,2,\cdots,n ajj?>j=1,j??=in?aij?,i=1,2,?,n:ajj?>i=1,i??=jn?aij?,j=1,2,?,n
则方程组有唯一解,且对于任意初始向量,雅可比迭代法和高斯-赛德尔迭代法都收敛。

定理7:若 A x = b Ax=b Ax=b 的系数矩阵 A = ( a i j ) n × n A=(a_{ij})_{n\times n} A=(aij?)n×n? 为对称正定矩阵,则对任意初始向量,高斯-赛德尔迭代法收敛。

逐次超松弛(SOR)迭代法

逐次超松驰(SOR)迭代法实际上是对高斯-赛德尔迭代法加权平均,即:
x i ( k + 1 ) = ( 1 ? ω ) x i ( k ) + ω x ~ i ( k + 1 ) , i = 1 , 2 , ? , n 其 中 x ~ i ( k + 1 ) 为 高 斯 ? 赛 德 尔 的 迭 代 解 : x ~ i ( k + 1 ) = 1 a i i ( b i ? ∑ j = 1 i ? 1 a i j x j ( k + 1 ) ? ∑ j = i + 1 n a i j x j ( k ) ) x_i^{(k+1)}=(1-\omega)x_i^{(k)}+\omega\tilde{x}_i^{(k+1)},i=1,2,\cdots,n\\其中\tilde{x}_i^{(k+1)}为高斯-赛德尔的迭代解:\tilde{x}_i^{(k+1)}=\frac{1}{a_{ii}}(b_i-\sum_{j=1}^{i-1}a_{ij}x_j^{(k+1)}-\sum_{j=i+1}^na_{ij}x_j^{(k)}) xi(k+1)?=(1?ω)xi(k)?+ωx~i(k+1)?,i=1,2,?,nx~i(k+1)??:x~i(k+1)?=aii?1?(bi??j=1i?1?aij?xj(k+1)??j=i+1n?aij?xj(k)?)
矩阵形式:
x ( k + 1 ) = B ω x ( k ) + f ω , k = 0 , 1 , 2 , ? 其 中 S O R 迭 代 矩 阵 : B ω = ( D ? ω L ) ? 1 [ ( 1 ? ω ) D + ω U ] , f ω = ω ( D ? ω L ) ? 1 b x^{(k+1)}=B_{\omega}x^{(k)}+f_{\omega},k=0,1,2,\cdots\\其中SOR迭代矩阵:B_{\omega}=(D-\omega L)^{-1}[(1-\omega)D+\omega U],f_{\omega}=\omega(D-\omega L)^{-1}b x(k+1)=Bω?x(k)+fω?,k=0,1,2,?SORBω?=(D?ωL)?1[(1?ω)D+ωU],fω?=ω(D?ωL)?1b
由于 d e t ( B ω ) = d e t ( D ? ω L ) ? 1 ? d e t [ ( 1 ? ω ) D + ω U ] = 1 a 11 a 22 ? a n n ? ( 1 ? ω ) n a 11 a 22 ? a n n = ( 1 ? ω ) n det(B_{\omega})=det(D-\omega L)^{-1}·det[(1-\omega)D+\omega U]=\frac{1}{a_{11}a_{22}\cdots a_{nn}}·(1-\omega)^na_{11}a_{22}\cdots a_{nn}=(1-\omega)^n det(Bω?)=det(D?ωL)?1?det[(1?ω)D+ωU]=a11?a22??ann?1??(1?ω)na11?a22??ann?=(1?ω)n,得 λ 1 λ 2 ? λ n = d e t ( B ω ) = ( 1 ? ω ) n , ∣ 1 ? ω ∣ n = ∣ λ 1 λ 2 ? λ n ∣ ≤ ( ρ ( B ω ) ) n \lambda_1\lambda_2\cdots\lambda_n=det(B_{\omega})=(1-\omega)^n,|1-\omega|^n=|\lambda_1\lambda_2\cdots\lambda_n|\leq (\rho(B_\omega))^n λ1?λ2??λn?=det(Bω?)=(1?ω)n1?ωn=λ1?λ2??λn?(ρ(Bω?))n,所以有:

定理9::若 A x = b Ax=b Ax=b 的系数矩阵主对角线上元 a i i ≠ 0 a_{ii}\neq0 aii???=0,则SOR法收敛的必要条件是 0 < ω < 2 0<\omega<2 0<ω<2

但并不是充分条件:也就是,当 0 < ω < 2 0<\omega<2 0<ω<2 时,并不能保证SOR迭代法一定收敛。

实际应用中,可以根据系数矩阵?的性质以及计算的经验来选定合适的松驰因子 ω \omega ω,以加快收敛的速度。

定理10:若系数矩阵 A A A 是实对称正定矩阵,且松弛因子 0 < ω < 2 0<\omega<2 0<ω<2,则对任意初始向量,SOR迭代法收敛。

定理11:若系数矩阵 A A A 为弱对角占优矩阵,且为不可约矩阵,则雅可比迭代法、高斯-赛德尔迭代法均收敛。

定理12:若系数矩阵 A A A 为严格对角占优矩阵(或为弱对角占优不可约矩阵),且 0 < ω ≤ 1 0<\omega\leq1 0<ω1,则SOR迭代法收敛。

定义4:(收敛速度)称 R ( B ) = ? l n ρ ( B ) R(B)=-ln\rho(B) R(B)=?lnρ(B) 为迭代法的收敛速度,其中 B B B 为迭代矩阵。

方程组的状态与解的迭代改善

如果在 A x = b Ax=b Ax=b 中的初始数据 A , b A,b A,b 有一个小的扰动,对解的结果有什么影响?

方程组的状态与矩阵的条件数

初始数据 A , b A,b A,b 的微小变化引起了解的很大变化,称这样的方程组为病态方程组

  1. b b b 有一个扰动 δ b \delta b δb

    设相应方程组的解为 x ~ ( x ~ = x + δ x ) \tilde{x}(\tilde{x}=x+\delta x) x~(x~=x+δx),其中 x x x A x = b Ax=b Ax=b 的精确解。即 A x ~ = b + δ b A\tilde{x}=b+\delta b Ax~=b+δb,或 A ( x + δ x ) = b + δ b A(x+\delta x)=b+\delta b A(x+δx)=b+δb A δ x = δ b , δ x = A ? 1 δ b A\delta x=\delta b,\delta x=A^{-1}\delta b Aδx=δbδx=A?1δb,得
    ∣ ∣ δ x ∣ ∣ = ∣ ∣ A ? 1 δ b ∣ ∣ ≤ ∣ ∣ A ? 1 ∣ ∣ ? ∣ ∣ δ b ∣ ∣ ||\delta x||=||A^{-1}\delta b||\leq||A^{-1}||·||\delta b|| δx=A?1δbA?1?δb
    ∣ ∣ b ∣ ∣ = ∣ ∣ A x ∣ ∣ ≤ ∣ ∣ A ∣ ∣ ? ∣ ∣ x ∣ ∣ ||b||=||Ax||\leq||A||·||x|| b=AxA?x,即 1 ∣ ∣ x ∣ ∣ ≤ ∣ ∣ A ∣ ∣ ∣ ∣ b ∣ ∣ \frac{1}{||x||}\leq \frac{||A||}{||b||} x1?bA?

    所以
    ∣ ∣ δ x ∣ ∣ ∣ ∣ x ∣ ∣ ≤ ∣ ∣ A ? 1 ∣ ∣ ? ∣ ∣ A ∣ ∣ ∣ ∣ δ b ∣ ∣ ∣ ∣ b ∣ ∣ \frac{||\delta x||}{||x||}\leq||A^{-1}||·||A||\frac{||\delta b||}{||b||} xδx?A?1?Abδb?
    即:解的相对误差不超过向量 b b b 的相对误差的 ∣ ∣ A ? 1 ∣ ∣ ? ∣ ∣ A ∣ ∣ ||A^{?1}||·||A|| A?1?A 倍。

  2. A A A 有一个扰动 δ A \delta A δA (设 A + δ A A+\delta A A+δA 仍可逆)

    设相应方程组的解为 x ~ ( x ~ = x + δ x ) \tilde{x}(\tilde{x}=x+\delta x) x~(x~=x+δx),其中 x x x A x = b Ax=b Ax=b 的精确解。即 ( A + δ A ) x ~ = b (A+\delta A)\tilde{x}=b (A+δA)x~=b,或 ( A + δ A ) ( x + δ x ) = b (A+\delta A)(x+\delta x)=b (A+δA)(x+δx)=b δ A ( x + δ x ) + A δ x = 0 , δ x = ? A ? 1 δ A ( x + δ x ) \delta A(x+\delta x)+A\delta x=0,\delta x=-A^{-1}\delta A(x+\delta x) δA(x+δx)+Aδx=0,δx=?A?1δ