sách gpt4 ai đã đi

r - 集成()给出了完全错误的数字

In lại 作者:行者123 更新时间:2023-12-03 14:46:10 29 4
mua khóa gpt4 Nike

集成()给出了非常错误的答案:

integrate(function (x) dnorm(x, -5, 0.07), -Inf, Inf, subdivisions = 10000L)
# 2.127372e-23 with absolute error < 3.8e-23

返回值显然应该是 1(正常分布集成为 1),但是集成()返回的数字小得离谱,错误报告,并且没有警告......

有任何想法吗?

这似乎是默认的 integrate()是可怕的 buggy ......我只是偶然发现了这个!有没有 可靠 R包来计算数值积分?

biên tập:我试过包 pracma我看到了同样的问题! :
require(pracma)
integral(function (x) dnorm(x, -5, 0.07), -Inf, Inf)
# For infinite domains Gauss integration is applied!
# [1] 0

biên tập:嗯...深入挖掘,似乎他很难找到数值 > 0 的函数的非常窄的域。当我将限制设置为某些(非常接近 0, 1)分位数时,它开始工作:
integral(function (x) dnorm(x, -5, 0.07), qnorm(1e-10, -5, 0.07), qnorm(1 - 1e-10, -5, 0.07))

但无论如何,这是非常可怕的问题……想知道是否有任何补救措施。

1 Câu trả lời

来自在线文档:“像所有数值积分程序一样,这些程序在有限的点集上评估函数。如果函数在其几乎所有范围内都近似恒定(特别是零),则结果和误差估计可能会大错特错。”

我认为这意味着“警告清空者”。我注意到在您的示例中,绝对误差大于积分值。鉴于您知道所有 x 的 f(x) > 0,至少它让您有机会发现某些地方出了问题。捕获机会取决于你。

integrate( function(x) dnorm(x, -5, 0.07), -20, 10, subdivisions=1000L) 

Đưa cho
1 with absolute error < 9.8e-07

在线文档中的警告对我说,鉴于您对错误的明显定义,您的问题的答案是“不,没有可靠的数值积分方法。不是在 R 或任何其他语言中”。不应盲目使用数值积分技术。用户需要检查他们的输入是否合理,输出是否合理。仅仅因为计算机给了你答案而相信答案是不好的。

另见 this post .

关于r - 集成()给出了完全错误的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62122505/

29 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com