[問題] 計算相對誤差平均值

看板Math作者 (眾生都是未來佛)時間9年前 (2016/09/28 12:47), 9年前編輯推噓2(207)
留言9則, 2人參與, 最新討論串1/1
我有一個電腦模擬要計算相對誤差的平均值,也就是E[Δh/h]。 我的作法是計算每個Δh/h取樣值,並累積後最後再除樣本數。 但一個問題是Δh或h都個別有可能趨近0, 所以無論是算h/Δh或算Δh/h,都有可能得到很大的值, 又累積好幾筆後常常得到無窮大值Inf。 請問有沒有一種轉換T可以把這種很大的Δh/h, 轉成較趨近0的值(這樣才不容易累加爆掉), 並且仍維持相對的大小關係: Δh1/h1 < Δh2/h2 -> T(Δh1/h1) < T(Δh2/h2) ? 我想過用log,但不幸Δh/h可能是0,MATLAB中log(0) = -Inf, 就無法作圖...(而且h/Δh也有機會是0) -- 楞嚴咒(附注音): http://1drv.ms/1c0YbNt -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.161.193.81 ※ 文章網址: https://www.ptt.cc/bbs/Math/M.1475038079.A.E4C.html ※ 編輯: zxvc (118.161.193.81), 09/28/2016 12:50:35 ※ 編輯: zxvc (118.161.193.81), 09/28/2016 12:52:33

09/28 13:02, , 1F
Δh趨近 0 可能還好, h 趨近 0 要小心浮點數精準度
09/28 13:02, 1F

09/28 13:02, , 2F
不管是你的誤差計算或模擬都是一樣的
09/28 13:02, 2F

09/28 13:03, , 3F
這個精準度很有可能是為何你的Δh/h會很大的原因
09/28 13:03, 3F

09/28 13:14, , 4F
看你的 Δh/h 有沒有更好的算法
09/28 13:14, 4F

09/28 13:16, , 5F
若實際上精確值也會爆掉,嘗試忽略這些 sample
09/28 13:16, 5F

09/28 13:16, , 6F
若忽略這些 sample 會讓結果不合預期,這個問題可能
09/28 13:16, 6F

09/28 13:17, , 7F
本身就不是一個 stable 的問題
09/28 13:17, 7F

09/28 13:30, , 8F
至於你考慮的轉換,直接把 Δh/h 除個很大的值就好
09/28 13:30, 8F

09/28 13:31, , 9F
但相對的,本來正常的Δh/h就會變不正常
09/28 13:31, 9F
謝謝各位建議。 後來我發現我程式有bug,才導致有些h為0。修掉後就沒有Inf的問題 XD ※ 編輯: zxvc (118.161.193.81), 09/28/2016 18:50:44
文章代碼(AID): #1Nwqj_vC (Math)