大家好,我在R中的代码有问题,我想运行整数代码,但代码不工作。有人能帮助我吗?
retensi = 1136074
b = 1/1.230219e-07
sx = function(x)
{exp(-x/b)}
integrate(sx, retensi, Inf)
当我运行这个代码,ruslt是错误Error in integrate(sx, retensi, Inf) : the integral is probably divergent
我不明白,我犯的错误在哪里可以有人帮助我吗?请告诉我正确的代码的家伙详细信息
重点是如何在RStudio中求解这个积分
2条答案
按热度按时间fcg9iug31#
我认为问题在于,表达式
exp(-x/b)
在x值较大时的值太小,以至于你遇到了浮点运算的极限,例如:实际上,快速手动二进制搜索显示大于6,056,915,224的数字将返回0
这意味着,如果积分的上限设置为6,056,915,224,您将获得积分的最佳近似值:
我们可以通过简单地求出表达式的不定积分来确认这是正确的,即:
-b e^(-x/b) + c
,并且注意当x无限大时这是0,因此手动计算是:如果我们仍然不确定,可以在Wolfram Alpha中确认
9rbhqvlz2#
retensi
到a
的积分加上a
到Inf的积分求和,得到a
。我们可以通过尝试10^i,i = 7,8,...,找到a
。代码在第一个a
处停止。所以当a = 10^9时,从
a
到Inf
的积分基本上为零,所以我们可以计算从retensi
到a = 10^9的积分利用这个符号化的结果
下面的答案与上述两个答案一致。