(translator=Kuo, ChineseSource=Kuo-20020523-7\svd.html, EnglishSource=c:\matlabr12\help\techdoc\ref\svd.html)
MATLAB Function Reference    
svd

奇異值分解(Singular value decomposition)

Syntax

Description

svd 指令會計算矩陣的奇異值分解。

s = svd(X) 會傳回一個包含奇異值的向量。

[U,S,V] = svd(X) 會產生一個與 X 維度相同的對角矩陣 S(非負的對角線元素會以遞減順序排列),和兩個么正矩陣 UV 使得 X = U*S*V'。

[U,S,V] = svd(X,0) 會產生 "economy size" 的分解。若 X 是一個 m-by-n 矩陣且 m > nsvd 只會算 U 的前 n 行且 Sn-by-n矩陣。

Examples

以下的矩陣

經由這個指令

會產生

也可以產生 economy size 的分解

結果為

Algorithm

svd 是用 LAPACK routines 來計算矩陣的 Singular value decomposition 。

Matrix
Routine
Real
DGESVD
Complex
ZGESVD

Diagnostics

求奇異值時,要是限制最多的 QR step iterations 為75,會出現以下訊息:

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 (http://www.netlib.org/lapack/lug/ lapack_lug.html), Third Edition, SIAM, Philadelphia, 1999.


 surfnorm svds