gpt4 book ai didi

r - R语言中 ‘Brobdingnag’包的使用

转载 作者:行者123 更新时间:2023-12-04 12:11:39 25 4
gpt4 key购买 nike

我在使用 Brobdingnag 包时遇到问题 - 设置后

a2 <- as.brob(0.1)^1000, 

a2 = exp(-2302.6)
a1 <- as.brob(0.1)^800, 

a1 = exp(-1842.1)

我使用 sum(a1,a2) 和 sum(a2,a1) 得到不同的结果 - 每次结果等于给 sum 函数的第一个参数。似乎 sum 没有被 Brobdingang 包覆盖,即使它应该覆盖?或者也许我做错了什么?

我问这个问题也是作为对我写的另一个问题的回复,见 here

[编辑:包作者的回答]

嗨丹

这绝对是包中的一个错误;
感谢您的报告!
不幸的是,纠正它需要我相当多的时间
时间。

同时,请在下面找到常用的 R 成语
计算两个brobs的总和:
> a1 <- as.brob(0.1)^800
> a2 <- as.brob(0.1)^1000
> a1+a2


> a1 <- as.brob(0.1)^800
> a2 <- as.brob(0.1)^1000


> a1+a2
[1] +exp(-1842.1)
> a2+a1
[1] +exp(-1842.1)

> sum(cbrob(a1,a2))
[1] +exp(-1842.1)
> sum(cbrob(a2,a1))
[1] +exp(-1842.1)
>

最佳答案

我可以使用以下代码重现您的问题。一个答案可能是 +而不是 sum .补充:另一种方法是在求和之前将数据放入向量中

> library(Brobdingnag)
> (a1 <- as.brob(0.1)^800)
[1] +exp(-1842.1)
> (a2 <- as.brob(0.1)^1000)
[1] +exp(-2302.6)
>
> a1 + a2
[1] +exp(-1842.1)
> a2 + a1
[1] +exp(-1842.1)
>
> sum(a1, a2)
[1] +exp(-1842.1)
> sum(a2, a1)
[1] +exp(-2302.6)
>
> sum(as.brob(0.1)^c(1000,800))
[1] +exp(-1842.1)
> sum(as.brob(0.1)^c(800,1000))
[1] +exp(-1842.1)

好像不能用 sum(,)像那样。这里有一些类似的奇怪结果,有更实用的数字
> as.brob(0.1) + as.brob(1)           # OK, gives exp(ln(1.1))
[1] +exp(0.09531)
> as.brob(1) + as.brob(0.1) # OK, gives exp(ln(1.1))
[1] +exp(0.09531)
> sum(as.brob(c(0.1, 1))) # OK, gives exp(ln(1.1))
[1] +exp(0.09531)
> sum(as.brob(c(1, 0.1))) # OK, gives exp(ln(1.1))
[1] +exp(0.09531)
>
> sum(as.brob(0.1), as.brob(1)) # not OK, gives first term exp(ln(0.1))
[1] +exp(-2.3026)
> sum(as.brob(1), as.brob(0.1)) # not OK, gives first term exp(ln(1))
[1] +exp(0)

关于r - R语言中 ‘Brobdingnag’包的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5822770/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com