包装的使用‘;Brobdingnag’;用R语言
我在使用Brobdingnag包时遇到了问题-在设置之后包装的使用‘;Brobdingnag’;用R语言,r,R,我在使用Brobdingnag包时遇到了问题-在设置之后 a2 <- as.brob(0.1)^1000, a2我可以用以下代码重现您的问题。一个答案可能是+而不是sum。补充:另一种方法是在求和之前将数据放入向量中 > library(Brobdingnag) > (a1 <- as.brob(0.1)^800) [1] +exp(-1842.1) > (a2 <- as.brob(0.1)^1000) [1] +exp(-2302.6) > &
a2 <- as.brob(0.1)^1000,
a2我可以用以下代码重现您的问题。一个答案可能是+
而不是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)
奇怪-我给包的创建者发了一封电子邮件,让我们看看他是否回答了。使用+符号而不是求和是一个问题,因为我有一个Brob矩阵,我想对它的行求和(多次),这意味着我必须添加“+”循环才能得到和-这并不可怕,但有点可怕ugly@user206903:矩阵不应该是问题。例如sum(as.brob(0.1)^c(1000800))
和sum(as.brob(0.1)^c(8001000))
都给出了相同(我认为正确)的结果。我将在上面补充这一点
> 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)
>
> 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)
> 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)