[問題] singular 問題已回收

看板MATLAB作者 (原來我有兩年沒改暱稱)時間16年前 (2009/08/26 18:50), 編輯推噓2(203)
留言5則, 4人參與, 最新討論串1/2 (看更多)
不好意思請問各位一下 假設我在程式碼裡使用迴圈得到一個矩陣(累加的方式) A = -0.7790 -0.9827 0 -0.9827 -1.2397 0 0 0 -0.9093 之後求他的反矩陣inv(A)卻跑出錯誤訊息: Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = 3.502134e-017. 但還是有值 inv(A) = 1.0e+015 * 7.1670 -5.6813 0 -5.6813 4.5036 0 0 0 -0.0000 不過後來直接在主視窗計算A的反矩陣並不會跑出錯誤訊息,而且兩者的值相差滿多的 inv(A) = 1.0e+004 * -4.5898 3.6383 0 3.6383 -2.8841 0 0 0 -0.0001 這是怎麼回事呢?? 我知道降打好像有點太簡潔了,不過請各位板友給我一些不同的意見 謝謝了! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.201.82

08/26 18:55, , 1F
det(A)太接近0, 等於0的話就不會有inv(A)
08/26 18:55, 1F
※ 編輯: terry1122 來自: 140.116.201.82 (08/26 19:20) ※ 編輯: terry1122 來自: 140.116.201.82 (08/26 19:41)

08/27 08:49, , 2F
他的警告是指A矩陣太病態,不保證inv(A)準確,你之後直接
08/27 08:49, 2F

08/27 08:51, , 3F
計算A是否是用手打的,A的病態可能是後面位數造成
08/27 08:51, 3F

08/27 09:04, , 4F
對,我後面是為了驗算他到底有多大誤差所以自己key上去的
08/27 09:04, 4F

09/15 09:13, , 5F
若要得到較好的結果可以試試其他的解法如高斯轉軸消去
09/15 09:13, 5F
文章代碼(AID): #1AbHDaDt (MATLAB)
討論串 (同標題文章)
文章代碼(AID): #1AbHDaDt (MATLAB)