看板 R_Language 關於我們 聯絡資訊
[問題類型]: 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來) [軟體熟悉度]: 入門(寫過其他程式,只是對語法不熟悉) [問題敘述]: 大家好! 有一個關於數值分析的問題想不通,想請教一下。 使用數值積分的時候, 如果我們知道真實積分值的時候, 可以計算 absolute error=| true answer - approximation | 來看實際上誤差遞減程度與理論是否相同。 但,那都是我們知道 true answer 時候才能計算, 因此,在我們不知道 true answer 時候,應該就不會有 absolute error 出現才對。 但是我最近使用 R 語言中的積分函數 integrate( ) 他都有參數是有關誤差的容忍 rel.tol : relative accuracy requested. abs.tol : absolute accuracy requested. (https://stat.ethz.ch/R-manual/R-devel/library/stats/html/integrate.html) (http://www.hep.by/gnu/r-patched/r-exts/R-exts_143.html#SEC143) 甚至 output 也會給我 abs.error : estimate of the modulus of the absolute error. 所以我有點想不通,如果他不知道真實函數,他要如何才能計算出absolute error呢? 麻煩各位了! [程式範例]: > integrate(dnorm, -1.96, 1.96) 0.9500042 with absolute error < 1e-11 [環境敘述]: > sessionInfo() R version 3.1.0 (2014-04-10) Platform: x86_64-w64-mmw32/x64 (64-bit) locale: [1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252 [3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C [5] LC_TIME=English_United States.1252 attached base packages: [1] stats graphics grDevices utils datasets methods base loaded via a namespace (and not attached): [1] tools_3.1.0 [關鍵字]: 數值積分 絕對誤差 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.35.170.70 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1434382857.A.161.html ※ 編輯: ming790925 (114.35.170.70), 06/15/2015 23:48:52
andrew43: 不可能知道沒錯,但R只是給你一個誤差的上限。 06/16 00:11
andrew43: 這個上限是可以知道的。例如積一個遞增函數, 06/16 00:13
andrew43: 用矩形法求數值積分,一個會是上限,另一個會是下限。 06/16 00:14
andrew43: 已知切幾個矩形,你就能知道上限、下限,這差距就一定 06/16 00:15
andrew43: 誤差還小了。不知道這樣說你了不了解? 06/16 00:16
andrew43: 實際使用的方法我並不清楚,只是提供一個例子說明。 06/16 00:18
ming790925: 所以是計算上界,那請問abs.tol參數是改變切多細嗎? 06/16 00:40
ming790925: 使之達到足夠小的誤差bound嗎 06/16 00:41
andrew43: 我不確定,但可能也和浮點數精確度有關係。 06/16 00:43
andrew43: 要改切多細可以調subdivisions看看。 06/16 00:44
ming790925: 所以他才會寫estimate of the modulus of the absolut 06/16 00:47
ming790925: te error, 有點像是說error的估計值< 06/16 00:47
ming790925: 我這樣想法應該沒錯吧? 感謝a大 06/16 00:48