Re: [問題] 高斯消去法流程細節

看板Prob_Solve (計算數學 Problem Solving)作者 (-858993460)時間13年前 (2011/11/18 09:59), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
你要先有一個概念就是: 電腦上的浮點數計算只會取有限位數 因此會有計算精確度的問題 來看這個例子 (小修改自我之前修數值方法這門課上提到的例子) 這是一個很簡單的 2x2 聯立方程 [10^-5 2] [x1] = [2] [ 1 3] [x2] [4] 做消去法將第一列乘以 10^5 由第二列減去 第二列剩下的元素由 3 - 2 * 10^5 給出 假設這個計算精確度是五位有效十進位的話 正確的結果 -199997 會被近似成 -2.0000*10^5 而等號右邊 減下來的結果是 4-2*10^5 也近似成 -2.0000*10^5 於是消去後方程會變成 [10^-5 2 ] [x1] = [ 2 ] [ 0 -2*10^5] [x2] [-2*10^5] 於是我們會得到 x2 = (-2*10^5)/(-2*10^5) = 1.0 然後 x1 = (2 - 2 * 1.0)/10^-5 = 0 但是!這個聯立方程組 10^-5 x1 + 2 x2 = 2 x1 + 3 x2 = 4 它的精確解其實是 x1 = 200000/199997, x2 = 199996/199997 都是和 1 很接近的數 x2 還勉強可接受 但 x1 就差遠了.... 這就是所謂的「數值穩定度」 你可以試著計算一下 當反過來用第二列去消第一列時得到的解就好很多 因此書上那個演算法就是考慮到數值穩定度的問題 才會有「選擇絕對值最大的那一列 pivot」這一步 在一些計算步驟很多的演算法當中如果牽扯到浮點數都要注意這個問題 更多關於這類問題的例子可以看看冼老師的文章 http://blog.dcview.com/article.php?a=VmgBZFE5AzI%3D -- いああオレたちには見えてるモノがあるbきっと誰にも奪われないモノがあるはずさ開口一番一虚一実跳梁跋扈形影相弔yL羊頭狗肉東奔西走国士無双南柯之夢 歪も ぶ  意味がないと思えるコトがあるPきっとでも意図はそこに必ずある んの く 依依恋恋空前絶後疾風怒濤有無相生H急転直下物情騷然愚者一得相思相愛 だが ろ 無意味じゃない6あの意図 恋た で 有為転変死生有命蒼天已死黄天當立 !!6五里霧中解散宣言千錯万綜則天去私 のり -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.28.91

11/18 12:29, , 1F
感謝 L 大說明,沒舉這例子真沒想到.感謝。
11/18 12:29, 1F
文章代碼(AID): #1EnRlkgw (Prob_Solve)
文章代碼(AID): #1EnRlkgw (Prob_Solve)