作者markoo (上行下笑阿..)
看板NCTU-STAT98G
標題0723 統算 補充(關於反矩陣)
時間Fri Jul 24 13:04:50 2009
同學, 昨天上課中有提到, 如果矩陣X的X[0][0]值為0,(或非常接近0)
則無法使用matrix.h中的matrix_inverse來求反矩陣,
因為高斯消去法,會使得分母為0,(或分母非常接近0造成誤差太大)
這種情況就建議使用matrix_inverse2來求反矩陣,
而同樣的再求行列式值時, 同樣會先經過高斯消去法,
但這時候如果只是單純求行列式值, 我們是可以經由判斷X[0][0]是否為0,
來進行換行的動作
矩陣一經換行 會影響最後的反矩陣值, 但並不會影響其行列式值
所以同學可以針對高斯消去法去改寫避免掉分母為0的問題
matrix_inverse 執行反矩陣速度較快
matrix_inverse2執行反矩陣速度較慢
所以同學也可以考慮折衷的辦法,
例如把matrix_inverse2寫在matrix_inverse內,
然後給個判斷句,
Ex: if 矩陣執行高斯消去法的過程中, 沒有經過換行的動作,
則執行matrix_inverse即可
else 執行matrix_inverse2.
以上 同學盡量多想多寫吧:)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.166.49.79