Se parece a la de Excel GROWTH
función es hacer dos cosas:
- el ajuste de una función de la forma $y(x) = b \cdot m^x$ donde $b$ $m$ son desconocidos constantes, a un conjunto de $(x_i,\,y_i)$ puntos de datos, y
- evaluar el resultado de la función en un conjunto dado de puntos.
El paso 2 es trivial una vez que hayas encontrado $b$$m$, por lo que no voy a entrar en eso. La documentación de GROWTH
no especifica cómo los datos de conexión que se hace, sino un simple y obvio método sería reducir el ajuste exponencial a uno lineal tomando el logaritmo de la $y$ valores y, a continuación, utilizando la regresión lineal simple para el ajuste de la función de $\log y(x) = \alpha + \beta \cdot x$ donde$\alpha = \log b$$\beta = \log m$, para los puntos de datos $(x_i,\, \log y_i)$.
(Los valores de $b$ $m$ obtenido en este modo no suelen minimizar la suma de los cuadrados de los errores de $\sum_i (y(x_i) - y_i)^2$, pero ¿ de minimizar la suma de los cuadrados de las logarítmica errores de $$\sum_i (\log y(x_i) - \log y_i)^2 = \sum_i \left(\log \frac{y(x_i)}{y_i}\right)^2,$$ que uno podría argumentar a ser una medida natural para el ajuste de una función de crecimiento exponencial de los datos, de todos modos.)
Ps. He publicado un real JavaScript de la aplicación de este método en Stack Overflow. Los resultados de la función coincide con la hoja de cálculo de ejemplo en la GROWTH
de la documentación dentro de la precisión numérica que se muestra (la cual, ciertamente, no es mucho), lo que sugiere que este hecho puede ser el método utilizado por Excel.
(De hecho, aunque no tengo Excel para ponerlo a prueba, descarga la hoja de cálculo y pruebas en LibreOffice Calc da resultados que coincidan con el código JS, alrededor de 12 dígitos significativos. El resto de discrepancia es probablemente debido a imprecisiones numéricas en una o ambas implementaciones.)