我正在为应用创建虚拟数据,并希望在知道最终数字的同时模拟指数增长。所以这是提案:
T
= 2000.事件发生的“计数”总数。N
= 7.星期几:7.days.ago.day..Time.now.day
。T
除以N
以使我们创建指数曲线的最简单公式是什么? 你如何解决这个问题,以便我可以学习如何处理实际的数学问题?我想将此公式应用于3个不同的T
:2000,1000和400.
更新
感谢Mathias的公式,我提出了这个:
# get "r"
# in math
x(t) = (1 + r) ^ t
x(7) = (1 + r) ^ 7 = 2000 # final value
r = (2000 ^ (1/7)) - 1 # solve for r
# in ruby
r = 2000**(1.0/7.0) - 1 = 1.96193629594517
# check
# in math
x(7) = (1 + r) ^ 7 = (1 + 1.96193629594517) ^ 7
# in ruby
(1 + 1.96193629594517)**7
#=> 1999.99999999998
# build curve
values = (1..7).inject([]) { |array, i| array << (1 + r)**i }
values = [2.96193629594517, 8.77306662123741, 25.9852644521882, 76.96669794067, 227.970456209519, 675.233968650155, 2000.0]
谢谢!
答案 0 :(得分:4)
如果我理解你的问题,你有一个跟随指数增长的过程,你知道最终值X,并且你是以离散的时间间隔观察过程。
当减少到离散的时间间隔时,指数增长作为几何级数前进,即
X(t + 1)= X(t)*(1 + r),其中r是增长率
为了推断增长,您需要知道起始值或速率。我假设你有X(0),初始值。在那种情况下,
X(T)= X(0)*(1 + r)^ T
你可以在r中解决,增长率:
(1 + r)=(X(T)/(X(0))^(1 / T)
希望这有帮助!