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

作者: starcloud (傷心嗎?)   2016-07-12 04:23:01
※ 引述《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)就可以了(我碩士班就是做過類似的事情啊。)
作者: s860134 (s860134)   2016-07-12 06:02:00
聽到這個東西突然想起SVM推導過程...

Links booklink

Contact Us: admin [ a t ] ucptt.com