Учитывая "T, общее число" и "N, количество дней", как разделить T на N так, чтобы n1 + n2 ... равнялось T на экспоненциальной кривой? - PullRequest
2 голосов
/ 14 июля 2010

Я создаю фиктивные данные для приложения и хочу имитировать экспоненциальный рост, а также знать окончательное число.Итак, вот предложение:

  • Дано 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]

Спасибо!

1 Ответ

4 голосов
/ 14 июля 2010

Если я правильно понимаю ваш вопрос, у вас есть процесс, который следует за экспоненциальным ростом, когда вы знаете конечное значение 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)
Надеюсь, это поможет!

...