盧興江, 金通洸
(浙江大學 數學科學學院,杭州310027)
迭代法是解線性方程組常用的方法,如著名的Jacobi迭代法,Gauss-Seidel迭代法和SOR迭代法[1]等.但對這些迭代過程的認識、收斂性分析等一般是從分析和代數上去研究,例如一個迭代法的收斂與否決定于相應迭代矩陣的譜半徑是否小于1,而求譜半徑并非易事,而且僅從譜半徑去認識迭代法的收斂性是不夠的,一個簡單的事實是:對某些線性方程組,若變換各個方程的次序,會改變一些迭代法的收斂性,而解的存在與否是和這些方程的次序無關的.要對這樣的問題作出解釋,揭示出迭代法的幾何本質是重要的.下面將從幾何上提出兩種迭代過程,從而得到解線性方程組迭代法的幾何實質.
記n階線性方程組為
Ax=b,
(1)
其中A=(aij)n×n∈n×n為n階系數矩陣,b=為n維常數向量,x=(x1,x2,…,xn)T為n維未知向量.
記Ai=(ai1,ai2,…,ain),fi(x)=bi-Aix,i=1,2,…,n,則(1)即為
fi(x)=0,i=1,2,…,n.
這n個方程分別代表n個超平面,記為πi,i=1,2,…,n.即
πi∶fi(x)=bi-Aix=0,
其中(Ai)T為πi的法向量,i=1,2,…,n.
對線性方程組(1),首先我們從幾何上來看兩個基本迭代過程.
(Ⅰ) 反射過程(反射迭代)
對方程組(1) 的n個超平面πi,i=1,2,…,n, 選定一組方向(向量)Ei∈n,i=1,2,…,n, 且E1,E2,…,En線性無關.則反射迭代為這樣一個過程(如圖1,其中x*為方程組的解)
圖1 反射迭代
① 選取初值(初始點)x0∈n;
③ 這樣得到迭代向量序列{xn}∶x1,x2,…,xn,…
以上過程稱為反射過程,或反射迭代.
定理1對方程組(1)及一組線性無關的方向E1,E2,…,En,若A非奇異,且Ai·Ei≠0 (i=1,2,…,n),則
(i)反射迭代可以一直進行下去;
(2)
其中(Rij)n×n稱之為關聯矩陣,Rij稱為關聯系數.
在反射迭代中,取不同的一組方向Ei(i=1,2,…,n),就可得到不同的迭代法.
定理2對方程組(1),若取一組線性無關的方向
Ei=εi=(0,0,…,0,1,0,…,0)T(εi第i個分量為1,其余分量為0)i=1,2,…,n,
則反射迭代即為Gauss-Seidel迭代法.
證若在反射迭代中取
Ei=εi=(0,0,…,0,1,0,…,0)T,i=1,2,…,n,
即
這恰為Gauss-Seidel迭代法計算表達式[1].
因此,Gauss-Seidel迭代法是一種反射迭代過程. 從這個幾何本質可以看到,Gauss-Seidel迭代法的收斂性是與方程組的各方程(超平面)的次序是有關系的,因為它與“坐標”εi(i=1,2,…,n)有關,如圖2和圖3相同的兩個方程(兩張“超平面”),次序不同,收斂性不同 .
圖2 G-S迭代收斂 圖3 G-S迭代發(fā)散
如果在上述反射過程中引進一個伸縮因子,則有以下迭代過程,我們稱之為伸縮反射過程(伸縮反射迭代):
① 選取初值(初始點)x0∈n;
圖4 伸縮反射迭代
③ 這樣得到迭代向量序列{xn}∶x1,x2,…,xn,….
顯然,伸縮反射迭代中若取所有的伸縮因子為1,則伸縮反射過程即為前面的反射過程 .
定理3對方程組(1)和一組線性無關方向Ei,若AiEi≠0(i=1,2,…,n),則
(i) 伸縮反射迭代可以一直進行下去;
(ii) 對任意給定的初值x0∈n,存在唯一確定的伸縮因子使得迭代n步即得方程組的精確解,即有x1=x*.
對于(i)的證明類似于定理1的(i)的證明 .
對于(ii),因為
此恰為SOR迭代法計算表達式[1].
所以,SOR方法為伸縮反射過程的一個特例.
定義1在n維空間中,n-1張超平面的交線稱為棱,與此n-1張超平面法向皆垂直的方向稱為棱方向.
記
其中Δij為A=(aij)n×n中aij的代數余子式.
其中Δ=det(A).
因此,對方程組(1)中的n個超平面,Ci(i=1,2,…,n) 即為n個棱方向.
定理5若取Ei=Ci(i=1,2,…,n),則對任何初值x0,反射過程進行n次即得方程組(1)的精確解,即x1為方程組(1)的解.
即x1為方程組(1)的解.
由定理5知,選取Ci(i=1,2,…,n)為反射方向,有限步(n步)迭代可得到方程組的精確解.
推論1若取Ei=Ci(i=1,2,…,n),且取初值x0=0時,則反射迭代所得x1即為方程組(1)的克蘭姆[2](Cramer)法則解.
于是
(Ⅱ) 張傘過程(張傘迭代)
選定一組方向(基)Ei(i=1,2,…,n),對方程組(1),張傘過程為(圖5):
圖5 張傘迭代
① 任取x0∈n;
③ 這樣得到迭代向量序列{xn}∶x1,x2,…,xn,….
事實上,這把傘為一個仿射標架:{xk,E1,E2,…,En},求方程組(1)的解x*就是在此仿射標架中求出x*的“坐標”.
定理6對方程組(1),若取一組線性無關的方向Ei=εi,i=1,2,…,n, 則張傘過程即為Jacobi迭代法.
即
此即為Jacobi迭代法計算表達式[1].
從上述可知,Gauss-Seidel迭代法與Jacobi迭代法有著不同的幾何本質,前者是反射過程,后者為張傘過程. 在一般情況下反射過程比張傘過程收斂快,所以通常說Gauss-Seidel迭代法比Jacobi迭代法收斂快,但這兩個迭代過程本質不同,因此存在對有的方程組Gauss-Seidel迭代法發(fā)散而Jacobi迭代法收斂的情況也就不足為奇了.
由上面所述,選取棱方向進行反射迭代可有限步得到精確解,但是計算棱方向的計算量太大,所以在實際計算時不宜采用. 下面將找出一組容易計算的方向Ei(i=1,2,…,n),并能迭代有限步得到方程組(1)的精確解,將它稱之為降維迭代法.
引理1若對方程組(1),反射迭代的方向E1,E2,…,En滿足
AiEj=0,i=1,2,…,n-1;j=i+1,i+2,…,n.
定理7若Ei(i=1,2,…,n) 滿足引理1條件,則反射迭代n步即得方程組(1)的精確解,即x1為精確解.
設A1,A2,…,An線性無關,記hij=Ai·Aj(i,j=1,2,…,n).令
(3)
①E1=A1;
②E2=W2;
確定,即由
(4)
稱這樣構造的一組方向Ei(i=1,2,…,n)為降維方向.
由以上易知,如果Ei(i=1,2,…,n) 為降維方向,則有
Ej·Ai=0,i=1,2,…,n-1;j=i+1,i+2,…,n.
定理8設Ei(i=1,2,…,n)為降維方向,則對方程組(1),反射迭代n步即得精確解.
證由引理1、定理7和降維方向的構造即得.
以降維方向進行反射迭代解線性方程組(1)的方法稱其為降維迭代法.用降維法求解時,稱反射迭代n步為迭代1次,因有計算誤差,如果迭代1次誤差不滿足要求,可以將得到的x1作為x0繼續(xù)迭代,這時因Ei(i=1,2,…,n)已經構造好,所以繼續(xù)迭代時計算非常方便,計算量很小,但效果很好.
數值例子[3]:
精確解為x*=(-1,-1,…,-1)T.
以‖x-x*‖∞<ε來控制精度. 計算結果表明,用降維法迭代4次即得精度為10-6的解.
通過計算量分析,降維法與共軛梯度法為同一數量級,但降維法不要求A為對稱正定,只要A非奇即可. 且數值例子表明,降維法比共軛梯度法更有效. 例如:
對Ax=b用降維迭代法迭代2次即得精確解.
致謝本文是基于博士階段的工作,感謝導師金通洸先生的悉心指導.也以此文表示對金老師的無限懷念.