[線代] 怎麼解釋norm (jacobi method

看板Math作者 (洨大魯蛇ㄍ)時間10年前 (2015/12/03 05:17), 10年前編輯推噓8(8028)
留言36則, 3人參與, 最新討論串1/1
解線性方程AX=b jacobi疊代法 誤差是自己令的 要算向量的norm 我找到方法的誤差 他寫是 ||b-A Xk|| / ||b-AX0|| 其中 X0為起始值 Xk為第K次疊代結果 norm計算是f (||.||f) 想請教怎麼解釋 這個誤差 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.44.98.170 ※ 文章網址: https://www.ptt.cc/bbs/Math/M.1449091048.A.8C8.html ※ 編輯: loser113 (114.44.98.170), 12/03/2015 05:18:30 ※ 編輯: loser113 (114.44.98.170), 12/03/2015 05:25:56

12/03 10:21, , 1F
一般是看resudual, r_k = || b- Ax_k||, 當r_k夠小
12/03 10:21, 1F

12/03 10:22, , 2F
則說數值方法收斂。分母多除一個常數||b-Ax_0||是相
12/03 10:22, 2F

12/03 10:23, , 3F
對誤差的概念。
12/03 10:23, 3F

12/03 10:54, , 4F
看你找到的資料怎麼用這個誤差。 單純看這個式子
12/03 10:54, 4F

12/03 10:55, , 5F
個人覺得沒用處, 因為 <1> X_0 是 initial guess
12/03 10:55, 5F

12/03 10:57, , 6F
<2> 看誤差 or 收斂是算 X_(k+1) - X_(k)
12/03 10:57, 6F

12/03 10:58, , 7F
若 AX=b 無解, ||b-AX_k|| 最終收斂到何值是不一定
12/03 10:58, 7F

12/03 12:59, , 8F
若迭代法本身不收斂,看 x_(k+1) - x_k 也同樣情況
12/03 12:59, 8F

12/03 13:01, , 9F
在矩陣迭代法,第一步通常是確認迭代法是否會收斂,
12/03 13:01, 9F

12/03 13:02, , 10F
,如果會收斂就可以大方使用迭代法。
12/03 13:02, 10F

12/03 13:03, , 11F
然後收斂判定比較常使用r_k=b-Ax_k,比起用柯西,殘
12/03 13:03, 11F

12/03 13:04, , 12F
差更能表達數值解的收斂程度。如果是數值PDE、ODE等
12/03 13:04, 12F

12/03 13:05, , 13F
才比較常用x_(k+1)-x_k 這種判斷方式。這是我的見解
12/03 13:05, 13F

12/03 13:36, , 14F
樓上不對吧, 你說的 r_k 一般稱做 cost function
12/03 13:36, 14F

12/03 13:36, , 15F
目標是希望能找到一組 X, 使得 r 越大(小)越好
12/03 13:36, 15F

12/03 13:37, , 16F
cost function 本身的數值並不是拿來判斷收斂與否
12/03 13:37, 16F

12/03 14:10, , 17F
如果x_k 收斂到真實解, 那r_k 會收斂到0
12/03 14:10, 17F

12/03 14:12, , 18F
在我常用的matlab fortran solver, 都是在用b-Ax_k
12/03 14:12, 18F

12/03 14:14, , 19F
判定是否收斂。|b-Ax_k|<TOL|b|則迭代收斂,TOL<<1
12/03 14:14, 19F

12/03 14:18, , 20F
我這裡只針對 "解線性系統Ax=b 的矩陣迭代法"
12/03 14:18, 20F

12/03 14:19, , 21F
這不是我的專長領域,有錯誤請指教。
12/03 14:19, 21F

12/03 17:11, , 22F
若有程式這樣子寫, 建議換一套 tool or 自己刻 lib
12/03 17:11, 22F

12/03 17:11, , 23F
網路上 google 到的 matlab, 幾乎是用 norm(x-x0)
12/03 17:11, 23F

12/03 17:12, , 24F
或是 norm(x-x0)/norm(x) 來當斂散性判斷
12/03 17:12, 24F

12/03 17:14, , 25F
直觀想也很簡單,因為 cost 不一定是 monotonic
12/03 17:14, 25F

12/03 17:15, , 26F
所以 x 變化很小,不代表 cost(x) 也一定是變化很小
12/03 17:15, 26F

12/03 17:17, , 27F
就算是線性系統也一樣
12/03 17:17, 27F

12/03 17:30, , 28F
會用 norm(x-x0) 是在已知解的情況下吧。
12/03 17:30, 28F

12/03 17:31, , 29F
matlab內件的迭代法我看是檢查residual。IMSL也是
12/03 17:31, 29F

12/03 17:35, , 30F
residual也蠻直關的。If x_k->x then r_k->0
12/03 17:35, 30F

12/03 17:41, , 31F
前面已經說過了, r_k 收斂至何值不一定, 可能是 0
12/03 17:41, 31F

12/03 17:41, , 32F
也可能是 0.1, 1,...
12/03 17:41, 32F

12/03 17:45, , 33F
如果r_k 不收斂到0,那迭代法根本不收斂阿...
12/03 17:45, 33F

12/03 21:00, , 34F
不確定收斂 這是我找軟體R的
12/03 21:00, 34F

12/03 21:00, , 35F
因為我上網找其他的資訊 好像沒有人用這種誤差
12/03 21:00, 35F

12/03 21:00, , 36F
做收練標準 想問問要怎麼解釋 或幾何意義之類
12/03 21:00, 36F
文章代碼(AID): #1MNr_eZ8 (Math)