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

看板Python作者 (alen3321)時間8年前 (2016/06/23 09:03), 8年前編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/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]]) : 每個都十五次方 : 我想應該不是正確解答吧@@ : 請問要怎麼解決 : 先謝謝版上的大大了 你推文說要計算R^(-1)-I 的值 R = correlation matrix I = idendity matrix 處理矩陣時 有一個原則 能不要反矩陣 就不要算 因為算反矩陣很昂貴 又不穩定 你原本題目應該是: R ( X + I ) = I ,其中X為你要求的矩陣. 那麼,這樣處理比較穩定: R X = (I - R) └已知┘ └已知┘ X 切成column表達: X = [x1 │x2 │x3...] ,其中x1為向量,x2,x3...亦同 (I-R)定義成 B 好了 也切成column: (I-R) =def= B = [b1│b2│b3...] 原問題變成 R ‧ x1 = b1 (nxn) (nx1) (nx1) →維度驗算 R ‧ x2 = b2 R ‧ x3 = b3 每個問題用 BLAS 算完後 再把 x1,x2,x3...拼回來 印象中是這樣,幾年前處理的印象... p.s. 1.回文如有錯請高手指正 已經有一段時間沒處理matrix了 謝謝 2.我沒實際算...如果算出來是合理值 那就是你原本用inv時會有誤差造成 行列式小時,算inv的誤差會累積 通常基礎線性代數不會講 數學系的純數課程也不會講 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.228.190.212 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1466643808.A.CEA.html ※ 編輯: alen332l (36.228.190.212), 06/23/2016 09:06:25 ※ 編輯: alen332l (36.228.190.212), 06/23/2016 09:07:34 ※ 編輯: alen332l (36.228.190.212), 06/23/2016 09:11:36

06/23 17:06, , 1F
06/23 17:06, 1F
文章代碼(AID): #1NQpLWpg (Python)
討論串 (同標題文章)
文章代碼(AID): #1NQpLWpg (Python)