[問題] R中數值積分函數誤差項來源

作者: ming790925 (MING)   2015-06-15 23:40:50
[問題類型]:
程式諮詢(我想用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
[關鍵字]:
數值積分
絕對誤差
作者: andrew43 (討厭有好心推文後刪文者)   2015-06-16 00:11:00
不可能知道沒錯,但R只是給你一個誤差的上限。這個上限是可以知道的。例如積一個遞增函數,用矩形法求數值積分,一個會是上限,另一個會是下限。已知切幾個矩形,你就能知道上限、下限,這差距就一定誤差還小了。不知道這樣說你了不了解?實際使用的方法我並不清楚,只是提供一個例子說明。
作者: ming790925 (MING)   2015-06-16 00:40:00
所以是計算上界,那請問abs.tol參數是改變切多細嗎?使之達到足夠小的誤差bound嗎
作者: andrew43 (討厭有好心推文後刪文者)   2015-06-16 00:43:00
我不確定,但可能也和浮點數精確度有關係。要改切多細可以調subdivisions看看。
作者: ming790925 (MING)   2015-06-16 00:47:00
所以他才會寫estimate of the modulus of the absolutte error, 有點像是說error的估計值<我這樣想法應該沒錯吧? 感謝a大

Links booklink

Contact Us: admin [ a t ] ucptt.com