Re: [問題] 有關矩陣的determine and inverse

看板Programming作者 (沒有怎麼辦)時間18年前 (2006/10/16 00:34), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/3 (看更多)
※ 引述《Robert0512 (天天衝浪三國無雙)》之銘言: : 因為作業關係 : 必須要用到矩陣的determine和inverse : 但不論算哪一個好像都O(n!) or O(n^2(n-1)!) : 算10by10就要幾秒鐘了 : 算到13by13已經是分鐘計算了 : 15by15根本就算不出來orz (我等了1小時還沒有出來 哭) : 請問有比較快的方法嗎? : 聽說是可以連結matlab : 但我沒有matlab orz : 在這跪求有效率的計算方法 : 拜託各位神人了>< : PS 忘了說 我是用C 不知你是不是直接用定義去算 如果是 那會很慢 可以先用高斯消去法把矩陣消成上三角矩陣U 這時候算出對角乘積 即為det 算這個的時候 同時準備一個I 這個I的作用是原矩陣作什麼運算 這個I就作什麼運算 接著再把U變成I 而原本準備的I就變成inverse了 如 1 2 3 4 5 6 7 8 10 準備一個I 1 0 0 0 1 0 0 0 1 開始轉成U 1 2 3 0 -3 -6 0 0 1 det=-3 同時I也作相同的列運算 (第一列* -4加到第二列....等等) 最後 1 2 3 4 5 6 7 8 10 會變成 1 0 0 0 1 0 0 0 1 而I變成的就是inverse 此演算法為n^2 還有 為了不讓浮點數造成錯誤 需排列一下 如 10000000 a b 1 c d 10000 e f 排成 10000000 a b 10000 e f 1 c d 最後記得處理一下就好 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.58.5.192 ※ 編輯: Arton0306 來自: 210.58.5.192 (10/16 00:48)
文章代碼(AID): #15CcC3Fr (Programming)
文章代碼(AID): #15CcC3Fr (Programming)