我想创建一组10个对数空间的数字,从零到一个大数M,比如M = 60,000,例如在R中。
首先,我尝试使用包lseq()
中的emdbook
。然而,lseq
的问题在于它无法处理0作为起点。 (这是因为它会尝试计算log(0)然后失败)。
接下来,我尝试以下列方式使用logspace()
包中的pracma
:
Numbers <- log(logspace(0,M,10),base=10)
这适用于M值高达约340.从那时起,集合中的数字将变为无穷大,因为指数函数变得太大。
在R中是否有任何其他方法可以创建一组从0到大数M的对数空间数字,这些数字不会使集合无穷大中的大多数数字生成,并且实际上可以将零作为起点?
答案 0 :(得分:0)
如果我错了,请纠正我,但是你不能只是为了更低的数字来计算日志空间然后再乘以?它们应该是线性相关的吗?看看这个输出:
library(pracma)
> log(logspace(0,60, 10), base = 10)[1:5]
[1] 0.000000000000000 6.666666666666667 13.333333333333334 20.000000000000000 26.666666666666668
> log(logspace(0,600, 10), base = 10)[1:5]
[1] 0.000000000000000 66.666666666666671 133.333333333333343 200.000000000000000 266.666666666666686
> x1 <- (log(logspace(0,600, 10), base = 10)*100)[2]
> x1
[1] 6666.666666666667
> x2 <- seq(0 , 9, 1)*x1
> x2
[1] 0.000000000000 6666.666666666667 13333.333333333334 20000.000000000000 26666.666666666668
[6] 33333.333333333336 40000.000000000000 46666.666666666672 53333.333333333336 60000.000000000000