2008-04-06 22:39:45
行列の特異値分解をやってみた。RとPythonで。あ、結果が違うじゃないか。と思ったら、表示方法が違うのだった。道理で計算が合わないと思った。
・Rで特異値分解
> testmtx [,1] [,2] [,3] [1,] 1 3 5 [2,] 2 4 6 > svd(testmtx) $d [1] 9.5255181 0.5143006 $u [,1] [,2] [1,] -0.6196295 -0.7848945 [2,] -0.7848945 0.6196295 $v [,1] [,2] [1,] -0.2298477 0.8834610 [2,] -0.5247448 0.2407825 [3,] -0.8196419 -0.4018960
・pythonで特異値分解(ipython画面)
In : mtx Out: matrix([[1, 3, 5], [2, 4, 6]]) In : svd(mtx) Out: (array([[-0.61962948, -0.78489445], [-0.78489445, 0.61962948]]), array([ 9.52551809, 0.51430058]), array([[-0.2298477 , -0.52474482, -0.81964194], [ 0.88346102, 0.24078249, -0.40189603], [ 0.40824829, -0.81649658, 0.40824829]]))ああ、大変な目に遭った。