虛功原理

[拼音]:gong’e tidufa

[英文]:conjugate gradient method

又稱共軛斜量法,是解線性代數方程組和非線性方程組的一種數值方法,例如對線性代數方程組

A尣=ƒ, (1)

式中

A

為n階矩陣,尣和ƒ為n維列向量,當

A

對稱正定時,可以證明求(1)的解尣*和求二次泛函

(2)

的極小值問題是等價的。此處(尣,у)表示向量尣和у的內積。由此,給定了初始向量尣

,按某一方向去求(2)取極小值的點尣

,就得到下一個迭代值尣

,再由尣

出發,求尣

等等,這樣來逼近尣*。若取求極小值的方向為F在尣

(k=1,2,…)處的負梯度方向就是所謂最速下降法,然而理論和實際計算表明這個方法的收斂速度較慢,共軛梯度法則是在 尣

處的梯度方向r

和這一步的修正方向p

所構成的二維平面內,尋找使F減小最快的方向作為下一步的修正方向,即求極小值的方向p

(其第一步仍取負梯度方向)。計算公式為

再逐次計算

(k=1,2,…)。可以證明當i≠j時,

從而p

,p

形成一共軛向量組;r

,r

,…形成一正交向量組。後者說明若沒有舍入誤差的話,至多 n次迭代就可得到(1)的精確解。然而在實際計算中,一般都有舍入誤差,所以r

,r

,…並不真正互相正交,而尣

,…等也只是逐步逼近(1)的真解,故一般將共軛梯度法作為迭代法來使用。

近來在解方程組(1)時,常將共軛梯度法同其他一些迭代法結合作用。特別是對病態方程組這種方法往往能收到比較顯著的效果。其方法是選取一對稱正定矩陣

B

並進行三角分解,得

B

=LLT。將方程組(1)化為

hу=b, (3)

此處y=lT尣,b=l-1ƒ,h=l-1

A

l-T,而

。再對(3)用共軛梯度法,計算公式為

(k=0,1,2,…)適當選取

B

,當

B

很接近

A

時,h的條件數較之

A

大大減小,從而可使共軛梯度法的收斂速度大為加快,由一些迭代法的矩陣分裂

A

=M -N,可選取M 為這裡的

B

,例如對稱超鬆弛迭代(SSOR),強隱式迭代(SIP)等,這類方法常稱為廣義共軛梯度法或預條件共軛梯度法,它也可用於解代數特徵值問題。

參考書目

馮康等編:《數值計算方法》,國防工業出版社,北京,1978。