矩陣分解 (加法篇)
引言
分解的思想其實並不古老, 而且大家都熟悉的,把複雜的分而治之,然後再組合起來。
分解有什麼好處?
類比的看, 我們知道整數的分解可以利用乘法也可以利用加法。譬如我們玩過的遊戲24點, 就是利用加法進行分解和整合。 這種分解很重要的是計算上的便利性!
而質數(素數)因子分解, 又是另外一種方式的分解。 而這種分解,重要的是對數本身理解上的便利性。 而理解上的便利, 又帶來了計算上的便利。
那麼,類比到矩陣, 也有加法和乘法的兩種分解。
矩陣的加法分解
三種經典分解
最經典的是雅克比Jacobi方法, 將一個矩陣分為對角陣和非對角陣的部分。
類似的也有高斯-賽德爾Gauss–Seidel方法,分解成上三角和下三角陣之後。
更進一步, 我們可以有逐次超松馳迭代法Successive Over Relaxation (SOR), 更進一步分解成三部分, 對角陣和上下三角形。 同時增加權重調整分解後的比例。
這樣的分解, 利用內在的等式應有的平衡性和不動點收斂理論, 可以快速迭代。
如何理解這種分解?
首先對x的拆分到等式左右兩邊之後, 可以看成是找到y=x和另外一個函數的交點,再根據不動點收斂理論(參考 收斂率概述 (Overview of Rates of Convergence)), 就可以進行迭代求解了。 下面可以看一下不動點理論告訴我們,並不是任何分解都能收斂的!
所以, 在雅克比方法裡面, 要求譜半徑小於1:
對於譜半徑 和 矩陣範數直接的關係聯繫起來去理解。
然後,可以通過不動點理論, 要求曲線的斜率絕對值不大於1, 這樣直觀去理解可收斂性。
小結:
這裡通過簡單類比, 分析了矩陣分解的加法的策略。 下次, 我們分析矩陣分解乘法的策略,常見的有LU, LDL, QR, SVD分解。 那麼這些分解, 類比的來說為什麼容易計算的同時, 還可以方便對矩陣的認識呢?
參考:
https://en.wikipedia.org/wiki/Matrix_splitting
推薦閱讀: