Come determinare una formula per il tempo di esecuzione forniti dati quantitativi, Excel, linee di tendenza, la simulazione Monte Carlo
-
12-09-2019 - |
Domanda
Posso ottenere il vostro aiuto su alcuni matematica e, eventualmente, di Excel?
Ho benchmark mia app aumentando il numero di iterazioni e il numero di debitori di registrazione del tempo impiegato in pochi secondi con il seguente risultato:
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
Come posso ora venire con una funzione per T (tempo impiegato in secondi) come espressione di numero di debitori O e numero di iterazioni I
Grazie
Soluzione 2
parlato con uno dei quants qui la funzione è del da T = KNO, dove T è il tempo, una costante K, N iterazioni, obbligati O.
Riorganizzare per K = T / (NO), collegarlo alla miei dati di esempio, prendere la media di tutti i punti di campionamento, utilizzare il dev Std per l'errore
L'ho fatto per i miei dati e ottenere:
T = 3.81524E-06 * N * O (con il 1,9% di errore), questa è una buona approssimazione.
Altri suggerimenti
Non sono del tutto sicuro dei dati coinvolti a causa della costruzione domanda / presentazione.
Supponendo che stai cercando y = f(x)
. Se si caricano i dati in Excel, è possibile utilizzare i metodi SLOPE
e INTERCEPT
sui dati gamme di ricavare un'espressione della forma
y = mx+c
e quindi una funzione lineare.
Se si desidera un quadratica o cubica, è possibile utilizzare LINEST
con una colonna di dati in tempo al quadrato / cubetti ecc per darvi i parametri quadratica / cubica, e ricavare così una funzione di ordine superiore appropriata.
Crea un grafico in Excel, aggiungere una linea di tendenza, e scegliere di avere l'equazione visualizzata sul grafico.
Per chiarire:? Si dispone di dati tabulari di sotto del quale si desidera per adattarsi a qualche funzione 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
A occhio e croce sembra sia O & I sono lineari. Quindi f è in forma t = aO + bi + c. Plug In pochi (O, i, t) e vedere che cosa a, b, c dovrebbero essere.