Re: [問題] 關於反矩陣inv計算爆值是正常的嗎?

看板Python作者 (傷心嗎?)時間9年前 (2016/07/12 04:23), 9年前編輯推噓0(001)
留言1則, 1人參與, 最新討論串4/4 (看更多)
※ 引述《ray0215 (❺❺❻❻)》之銘言: : 小弟我最近需要計算相關係數(correlation coefficient matri)矩陣的反矩陣 : 例如 : Martrix array([[ 1. , 0.92531576, 0.81998247, 0.92586894], : [ 0.92531576, 1. , 0.70974912, 0.72358554], : [ 0.81998247, 0.70974912, 1. , 0.72669914], : [ 0.92586894, 0.72358554, 0.72669914, 1. ]]) : 這樣用numpy.linalg.inv算出來的值 : 會計算出 : array([[ 6.51500296e+15, -3.18743561e+15, -7.89299760e+14, : -3.15207310e+15], : [ -3.18743561e+15, 1.55943840e+15, 3.86161323e+14, : 1.54213745e+15], : [ -7.89299760e+14, 3.86161323e+14, 9.56245323e+13, : 3.81877116e+14], : [ -3.15207310e+15, 1.54213745e+15, 3.81877116e+14, : 1.52502845e+15]]) : 每個都十五次方 : 我想應該不是正確解答吧@@ : 請問要怎麼解決 : 先謝謝版上的大大了 你的矩陣行列式趨近於零,在很多數值運算的程式中 因為精度可以到很細,所以趨近於零的值也可以算出來 而實際上它就是0了XD ,所以你的矩陣是奇異矩陣(singular matrix) 反矩陣是 A*B=I B是A的反矩陣 而pinv是A*B*A=A B則是pseudo inverse matrix 所以如果你要取反矩陣算出correlation matrix 用pinv(pseudo-inverse)就可以了(我碩士班就是做過類似的事情啊。) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.113.55.185 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1468268585.A.4BA.html ※ 編輯: starcloud (140.113.55.185), 07/12/2016 04:28:11

07/12 06:02, , 1F
聽到這個東西突然想起SVM推導過程...
07/12 06:02, 1F
文章代碼(AID): #1NX00fIw (Python)
文章代碼(AID): #1NX00fIw (Python)