數值分析讀書筆記(2)求解線性代數方程組的直接方法
1.引言
矩陣的數值計算一般可以分爲直接法和間接法
本章主要介紹Ax=b 這類線性方程組求解的直接法,數值求解該方程組的基礎思想是Gauss消元法
實質是通過一組滿秩的初等行變換,將A保秩變換成一個三角矩陣U,此變換過程稱爲矩陣A的非奇異上三角化
我們的目的就是尋求一個矩陣P,使得PA=U,其中U是一個三角矩陣,其中Ax=b 和Ux=b¯¯ 同解(b¯¯=Pb ),有效的生成一個P是我們主要研究的問題
2.初等下三角矩陣–Guass變換矩陣
回顧一下線性代數中的三個初等線性變換
- 數乘
- 倍加
- 互換
我們引入一個一般意義上的初等變換矩陣,它把許多常用的線性變換統一在一個框架裏面,在數值線性代數中起着重要的意義
Def: 稱Cn×n 中如下形式的矩陣E(u,v;σ) 爲初等矩陣:
E(u,v;σ)=I−σuvH
其中非零向量
u,v∈Cn,σ≠0 是實或者複數,即
E(u,v;σ)=⎛⎝⎜⎜⎜⎜⎜1−σu1v1−σu2v1⋮−σunv1−σu1v21−σu2v2⋮−σunv2⋯⋯⋱⋯−σu1vn−σu2vn⋮1−σunvn⎞⎠⎟⎟⎟⎟⎟
選取不同的
u,v,σ ,可以得到許多常用的線性變換矩陣
- 數乘(E1=E(ei,ei;1−α) )
- 倍加(E2=E(ei,ej;−μ) )
- 互換(E3=E(ei−ej,ei−ej;1) )
下面引出初等變換矩陣的一些重要的數學性質
1.兩相同向量u,v組成的初等變換矩陣可交換,其積仍然爲一個初等矩陣
E(u,v;σ)E(u,v;τ)=E(u,v;σ+τ−στvHu)
證明:
E(u,v;σ)E(u,v;τ)=(I−σuvH))(I−τuvH)=I−σuvH−τuvH+(6)(7)
2.若1−σvHu≠0 ,則初等矩陣E(u,v;\sigma)可逆,其逆矩陣也是初等矩陣
E−1(u,v;σ)=E(u,v;τ),τ=σσvHu−1
3.設v⊥ 表示和v 正交的(n-1)維子空間
a.若u∉v⊥ ,則E(u,v;σ) 有n個線性無關的特徵向量,該組特徵向量由u和v⊥ 中任取一組基向量組成
b.若u∈v⊥ ,則E(u,v;σ) 僅有n-1個線性無關的特徵向量,該組特徵向量由v⊥ 中任取一組基向量組成
4.det(E(u,v;σ))=1−σvHu
5.對任意非零向量a,b∈Cn ,必可適當選取u,v,σ 使得E(u,v;σ)a=b
事實上只需要取u,v,σ 滿足
vHa≠0,σu=a−bvHa
由初等變換矩陣引出Guass變換矩陣,我們選取
σ=−1,u=lk=(0,⋯,0,lk+1,⋯,lnk)T,v=ek=(0,⋯,0,1,0,⋯,0)T,k=1,2,⋯,n−1
得到n-1個Guass變換矩陣
Lk(lk)≡E(lk,ek;−1)=I+lkek=⎛⎝⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜1⋱1lk+1,klk+2,k⋮l′′nk11⋱1⎞⎠⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟
下面給出Guass變換矩陣的一些性質
1.det(Lk)=1+eTklk=1
2.Guass變換矩陣的逆只需要將σ 從-1變成+1
3.L1(l1)L2(l2)⋯Ln−1(ln−1)=⎛⎝⎜⎜⎜⎜⎜⎜⎜1l21l31⋮ln11l32⋮ln21⋮ln3⋱⋯1⎞⎠⎟⎟⎟⎟⎟⎟⎟
注意左乘的順序
3.Gauss消元法
先介紹一下順序Gauss消元法,大概分兩步
- 消元過程
- 回代過程
在消元過程中,我們不斷去左乘Gauss變換矩陣,不斷將原矩陣的下三角部分一列列變成0,從而最終變換成一個上三角矩陣
需要注意的是,在一列列的消元過程中,我們需保證aii≠0(i=1,2,…,n) ,所以需要利用行互換來保證此條件
當然這一切消元過程的前提是,矩陣A應該是非奇異的
經過n-1次的Gauss消元,我們可以得到一個上三角矩陣
L−1n−1⋯L−1k⋯L−12L−11A(1)=A(n)x=L−1n−1⋯L−1k⋯L−12L−11b(1)=b(n)
在回代過程中,由於我們得到了一個上三角矩陣,那麼就可以從最底行開始逐步解出x
Gauss消元法的複雜度是O(n3) ,高階狀態下比起克拉默法則運算量要小得多
Gauss消元法過程中,在對各列進行消元的時候,如果主元比較小的話,運算的結果會產生較大的誤差,故引入Gauss列主元消元法,即在每一次利用主元消元的步驟之前,把該列中絕對值最大的數所在的行與主元所在的行進行交換
4.三角分解法
我們利用Gauss變換矩陣對Gauss消元法進行進一步的分析
L−1n−1⋯L−1k⋯L−12L−11A(1)x=A(n)x=Ux
故
A=L1⋯Lk⋯Ln−2Ln−1U=(I+l1eT1)⋯(I+ln−2eTn−2)(I+ln−1eTn−1)U=(I+l1eT1+⋯+ln−1eTn−1)U(8)(9)(10)
由此引出矩陣的LU分解,又稱Doolittle分解
A=⎛⎝⎜⎜⎜⎜⎜⎜⎜1l21l31⋮ln11l32⋮ln21⋮ln3⋱⋯1⎞⎠⎟⎟⎟⎟⎟⎟⎟⎛⎝⎜⎜⎜⎜⎜⎜⎜u11u12u22u13u23u33⋯⋯⋯⋱u1nu2nu3n⋮unn⎞⎠⎟⎟⎟⎟⎟⎟⎟
這裏再介紹一下Crout分解,即A=LU中的L是一個下三角矩陣,U是單位上三角矩陣
注意到某些特殊矩陣的三角分解也是比較特殊的,這裏引入一類帶狀對角形矩陣
A=⎛⎝⎜⎜⎜⎜⎜⎜⎜⎜⎜a11⋮ar+1,1⋯⋱⋱a1,s+1ar+1,s+1an,n−r⋱⋱an−s,nann⎞⎠⎟⎟⎟⎟⎟⎟⎟⎟⎟
上半帶寬爲s,下半帶寬爲r,存在LU分解,其中L是下半帶寬爲r的單位下三角矩陣,U是上半帶寬爲s的上三角矩陣
對於r=s=1的這一類更加特殊的矩陣,稱爲三對角矩陣,對於此類矩陣的三角分解,介紹一種“追趕法”
首先做Crout分解
A=LU=⎛⎝⎜⎜⎜⎜⎜⎜⎜p1r20p2⋱⋱rn−1pn−1rn0pn⎞⎠⎟⎟⎟⎟⎟⎟⎟⎛⎝⎜⎜⎜⎜⎜⎜⎜10q11q2⋱⋱10qn−11⎞⎠⎟⎟⎟⎟⎟⎟⎟
然後分兩步解決此類問題
追:解
Ly=b
趕:解
Ux=y
注意到正定對稱矩陣的三角分解也是特殊的,這裏引入Cholesky分解
首先利用Doolittle分解,得A=LU ,對U進一步提取對角矩陣diag(u11,…,unn) ,從而有
U=DD−1U=D(D−1U)=DU0
故,
A=LDU0 ,由於A對稱正定,
AT=A ,所以有
AT=(LDU0)T=UT0DLT=A=LDU0
由於分解的唯一性,可知
LT=U0 ,從而有
A=LDLT
我們可以記,
D1/2=diag(u11−−−√,…,unn−−−√) ,從而
A=LD1/2D1/2LT=LD1/2(LD1/2)T=L1LT1
此種分解手段稱爲Cholesky分解,限定對角元素爲正,此類分解唯一
上述的Cholesky分解中涉及了開方的運算,下面介紹一種改進的平方根法
易知,A=LDLT ,則Ax=LDLTx
先解Ly=b ,後解LTx=D−1y ,其中D的逆只需要將對角元素取倒數即可
5.向量和矩陣的範數
範數是比長度更爲一般的概念,有了範數就可以更好的去測度誤差的大小
關於向量範數
Def:V是數域R/C上的線性空間,對於V中任意的元素x,if存在一個唯一的實函數N(x)與之對應,記爲∥x∥,而且需滿足三個條件1.非負正定,2.齊次性,3.三角不等式
對於非負正定,當僅當x=0,有N(x)=0,否則N(x)> 0;
對於齊次性,有
∥αx∥=|α|∥x∥,α∈K
對於三角不等式,有
∥x+y∥≤∥x∥+∥y∥,∀x,y∈V
這裏介紹幾種常見的向量範數
- l1−範數 向量中的元素的絕對值之和
- l2−範數 向量中的元素的絕對值的平方加起來然後開方
- l∞−範數 向量元素中的最大絕對值(使用Cauchy-Schwarz不等式證明三角不等式)
- lp−範數 向量中的元素的絕對值的p次方加起來然後開p次方根(利用赫爾德不等式即可證明三角不等式)
在最優化理論中可能會涉及加權範數,A爲對稱正定矩陣,(xTAx)1/2 是一種向量範數,記爲∥x∥A
在無限維線性空間中,比如在[a,b]區間中,對於所有的實連續函數集合C[a,b],對於其中的一個元素f(x)也是有類似定義的範數
- 1範數
∥f(x)∥1=∫ba|f(x)|dx
- p範數
∥f(x)∥p=(∫ba|f(x)|pdx)1p
- ∞範數
∥f(x)∥∞=max|f(x)|,a≤x≤b
下面介紹一下範數的等價性
對於任意兩個定義好的範數,存在兩個與向量x無關的非零正常數c1,c2,有
c1∥x∥α≤∥x∥β≤c2∥x∥α
稱兩個範數等價
不難驗證,此處的等價性滿足數學定義中的等價性的三個條件,即自反,對稱,傳遞
關於矩陣範數
矩陣範數不僅僅滿足非負正定,齊次和三角不等式,而且須滿足矩陣相乘的相容性,即
∥AB∥≤∥A∥∥B∥
這裏給出一類特殊的範數, Frobenius範數
∥A∥F=(∑j=1m∑i=0n|aij|2)12
對於Cm×n 上面的任意一種向量誘導範數,都有∥I∥=max∥x∥=1{∥Ix∥=1}
這裏給出一種範數的定義,即誘導矩陣範數,誘導矩陣範數和向量範數密切相關
定義:設在兩個向量空間Cm,Cn 中存在向量範數∥∙∥V , 定義在Cm×n 空間上的矩陣A的由向量範數 ∥∙∥V 誘導所給出的矩陣範數爲(其中x不爲零向量)
∥A∥V=max∥Ax∥V∥x∥V
我們爲了解決這個最大值的問題,繼續等價定義來優化這個問題
∥A∥V=max∥Ax∥V∥x∥V=max∥Ax∥V
其中第一個max條件爲x不爲零向量,第二個max條件爲∥x∥V=1
我們利用誘導範數的定義可以從原來的向量範數中誘導出三種範數,分別是
1範數:對矩陣的每一列中的元素取絕對值之後求和,然後選取其中的最大列作爲1範數
2範數:矩陣的最大奇異值,也就是矩陣與矩陣的轉置的乘積的最大特徵值
無窮範數:對於矩陣的每一行的元素取絕對值之後求和,然後選取其中的最大行作爲無窮範數
關於矩陣的應用,這裏引入一個Banach引理
設矩陣A屬於n*m的復矩陣空間,對於該空間上的某種矩陣範數∥∙∥V ,有∥A∥V<1 ,則矩陣(I±A) 非奇異,且有
∥(I−A)−1∥V≤∥I∥1−∥A∥
給出矩陣譜半徑的定義
矩陣的譜半徑爲矩陣的最大特徵值,關於矩陣的譜半徑,它不超過其任意一種矩陣範數(當矩陣是Hermite矩陣時,矩陣的2範數恰好等於矩陣的譜半徑)
繼續給出線性方程組中條件數的定義
在某一矩陣空間中,對於某一矩陣範數,矩陣的條件數=矩陣的範數×矩陣的逆的範數,即
Cond(A)=∥A∥V×∥A−1∥V
對於矩陣的條件數來說,它顯然大於等於1,當矩陣恰好是正交矩陣的時候,矩陣的條件數恰好等於1
當矩陣爲對稱陣,對應的矩陣範數爲2範數的時候,此時的條件數稱之爲譜條件數,其值等於最大特徵值除以最小特徵值,然後取絕對值