虛功原理
[拼音]: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。