在R中创建具有高上限的日志间隔数

时间:2018-04-24 09:48:35

标签: r

我想创建一组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的对数空间数字,这些数字不会使集合无穷大中的大多数数字生成,并且实际上可以将零作为起点?

1 个答案:

答案 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