MATLAB Function Reference |
Syntax
s = svds(A) s = svds(A,k) s = svds(A,k,0) [U,S,V] = svds(A,...)
Description
svds(A)
計算矩陣 A
的前五大單數值及相關的單數向量。
svds(A,k)
計算矩陣 A
的前 k
大單數值及相關的單數向量。
svds(A,k,0)
計算前 k
小的單數值及相關的單數向量。
若有一輸出參數,則 s
為一含有單數值的向量。若有三個輸出參數且若 A
為 m*n
:
Algorithm
svds(A,k) 使用 eigs
去找尋前 k
大等級的特徵值(eigenvalues)及對應特徵向量 B = [0 A; A' 0]
。
svds(A,k,0) 使用 eigs
找尋前 2k
小等級的特徵值及對應特徵向量 B = [0 A; A' 0]
,而後選擇 k
個正特徵值及特徵向量。
Example
west0479
為一 479*479 的實數稀疏矩陣。svd
計算所有 479 個單數值。svds
選擇最大及最小的單數值。
load west0479 s = svd(full(west0479)) sl = svds(west0479,4) ss = svds(west0479,6,0)
下圖顯示經由 svd 和
svds
計算 west0479
的一些單數值。
svds(west0479,1) = 3.189517598808622e+05 max(svd(full(west0479))) = 3.18951759880862e+05 norm(full(west0479)) = 3.189517598808623e+05
normest(west0479) = 3.189385666549991e+05
See Also
svd | switch |