奇異值計算機 - SVD矩陣分解
使用SVD分解計算任意實矩陣的奇異值——以換行分隔列、逗號分隔欄,即可立即得到所有奇異值、矩陣秩與範數。
輸入矩陣並使用奇異值分解(SVD)來計算其奇異值。計算機會依降冪顯示所有奇異值與矩陣屬性。
奇異值計算機 - SVD矩陣分解
使用SVD分解計算任意實矩陣的奇異值——以換行分隔列、逗號分隔欄,即可立即得到所有奇異值、矩陣秩與範數。
每一列請單獨換行。列內元素可用逗號或空格分隔。所有列必須有相同的欄數。
關於奇異值計算機
奇異值分解(SVD)是線性代數中最重要的分解之一。對於任意實數 m×n 矩陣 A,SVD 會將 A 表示為 A = UΣV^T,其中 U 是 m×m 的正交矩陣,Σ 是一個 m×n 的對角矩陣,對角線上為非負元素,而 V 是 n×n 的正交矩陣。Σ 的對角元素 σ₁ ≥ σ₂ ≥ … ≥ 0 就是 A 的奇異值。
奇異值永遠是非負實數,即使原矩陣包含負值或複數結構也一樣。它們由矩陣唯一決定——不同於向量 U 和 V,在奇異值重複時可能不唯一。非零奇異值的數量等於矩陣的秩,也就是列空間的維度(亦即矩陣 A 所表示的線性轉換所有可能輸出所張成的空間)。
SVD 與特徵值之間的關係非常精確:A 的奇異值是對稱半正定矩陣 A^T·A(或等價的 A·A^T,對應左奇異向量)特徵值的平方根。這個計算機先計算 A^T·A,再使用 Jacobi 特徵值演算法——一種透過一系列稱為 Givens 旋轉的正交旋轉來消去對稱矩陣非對角元素的迭代方法——求出其特徵值,然後再取平方根。
最大奇異值 σ₁ 等於矩陣的譜範數(也稱 2-範數或算子範數)——它表示矩陣對單位向量的最大拉伸倍數。Frobenius 範數是所有奇異值平方和的平方根,也等於所有矩陣元素平方和的平方根。這些範數具有實際意義:Frobenius 範數是衡量矩陣總能量最自然的指標,而譜範數則控制對擾動的敏感度。
條件數 κ = σ₁/σₙ(最大與最小奇異值之比)用來量化矩陣在線性方程求解中的病態程度。條件數接近 1 表示系統條件良好,容易精確求解。條件數非常大——例如高於 10⁶ 或 10¹²——則表示系統病態,輸入中的微小擾動可能導致解出現巨大變化,這是科學計算與機器學習中數值不穩定的常見來源。
SVD 的應用非常廣泛。在資料科學中,主成分分析(PCA)——降維的主力方法——在數學上等同於對置中的資料矩陣做 SVD。主成分就是右奇異向量 V,而每個成分所解釋的變異量與對應奇異值的平方成正比。在影像處理與壓縮中,只保留最大的 k 個奇異值及其相關向量,可以得到影像矩陣的秩-k 近似,並在所有秩-k 矩陣中使 Frobenius 範數誤差最小——這就是 Eckart-Young 定理。在推薦系統(協同過濾)中,透過 SVD 的矩陣分解可用來預測使用者對未見項目的評分。在工程中,偽逆 A† = VΣ†U^T 可為超定或欠定系統提供最小範數最小平方法解,這在機器人學、控制理論與訊號處理中至關重要。
對這個計算機而言,Jacobi 演算法可可靠處理約 10×10 以內的矩陣。對於非常大的矩陣,或具有許多幾乎重複奇異值的矩陣,由於浮點捨入誤差的累積,精度可能會稍有損失,但對一般輸入而言,結果至少可達六位有效數字。
奇異值範例
常見矩陣範例及其奇異值與關鍵屬性。
| 矩陣 | 奇異值 | 屬性 |
|---|---|---|
| [[1, 2], [3, 4]] | σ₁ ≈ 5.4650, σ₂ ≈ 0.3660 | 一個一般的 2×2 矩陣。秩 = 2,條件數 ≈ 14.93。 |
| [[1, 0, 0], [0, 2, 0], [0, 0, 3]] | σ₁ = 3, σ₂ = 2, σ₃ = 1 | 對角矩陣。奇異值等於對角元素的絕對值。 |
| [[1, 2, 3], [4, 5, 6]] | σ₁ ≈ 9.5080, σ₂ ≈ 0.7729 | 一個秩為 2 的 2×3 矩陣。SVD 會得到 min(2,3)=2 個奇異值;這裡兩者都非零。 |
| [[1, 2], [2, 4]] | σ₁ = 5, σ₂ = 0 | 秩虧矩陣(第 2 列 = 2 × 第 1 列)。其中一個奇異值為 0。 |
如何使用奇異值計算機
- 在文字區輸入矩陣:每列單獨一行,列內數值以逗號或空格分隔。
- 確認所有列的元素個數一致——如果列長度不一致,計算機會提示解析錯誤。
- 點擊「計算奇異值」。工具會計算 A^T·A,套用 Jacobi 特徵值演算法,並依降冪顯示所有奇異值。
- 查看附加屬性:秩(非零奇異值的個數)、Frobenius 範數、譜範數(σ₁),以及在矩陣具有滿列秩時顯示的條件數(σ₁/σₙ)。
- 使用範例按鈕載入預設矩陣,探索不同矩陣結構如何影響奇異值。
奇異值常見問題
什麼是奇異值?
奇異值是描述線性變換大小的非負標量。對於矩陣 A,奇異值是 A^T·A 的特徵值平方根。它們描述 A 在不同方向上拉伸或壓縮向量的程度——最大奇異值給出最大拉伸因子,最小奇異值給出最小值。
奇異值和特徵值有什麼不同?
特徵值只對方陣定義,且可以為負或複數。奇異值適用於任何矩陣(包括長方矩陣),而且始終是非負實數。對稱正定矩陣的奇異值與特徵值相同。一般而言,A 的奇異值是 A^T·A 特徵值的平方根。
條件數告訴我什麼?
條件數(σ₁/σₙ)衡量敏感度:較小的條件數(接近 1)表示矩陣狀態良好,線性方程 Ax = b 可以被精確求解。較大的條件數(>10⁶)表示接近奇異——矩陣幾乎秩虧,由捨入誤差放大的數值效應可能使解不可靠。
為什麼奇異值總是非負的?
奇異值定義為 σᵢ = √λᵢ,其中 λᵢ 是 A^T·A 的特徵值。由於 A^T·A 是半正定矩陣(所有特徵值都 ≥ 0),平方根一定是非負實數。這對任何實矩陣或複矩陣 A 都成立。
SVD 和 PCA 有什麼關係?
主成分分析(PCA)在數學上等同於對置中的資料矩陣進行 SVD。右奇異向量(V 的列)就是主方向(主成分)。對應的奇異值與這些方向上的標準差成正比——具體來說,σᵢ/√(m-1) 是 m 列資料矩陣中第 i 個主成分的標準差。
這個計算機能處理長方矩陣嗎?
可以。SVD 適用於任何實數 m×n 矩陣,不論 m > n、m = n 或 m < n。對於 m×n 矩陣,奇異值的數量等於 min(m, n)。若 m > n,最多只有 n 個非零奇異值;若 m < n,最多只有 m 個非零奇異值。