| 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 | ![]() |