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

LU 分解

Syntax

Description

lu 函式將原本的矩陣 X 表示成一上三角(upper triangular matrix)一下三角(lower triangular matrix)的兩個的矩陣,其乘積為 x。此分解法又叫做 LU LR分解。

[L,U] = lu(X)  U 為上三角矩陣,而 L 為下三角矩陣(或為下三角矩陣和排列矩陣的乘積)。X = L*U。

[L,U,P] = lu(X)  U 為上三角矩陣,L 為下三角矩陣,而 P 為排列矩陣(permutation matrix )。即 L*U = P*X。

lu(X) 回傳 LAPACK 程序 DGETRF 或 ZGETRF輸出。

lu(X,thresh) 控制稀疏矩陣的中樞(pivot), thresh 表示範圍在 [0,1] 之間的中樞臨界點(pivot threshold)。 thresh = 1 為預設值。

Remarks

大多數計算 LU 分解的演算法都是利用高斯消去法。分解過程中的關鍵是利用矩陣反轉函式 inv 及行列式(determinant)函式 det。 也可使用線性方程組的基本解法或利用矩陣除法 \/。

Arguments

X
將被分解的一 n * n 矩陣。
thresh
稀疏矩陣的中樞起點( Pivot threshold)。其值的範圍在 [0,1] 之間。預設值為 1。
L
X 的一項分解因子。依據其函式, L 可能是下三角矩陣,也可能為一下三角矩陣及排列矩陣 P的乘積。
U
X 的一項分解因子。為上三角矩陣。
P
滿足 L*U = P*X的排列矩陣。

Examples

初始值為

呼叫兩個輸出參數的 lu 函式:

可由下式來驗証分解的結果是否有誤:

L*U

傳回原先的矩陣 A 後,使用三個輸出參數的函式以取得排列陣列:

傳回相同的 U ,L 的值不同:

為了要驗証 L*UA的一種排列方式,將P*A 減去   L*U :

X = inv(A) 正好是兩個三角矩陣的乘積:

而此範例的行列式為

它也是兩個三角矩陣行列式的乘積:

Ax = b 可由矩陣除法解之:

此解也可由兩個三角矩陣解之:

Algorithm

lu 使用 LAPACK 的子程序 DGETRF (real) 及 ZGETRF (complex)。

See Also

cond, det, inv, luinc, qr, rref

The arithmetic operators \ and /

References

[1]  Anderson, E., Z. Bai, C. Bischof, S. Blackford, J. Demmel, J. Dongarra, J. Du Croz, A. Greenbaum, S. Hammarling, A. McKenney, and D. Sorensen, LAPACK User's Guide, Third Edition, SIAM, Philadelphia, 1999.


 lsqr luinc