2012-08-12 214 views
0

MATLAB documentation of SVD指出返回的對角矩陣具有按降序排列的奇異值。有沒有辦法找出奇異值的自然排序是什麼? 我問的原因是因爲奇異值對應於與輸入矩陣的行相關的維度。MATLAB SVD奇異值排序

+10

奇異值沒有「自然」排序。就奇異值與輸入矩陣的行相關而言,這對於一般矩陣也沒有數學基礎。如果你有一個具有特定特徵的特定矩陣(可能是對角線?),那麼你需要解釋它們,否則你的問題是沒有意義的。 – 2012-08-12 08:54:03

+1

@woodchips:你應該把你的評論變成一個答案 - 「這個問題沒有答案」在我的書中是完全有效的答案。 – Jonas 2012-08-12 14:32:52

回答

4

不,SVD的定義並未引入排序。如果X = U*S*V'是SVD X,那麼對於每permutation matrixP,我們可以形成有效的SVD作爲X = (U*P)*(P'*S*P)*(V*P)'。以降序呈現矩陣S只是爲了方便:每個排列P'*S*P都可以完成同樣的工作。

作爲附帶說明:P*X = P*U*S*V'表示矩陣X的行置換不改變奇異值S,這可以被認爲是獨立於任何行(或列)的X置換。

3

我希望能夠在回答之前瞭解一下這裏提出的問題。例如,我在文件交換中發佈的eigenshuffle工具允許您對一系列特徵問題的特徵值和特徵向量重新排序,因此它們在順序上彼此最大一致。也許你的問題是相似的,因此你可能會認爲奇異值是隨着驅動系統的某個參數而變化的函數。

但實際上,沒有從用於計算SVD的方法得到的奇異值的自然排序。事實上,唯一有意義的順序就是出現順序 - 順序遞減。奇異值的順序不依賴於矩陣行的順序,因爲這個問題似乎含糊其辭,所以我不確定這裏的含義。

隨時修改問題,以防您可以使您的需求更清晰。