Mathematica 上實作SVD奇異值分解

By | 2017-07-05

SVD的相關原理可以參考SVD原理[3],而SVD具有以下形式:

A=UƩVT

其中 U 是 m x m 階,V 是 n x n 階,Ʃ 是 m x n 階。方陣 U 和 V 是實正交矩陣,Ʃ 是 (類) 對角矩陣,
UVƩ的相關算法可以參考[1][2].
雖然這類的程式,Mathematica等,都已經有相關函式可以使用,
也許在這資訊發達的年代,站在巨人的肩榜很重要,
但如果時間允許去撰寫這樣一個程式可以幫助暸解其原理,
也許會因此而有所收獲也不一定.

在這次試驗用了A.txt的矩陣,最後結果如下:
Selection_400
reference:
[1]http://web.mit.edu/be.400/www/SVD/Singular_Value_Decomposition.htm
[2]http://people.revoledu.com/kardi/tutorial/LinearAlgebra/SVD.html
[3]https://ccjou.wordpress.com/2009/09/01/%E5%A5%87%E7%95%B0%E5%80%BC%E5%88%86%E8%A7%A3-svd/

相關程式碼可以參考:
https://github.com/DesmondWu/mathematica/tree/master/svd

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *