推 sin55688 : 一般是看resudual, r_k = || b- Ax_k||, 當r_k夠小 12/03 10:21
→ sin55688 : 則說數值方法收斂。分母多除一個常數||b-Ax_0||是相 12/03 10:22
→ sin55688 : 對誤差的概念。 12/03 10:23
→ doom8199 : 看你找到的資料怎麼用這個誤差。 單純看這個式子 12/03 10:54
→ doom8199 : 個人覺得沒用處, 因為 <1> X_0 是 initial guess 12/03 10:55
→ doom8199 : <2> 看誤差 or 收斂是算 X_(k+1) - X_(k) 12/03 10:57
→ doom8199 : 若 AX=b 無解, ||b-AX_k|| 最終收斂到何值是不一定 12/03 10:58
推 sin55688 : 若迭代法本身不收斂,看 x_(k+1) - x_k 也同樣情況 12/03 12:59
→ sin55688 : 在矩陣迭代法,第一步通常是確認迭代法是否會收斂, 12/03 13:01
→ sin55688 : ,如果會收斂就可以大方使用迭代法。 12/03 13:02
→ sin55688 : 然後收斂判定比較常使用r_k=b-Ax_k,比起用柯西,殘 12/03 13:03
→ sin55688 : 差更能表達數值解的收斂程度。如果是數值PDE、ODE等 12/03 13:04
→ sin55688 : 才比較常用x_(k+1)-x_k 這種判斷方式。這是我的見解 12/03 13:05
→ doom8199 : 樓上不對吧, 你說的 r_k 一般稱做 cost function 12/03 13:36
→ doom8199 : 目標是希望能找到一組 X, 使得 r 越大(小)越好 12/03 13:36
→ doom8199 : cost function 本身的數值並不是拿來判斷收斂與否 12/03 13:37
推 sin55688 : 如果x_k 收斂到真實解, 那r_k 會收斂到0 12/03 14:10
→ sin55688 : 在我常用的matlab fortran solver, 都是在用b-Ax_k 12/03 14:12
→ sin55688 : 判定是否收斂。|b-Ax_k|<TOL|b|則迭代收斂,TOL<<1 12/03 14:14
推 sin55688 : 我這裡只針對 "解線性系統Ax=b 的矩陣迭代法" 12/03 14:18
→ sin55688 : 這不是我的專長領域,有錯誤請指教。 12/03 14:19
推 doom8199 : 若有程式這樣子寫, 建議換一套 tool or 自己刻 lib 12/03 17:11
→ doom8199 : 網路上 google 到的 matlab, 幾乎是用 norm(x-x0) 12/03 17:11
→ doom8199 : 或是 norm(x-x0)/norm(x) 來當斂散性判斷 12/03 17:12
→ doom8199 : 直觀想也很簡單,因為 cost 不一定是 monotonic 12/03 17:14
→ doom8199 : 所以 x 變化很小,不代表 cost(x) 也一定是變化很小 12/03 17:15
→ doom8199 : 就算是線性系統也一樣 12/03 17:17
推 sin55688 : 會用 norm(x-x0) 是在已知解的情況下吧。 12/03 17:30
→ sin55688 : matlab內件的迭代法我看是檢查residual。IMSL也是 12/03 17:31
推 sin55688 : residual也蠻直關的。If x_k->x then r_k->0 12/03 17:35
→ doom8199 : 前面已經說過了, r_k 收斂至何值不一定, 可能是 0 12/03 17:41
→ doom8199 : 也可能是 0.1, 1,... 12/03 17:41
推 sin55688 : 如果r_k 不收斂到0,那迭代法根本不收斂阿... 12/03 17:45
→ loser113 : 不確定收斂 這是我找軟體R的 12/03 21:00
→ loser113 : 因為我上網找其他的資訊 好像沒有人用這種誤差 12/03 21:00
→ loser113 : 做收練標準 想問問要怎麼解釋 或幾何意義之類 12/03 21:00