[问题] 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