Как определить формулу для времени выполнения с учетом количественных данных, Excel, трендов, моделирования Монте-Карло - PullRequest
1 голос
/ 12 июля 2009

Могу ли я получить вашу помощь по математике и, возможно, по Excel?

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

        200 400 600 800 1000    1200    1400    1600    1800    2000
20000   15.627681   30.0968663  44.7592684  60.9037558  75.8267358  90.3718977  105.8749983 121.0030672 135.9191249 150.3331682
40000   31.7202111  62.3603882  97.2085204  128.8111731 156.2443206 186.6374271 218.324317  249.2699288 279.6008184 310.9970803
60000   47.0708635  92.4599437  138.874287  186.0576007 231.2181381 280.541207  322.9836878 371.3076757 413.4058622 459.6208335
80000   60.7346238  120.3216303 180.471169  241.668982  300.4283548 376.9639188 417.5231669 482.6288981 554.9740194 598.0394434
100000  76.7535915  150.7479245 227.5125656 304.3908046 382.5900043 451.6034296 526.0730786 609.0358776 679.0268121 779.6887277
120000  90.4174626  179.5511355 269.4099593 360.2934453 448.4387573 537.1406039 626.7325734 727.6132992 807.4767327 898.307638

Как теперь я могу придумать функцию для T (время в секундах) в виде выражения числа обязателей O и количества итераций I

Спасибо

Ответы [ 4 ]

2 голосов
/ 12 июля 2009

Я не совсем уверен в данных, связанных с конструкцией / представлением вопроса.

Предположим, вы ищете y = f(x). Если вы загружаете данные в Excel, вы можете использовать методы SLOPE и INTERCEPT в диапазонах данных, чтобы получить выражение вида

y = mx+c

и, следовательно, линейная функция.

Если вы хотите квадратичный или кубический, вы можете использовать LINEST со столбцом данных времени в квадрате / кубе и т. Д., Чтобы получить квадратичные / кубические параметры и, таким образом, получить соответствующую функцию более высокого порядка.

1 голос
/ 16 июля 2009

Обратимся к одному из квантов здесь функция от T = KNO, где T - время, K некоторая постоянная, N итераций, O обязатели.

Переставьте для K = T / (НЕТ), включите это в мои данные выборки, возьмите среднее значение всех точек выборки, используйте стандартное отклонение для ошибки

Я сделал это для своих данных и получил:

T = 3.81524E-06 * N * O (с ошибкой 1,9%), это довольно хорошее приближение.

0 голосов
/ 12 июля 2009

Для пояснения: у вас есть табличные данные, ниже которых вы хотите вписать некоторую функцию f (O, I) = t?

        200          400         600         800         1000        1200        1400        1600        1800        2000
20000   15.627681   30.0968663  44.7592684  60.9037558  75.8267358  90.3718977  105.8749983 121.0030672 135.9191249 150.3331682
40000   31.7202111  62.3603882  97.2085204  128.8111731 156.2443206 186.6374271 218.324317  249.2699288 279.6008184 310.9970803
60000   47.0708635  92.4599437  138.874287  186.0576007 231.2181381 280.541207  322.9836878 371.3076757 413.4058622 459.6208335
80000   60.7346238  120.3216303 180.471169  241.668982  300.4283548 376.9639188 417.5231669 482.6288981 554.9740194 598.0394434
100000  76.7535915  150.7479245 227.5125656 304.3908046 382.5900043 451.6034296 526.0730786 609.0358776 679.0268121 779.6887277
120000  90.4174626  179.5511355 269.4099593 360.2934453 448.4387573 537.1406039 626.7325734 727.6132992 807.4767327 898.307638

Грубое предположение выглядит так, что оба O & I являются линейными. Таким образом, f имеет вид t = aO + bI + c. Подключите несколько (O, I, t) и посмотрите, какими должны быть a, b, c.

0 голосов
/ 12 июля 2009

Создайте диаграмму в Excel, добавьте линию тренда и выберите отображение уравнения на диаграмме.

...