(translator=roro, ChineseSource=roro-20020630-8\cholupdate.html, EnglishSource=c:\matlabr12\help\techdoc\ref\cholupdate.html)
MATLAB Function Reference    
cholupdate

行列 1 更新至 Cholesky 分解法

Syntax

Description

R1 = cholupdate(R,x) R = chol(A) 為原本對 A 的 Cholesky 分解法,回傳一 A + x*x' 的上三角 Cholesky 因子,x 為適當長度的行向量。cholupdate 僅使用 R 的對角線及上三角部份,下三角部份將被忽略。

R1 = cholupdate(R,x,'+') 等同於 R1 = cholupdate(R,x)

R1 = cholupdate(R,x,'-') 回傳 A - x*x' 的 Cholesky 因子。當 R 不是一合理的 Cholesky 因子或當 downdated 矩陣不是正向定義且沒有經 Cholesky factorization,則會印出錯誤訊息。

[R1,p] = cholupdate(R,x,'-') 不會回傳錯誤訊息。若 p0R1A - x*x' 的 Cholesky 因子。若 p 大於 0R1 為原本 A 的 Cholesky 因子。若 p1cholupdate 會因為 downdated 矩陣不為正向定義而無法運作。若 p2cholupdate 會因為 R 的上三角部份不為合理的 Cholesky 因子而無法運作。

Remarks

cholupdate 僅對全矩陣(full matrices)作用。

Example

此稱為行列一更新成 A 既然 rank(x*x')1

使用 cholupdate 取代運用 R1 = chol(A + x*x') 計算 Cholesky 因子:

而後藉由對 A 中最後一個元素減去 1 來使其沒有正向定義(positive definiteness)。該 downdated 矩陣為:

比較 cholcholupdate

然而,從 A 的最後一個元素減去 0.5 產生一正向定義矩陣,我們可使用 cholupdate 計算其 Cholesky 因子:

Algorithm

cholupdate 的演算法為使用 LINPACK 子程序 ZCHUDZCHDDcholupdate 用於計算新的 Cholesky 因子,為一種 的演算法,並用此方法簡易地更新已存在的因子為一種 的演算法。

References

Dongarra, J.J., J.R. Bunch, C.B. Moler, and G.W. Stewart, LINPACK Users' Guide, SIAM, Philadelphia, 1979.

See Also

chol, qrupdate


 cholinc cla