什麼是矩陣條件數?
條件數 \(\kappa(A)\) 用來衡量線性方程組 \(Ax = b\) 的解,對資料中微小變動(誤差)的敏感程度。條件數越小(越接近 1),代表矩陣的「條件良好」(well-conditioned),數值運算也越穩定;條件數越大,則代表矩陣「條件不佳」(ill-conditioned),此時即使輸入只有微小誤差,也可能造成輸出結果出現巨大偏差。譜條件數,也就是 2-norm 條件數,等於最大奇異值除以最小奇異值:\(\kappa_2(A) = \sigma_{\max} / \sigma_{\min}\)。
如何使用本計算機
請輸入 2×2 矩陣 \(A\) 的四個元素(\(a_{11}\)、\(a_{12}\)、\(a_{21}\)、\(a_{22}\)),計算機便會回傳 2-norm 條件數,並一併列出兩個奇異值與行列式。若最小奇異值為零,表示該矩陣為奇異矩陣(singular matrix),其條件數為無限大。
公式說明
對任意矩陣而言,\(\kappa(A) = \|A\| \cdot \|A^{-1}\|\)。若採用 2-norm,則 \(\|A\| = \sigma_{\max}\)、\(\|A^{-1}\| = 1/\sigma_{\min}\),因此 \(\kappa_2(A) = \sigma_{\max}/\sigma_{\min}\)。奇異值即為 \(A^{T}A\) 之特徵值的平方根。以 2×2 矩陣為例,我們先建立 \(M = A^{T}A\),接著計算其特徵值
$$\lambda = \frac{\operatorname{tr} \pm \sqrt{\operatorname{tr}^2 - 4 \cdot \det}}{2}$$最後取 \(\sigma = \sqrt{\lambda}\) 即可。
實例演算
假設 \(A = \begin{bmatrix} 2 & 0 \\ 0 & 1 \end{bmatrix}\),則 \(A^{T}A = \begin{bmatrix} 4 & 0 \\ 0 & 1 \end{bmatrix}\),其特徵值為 4 與 1。因此奇異值為 \(\sigma_{\max} = 2\)、\(\sigma_{\min} = 1\),可得
$$\kappa_2(A) = \frac{2}{1} = 2$$這個矩陣的條件相當良好。
常見問題 FAQ
條件數多少才算「好」?數值越接近 1 越理想。簡單來說,可以用 \(\log_{10}(\kappa)\) 來概略估算:在求解方程組時,大約會損失幾位數的精確度。
為什麼我算出的條件數是無限大?因為該矩陣為奇異矩陣(行列式為 0),導致 \(\sigma_{\min} = 0\),且反矩陣 \(A^{-1}\) 並不存在。
這裡使用的是哪一種範數(norm)?本計算機採用以奇異值為基礎的 2-norm(譜)條件數。其他範數(如 1-norm、∞-norm)算出的數值可能會有所不同。