2010-07-14 98 views
2

我正在为应用程序创建虚拟数据,并且想要模拟指数增长的同时也知道最终的数字。所以这里是建议:给定“T,总数”和“N,天数”,如何将T除以N使得n1 + n2 ...等于指数曲线中的T?

  • 鉴于T = 2000.事件将发生的“计数”总数。
  • N = 7.星期几:7.days.ago.day..Time.now.day
  • T除以N的最简单公式是什么,以便我们创建一个指数曲线?

你如何去解决这个问题,我可以学习如何处理实际的数学问题?我想这个公式适用于3个不同的T的:2000年,1000和400

更新

由于马蒂亚斯“公式,我想出了这个:

# 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] 

谢谢!

回答

4

如果我正确理解你的问题,你就有一个遵循指数增长的过程,在这里你知道最终的值X,并且你正在以离散的时间间隔观察过程。
当减小到离散时间间隔时,指数增长作为几何系列进行,即,其中r是增长率,其中x是几何系数,X(t + 1)= X(t)*(1 + r)。
为了推断增长,您需要知道起始价值或费率。我假设你有X(0),初始值。在这种情况下,您可以在r中求解,增长率为: (1 + r)=(X(T)/((1) X(0))^(1/T)
希望这有助于!

相关问题