总结自《数值分析》李乃成版
高斯消去法就是初等数学的消元法,这里是将求解步骤规范化,使之便于编写计算机程序(设置好每一步执行的顺序,使程序具有最小的时间复杂度和空间复杂度)
消元法基本思路:
1、将线性方程组消元成上三角形式:
将:
{ a 11 x 1 + a 12 x 2 + a 13 x 3 = y a 1 a 21 x 1 + a 22 x 2 + a 23 x 3 = y a 2 a 31 x 1 + a 32 x 2 + a 33 x 3 = y a 3 \begin{cases} a_{11}x_1+a_{12}x_2+a_{13}x_3=y_{a1}\\ a_{21}x_1+a_{22}x_2+a_{23}x_3=y_{a2}\\ a_{31}x_1+a_{32}x_2+a_{33}x_3=y_{a3} \end{cases} ⎩⎪⎨⎪⎧a11x1+a12x2+a13x3=ya1a21x1+a22x2+a23x3=ya2a31x1+a32x2+a33x3=ya3
先消元成:
{ a 11 x 1 + a 12 x 2 + a 13 x 3 = y a 1 b 22 x 2 + b 23 x 3 = y b 2 b 32 x 2 + b 33 x 3 = y b 3 \begin{cases} a_{11}x_1+a_{12}x_2+a_{13}x_3=y_{a1}\\ \;\;\quad\qquad b_{22}x_2+b_{23}x_3=y_{b2}\\ \;\;\quad\qquad b_{32}x_2+b_{33}x_3=y_{b3} \end{cases} ⎩⎪⎨⎪⎧a11x1+a12x2+a13x3=ya1b22x2+b23x3=yb2b32x2+b33x3=yb3
再消元成:
{ a 11 x 1 + a 12 x 2 + a 13 x 3 = y a 1 b 22 x 2 + b 23 x 3 = y b 2 c 33 x 3 = y c 3 \begin{cases} a_{11}x_1+a_{12}x_2+a_{13}x_3=y_{a1}\\ \;\;\quad\qquad b_{22}x_2+b_{23}x_3=y_{b2}\\ \;\;\quad\qquad\;\;\quad\qquad c_{33}x_3=y_{c3} \end{cases} ⎩⎪⎨⎪⎧a11x1+a12x2+a13x3=ya1b22x2+b23x3=yb2c33x3=yc3
2、回代过程:
先由 c 33 x 3 = y c 3 c_{33}x_3=y_{c3} c33x3=yc3,解出 x 3 x_3 x3
再由 b 22 x 2 + b 23 x 3 = y b 2 b_{22}x_2+b_{23}x_3=y_{b2} b22x2+b23x3=yb2,解出 x 2 x_2 x2
再由 a 11 x 1 + a 12 x 2 + a 13 x 3 = y a 1 a_{11}x_1+a_{12}x_2+a_{13}x_3=y_{a1} a11x1+a12x2+a13x3=ya1,解出 x 1 x_1 x1
高斯消去法顺利进行的几个条件是:
条件1:系数矩阵A的各阶顺序主子式均不为0.
条件2:系数矩阵A是对称正定矩阵
条件3:系数矩阵A是严格对角占优矩阵
正定矩阵:设 M M M是n阶方阵,如果对任何非零向量 z z z,都有 z T M z z^TMz zTMz,其中 z T z^T zT 表示 z z z的转置,就称 M M M为正定矩阵。简单来说,就是矩阵 M M M在任意非零向量 z z z上投影都大于零。
对称矩阵:以主对角线为对称轴,各元素对应相等的矩阵: A = A T A=A^T A=AT
矩阵的三角分解是为了应对系数矩阵A相同,但是右端项不同的多个线性方程组:
A x = b ( i ) ( i = 1 , 2 , . . . , m ) Ax=b^{(i)}(i=1,2,...,m) Ax=b(i)(i=1,2,...,m)。由矩阵运算导出矩阵的三角分解法,这样,每次只用修改右端项,就可以快速求解上述的一类线性方程组,以达到减少运算量的目的。
定理 2.2.1 设A为n阶矩阵,如果A的顺序主子式 D k ≠ 0 ( k = 1 , 2 , . . . , n ) D_k \neq 0(k=1,2,...,n) Dk=0(k=1,2,...,n),则A可以唯一地分解成一个单位下三角矩阵L和一个上三角矩阵U的乘积,即
A = L U A=LU A=LU
将矩阵分解为单位下三角矩阵L和上三角矩阵U的乘积A=LU,称为杜利特尔分解。同理,矩阵A也可以分解成下三角矩阵L与单位上三角矩阵U之积,这种分解称为克劳德分解。
矩阵的平方根法和改进平方根法是为了应对求解一个系数矩阵是对称正定的线性方程组 A x = b Ax=b Ax=b
定理 2.2.3(对称正定矩阵的楚列斯基分解) 设A是n阶对称正定矩阵,则存在一个可逆的下三角矩阵G,使得
A = G G T A=GG^T A=GGT
当限定G的对角元为正时,这种分解是唯一的。
因为只用求解一个下三角矩阵G,所以计算量变小了很多。
但是,由于计算式是 G G T GG^T GGT,所以求解G的时候要进行开方运算,开方运算需要耗费较多的机器时间。为了避免开方运算,应该避免 G G T GG^T GGT这类运算形式。
定理 2.2.2 (对称矩阵的三角分解)设A是n阶对称矩阵,若A的各阶顺序主子式均不等于0,则A可以唯一地分解为
A = L D L T A=LDL^T A=LDLT
其中,L为单位下三角矩阵,D是只有对角线元不为0的对角矩阵。
相比于三角分解,改进平方根法的里面的D是对角矩阵而不是上三角矩阵,所以所需要的运算量变小了。
相比于平方根法,改进平方根需要的计算式更多,但是避免了平方运算。
在样条插值函数、常微分方程边值问题和热传导方程的有限差分法等问题中,常遇到求解三对角方程组 A x = d Ax=d Ax=d,即
( b 1 c 1 a 2 b 2 c 2 a 3 b 3 c 3 a 4 b 4 c 4 a 5 b 5 c 5 a 6 b 6 ) ( x 1 x 2 x 3 x 4 x 5 x 6 ) = ( d 1 d 2 d 3 d 4 d 5 d 6 ) \begin{pmatrix} b_1\quad c_1\quad\quad\quad\quad\qquad\qquad\\ a_2 \quad b_2 \quad c_2\quad\quad\qquad\qquad\\ \quad\quad a_3\quad b_3\quad c_3\qquad\qquad\\ \quad\quad\qquad a_4\quad b_4\quad c_4\qquad\\ \quad\quad\qquad\qquad a_5\quad b_5\quad c_5\\ \quad\quad\qquad\qquad\qquad a_6\quad b_6 \end{pmatrix}\begin{pmatrix} x_1\\ x_2\\ x_3\\ x_4\\ x_5\\ x_6 \end{pmatrix}=\begin{pmatrix} d_1\\ d_2\\ d_3\\ d_4\\ d_5\\ d_6 \end{pmatrix} ⎝⎜⎜⎜⎜⎜⎜⎛b1c1a2b2c2a3b3c3a4b4c4a5b5c5a6b6⎠⎟⎟⎟⎟⎟⎟⎞⎝⎜⎜⎜⎜⎜⎜⎛x1x2x3x4x5x6⎠⎟⎟⎟⎟⎟⎟⎞=⎝⎜⎜⎜⎜⎜⎜⎛d1d2d3d4d5d6⎠⎟⎟⎟⎟⎟⎟⎞
通常A是严格对角占优矩阵。严格对角占优矩阵存在唯一的三角分解。
三对角矩阵有非常简单的三角分解形式:
A = L U = ( 1 l 2 1 b 3 c 3 b 4 c 4 b 5 c 5 ) ( u 1 c 1 u 2 c 2 u 3 c 3 u 4 c 4 u 5 ) A=LU=\begin{pmatrix} 1\quad\quad\quad\quad\qquad\qquad\\ l_2 \quad 1\quad\quad\qquad\qquad\\ \qquad b_3\quad c_3\qquad\qquad\\ \qquad\qquad b_4\quad c_4\qquad\\ \qquad\qquad\qquad b_5\quad c_5\\ \end{pmatrix}\begin{pmatrix} u_1\quad c_1\qquad\quad\quad\qquad\\ \qquad u_2 \quad c_2\quad\quad\qquad\\ \qquad \qquad u_3\quad c_3\qquad\\ \qquad \qquad\qquad u_4\quad c_4\\ \qquad\qquad\qquad\qquad u_5\\ \end{pmatrix} A=LU=⎝⎜⎜⎜⎜⎛1l21b3c3b4c4b5c5⎠⎟⎟⎟⎟⎞⎝⎜⎜⎜⎜⎛u1c1u2c2u3c3u4c4u5⎠⎟⎟⎟⎟⎞
三对角矩阵三角分解的两个矩阵内的元素个数都很少,所以运算量会小很多。
为了保证追赶法能顺利进行,要求系数矩阵A是严格对角占优矩阵。
矩阵QR分解常用于求解病态线性方程组 A x = b Ax=b Ax=b,即求解
y = Q T b , R x = y y=Q^Tb,\qquad Rx=y y=QTb,Rx=y
它的计算过程是非常稳定的,得到的结果往往要比三角分解法好得多。QR分解也常用于求解线性最小二乘问题、求矩阵全部特征值的QR方法等许多其他问题中,它是数值代数中许多中重要算法的基础。
1、吉文斯变换
( x 2 y 2 ) = ( c o s θ s i n θ − s i n θ c o s θ ) ( x 1 y 1 ) \begin{pmatrix} x_2\\ y_2 \end{pmatrix}=\begin{pmatrix} cos\theta\quad sin\theta\\ -sin\theta\quad cos\theta \end{pmatrix}\begin{pmatrix} x_1\\ y_1 \end{pmatrix} (x2y2)=(cosθsinθ−sinθcosθ)(x1y1)
从几何上来看,上式相当于在 x , y x,y x,y坐标中,将向量 ( x 1 , y 1 ) (x_1,y_1) (x1,y1)按顺时针方向做了 θ \theta θ度的旋转。可以通过三角和差化积公式证明。
由此推导出吉文斯变换的公式
定义 对某个 θ \theta θ,记 s = s i n θ , c = c o s θ , s=sin\theta,c=cos\theta, s=sinθ,c=cosθ,设 1 < = i < j < = n , 1<=i
P ( i , j , θ ) = ( 1 1 c s 1 − s c 1 1 ) P(i,j,\theta)=\begin{pmatrix} 1\qquad\qquad\qquad\qquad\qquad\qquad\\ \qquad 1\qquad\qquad\qquad\qquad\qquad\\ \qquad\qquad c\;\;\qquad \;\;s\qquad\qquad\\ \qquad\qquad\qquad 1\qquad\qquad\qquad\\ \qquad\qquad -s\;\;\qquad \;\;c\qquad\qquad\\ \qquad\qquad\qquad\qquad\qquad 1\qquad\\ \qquad\qquad\qquad\qquad\qquad\qquad 1\\ \end{pmatrix} P(i,j,θ)=⎝⎜⎜⎜⎜⎜⎜⎜⎜⎛11cs1−sc11⎠⎟⎟⎟⎟⎟⎟⎟⎟⎞
称为吉文斯变换、吉文斯变换阵或平面旋转阵, θ \theta θ称为转角。它是把单位矩阵 I I I的第 i , j i,j i,j行的对角元改为 c c c,将第 i i i行第 j j j列的元素改为 s s s,第 j j j行第 i i i列的元素改为 − s -s −s后形成的矩阵。
设 x , y x,y x,y是n维向量,则吉文斯变换 y = P ( i , j , θ ) x y=P(i,j,\theta)x y=P(i,j,θ)x相当于只改变了 x x x的第 i i i个和第j个分量,其他分量保持不变。相当于是在 ( i , j ) (i,j) (i,j)坐标平面內将向量 x x x做了 θ \theta θ度的旋转。
吉文斯变换也常用于将给定向量 x x x的某个(如第 j j j个)分量化为零,同时保持向量的长度不变。例如将 x = ( x 1 , x 2 , x 3 , . . . , x n ) x=(x_1,x_2,x_3,...,x_n) x=(x1,x2,x3,...,xn)中的 x j x_j xj化为零,当 x i 2 + x j 2 ≠ 0 x_i^2+x_j^2 \neq 0 xi2+xj2=0时,只要选取:
c = x i x i 2 + x j 2 , s = x j x i 2 + x j 2 c=\dfrac{x_i}{\sqrt{x_i^2+x_j^2}}, \qquad s=\dfrac{x_j}{\sqrt{x_i^2+x_j^2}} c=xi2+xj2xi,s=xi2+xj2xj
就有, y = P ( i , j , θ ) x y=P(i,j,\theta)x y=P(i,j,θ)x, y j = 0 y_j=0 yj=0.
2、豪斯霍尔德变换
定义 设 u ∈ R n u\in R^n u∈Rn且 ∣ ∣ u ∣ ∣ 2 = 1 , ||u||_2=1, ∣∣u∣∣2=1,矩阵 H = I − 2 u u T H=I-2uu^T H=I−2uuT称为初等反射阵、豪斯霍尔德变换或豪斯霍尔德矩阵。
豪斯霍尔德矩阵 H H H是一个对称的正交矩阵,即:
H T = H H^T=H HT=H
H T H = I H^TH=I HTH=I
H − 1 = H H^{-1}=H H−1=H
H H = I HH=I HH=I
由此可以推导出:
∣ ∣ y ∣ ∣ 2 = ∣ ∣ H x ∣ ∣ 2 = ∣ ∣ x ∣ ∣ 2 ||y||_2=||Hx||_2=||x||_2 ∣∣y∣∣2=∣∣Hx∣∣2=∣∣x∣∣2
豪斯霍尔德变换的几何意义:
设 π \pi π是过原点以 u u u为法向量的平面。豪斯霍尔德变换后的向量 H x Hx Hx是 x x x是关于平面 π \pi π对称的向量。几何学上称 H x Hx Hx为关于平面 π \pi π的镜面反射,故称 H H H为初等反射阵。
定理 设 x ∈ R n x\in R^n x∈Rn是任意给定的非零向量, v ∈ R n v\in R^n v∈Rn是任意给定的单位向量,则存在初等反射阵 H = I − 2 u u T H=I-2uu^T H=I−2uuT,使得 H x = σ v Hx=\sigma v Hx=σv,其中 σ \sigma σ为常数。
证明 σ 2 v T v = x T H T H x = x T x = ∣ ∣ x ∣ ∣ 2 2 \sigma^2v^Tv=x^TH^THx=x^Tx=||x||_2^2 σ2vTv=xTHTHx=xTx=∣∣x∣∣22,由于 v v v是单位向量,所以 σ 2 = ∣ ∣ x ∣ ∣ 2 2 \sigma^2=||x||_2^2 σ2=∣∣x∣∣22。又 H x = ( I − 2 u u T ) x = x − 2 u ( u T x ) = σ v Hx=(I-2uu^T)x=x-2u(u^Tx)=\sigma v Hx=(I−2uuT)x=x−2u(uTx)=σv,所以 2 ( u T x ) u = x − σ v 2(u^Tx)u=x-\sigma v 2(uTx)u=x−σv,其中, u T u^T uT是行向量, x x x是列向量, u T x u^Tx uTx是常数,这说明向量 u u u和 x − σ v x-\sigma v x−σv的方向相同,注意到 u u u是单位向量,故取
u = x − σ v ∣ ∣ x − σ v ∣ ∣ 2 u=\dfrac{x-\sigma v}{||x-\sigma v||_2} u=∣∣x−σv∣∣2x−σv
则由 u u u确定的矩阵 H H H必然满足 H x = σ v Hx=\sigma v Hx=σv。
设 x = ( x 1 , x 2 , . . . , x n ) T x=(x_1,x_2,...,x_n)^T x=(x1,x2,...,xn)T,为了避免 x − σ v x-\sigma v x−σv时损失有效数字,宜取 σ = − s g n ( x 1 ) ∣ ∣ x ∣ ∣ 2 \sigma=-sgn(x_1)||x||_2 σ=−sgn(x1)∣∣x∣∣2