Main Content

Modelos exponenciales

Sobre modelos exponenciales

La toolbox proporciona un modelo exponencial de un término y uno de dos términos como se establece en la ecuación

y=aebxy=aebx+cedx

Los exponenciales suelen utilizarse cuando la tasa de cambio de una cantidad es proporcional al valor inicial de la cantidad. Si el coeficiente asociado con b o d es negativo, y representa una caída exponencial. Si el coeficiente es positivo, y representa un crecimiento exponencial.

Por ejemplo, un único modo de desintegración radiactiva de un nucleido se describe con un exponencial de un término. a se interpreta como el número inicial de núcleos, b es la constante de desintegración, x es tiempo, e y es el número de núcleos restantes después de que transcurra determinado valor de tiempo. Si existen dos modos de caída, entonces debe optar por el modelo exponencial de dos términos. Para el segundo modo de caída, añada otro término exponencial al modelo.

Entre los ejemplos de crecimiento exponencial se encuentran las enfermedades contagiosas cuya cura no está disponible, las poblaciones biológicas cuyo crecimiento no está inhibido por la depredación, los factores ambientales, etc.

Ajustar modelos exponenciales de forma interactiva

  1. Abra la app Curve Fitter escribiendo curveFitter en la línea de comandos de MATLAB®. También puede hacer clic en Curve Fitter dentro del grupo Math, Statistics and Optimization de la pestaña Apps.

  2. En la app Curve Fitter, seleccione los datos de curva. En la pestaña Curve Fitter, en la sección Data, haga clic en Select Data. En el cuadro de diálogo Select Fitting Data, seleccione X data e Y data o simplemente Y data contra un índice.

  3. Haga clic en la flecha de la sección Fit Type para abrir la galería y, luego, haga clic en Exponential dentro del grupo Regression Models.

El panel Fit Options para el ajuste Exponential de un solo término se muestra aquí.

Fit Options pane for exponential fit

Puede especificar las siguientes opciones en el panel Fit Options:

  • Elegir uno o dos términos para ajustar exp1 o exp2. Observe el panel Results para ver los términos del modelo, los valores de los coeficientes y las estadísticas de bondad de ajuste.

  • De forma opcional, en la sección Advanced Options, especificar los valores iniciales del coeficiente y los límites de restricción apropiados para sus datos o cambiar la configuración del algoritmo. Los valores iniciales del coeficiente y las restricciones que se muestran aquí son para los datos de census.

    La app calcula los puntos de partida optimizados para los ajustes de Exponential, basándose en el conjunto de datos. Puede anular los puntos de partida y especificar los valores que desee en el panel Fit Options. Para ver un ejemplo que especifique valores iniciales apropiados para los datos, consulte Ajuste de Gauss con una trayectoria exponencial.

Fit Options pane showing Advanced Options for an exponential fit

Para obtener más información sobre la configuración, consulte Especificar las opciones de ajuste y los puntos de partida optimizados.

Ajustar modelos exponenciales con la función fit

Este ejemplo muestra cómo ajustar un modelo exponencial a los datos con la función fit.

El modelo exponencial de la biblioteca es un argumento de entrada para las funciones fit y fittype. Especifique el tipo de modelo 'exp1' o 'exp2'.

Ajustar un modelo exponencial de un solo término

Genere datos con una tendencia exponencial y luego ajuste los datos con un exponencial de un solo término. Represente el ajuste y los datos.

x = (0:0.2:5)';
y = 2*exp(-0.2*x) + 0.1*randn(size(x));
f = fit(x,y,'exp1')
f = 
     General model Exp1:
     f(x) = a*exp(b*x)
     Coefficients (with 95% confidence bounds):
       a =       2.021  (1.89, 2.151)
       b =     -0.1812  (-0.2104, -0.152)
plot(f,x,y)

Figure contains an axes object. The axes object with xlabel x, ylabel y contains 2 objects of type line. One or more of the lines displays its values using only markers These objects represent data, fitted curve.

Ajustar un modelo exponencial de dos términos

f2 = fit(x,y,'exp2')
f2 = 
     General model Exp2:
     f2(x) = a*exp(b*x) + c*exp(d*x)
     Coefficients (with 95% confidence bounds):
       a =        2443  (-1.229e+12, 1.229e+12)
       b =     -0.2574  (-1.87e+04, 1.87e+04)
       c =       -2441  (-1.229e+12, 1.229e+12)
       d =     -0.2575  (-1.872e+04, 1.872e+04)
plot(f2,x,y)

Figure contains an axes object. The axes object with xlabel x, ylabel y contains 2 objects of type line. One or more of the lines displays its values using only markers These objects represent data, fitted curve.

Definir los puntos de partida

La toolbox calcula los puntos de partida optimizados para los ajustes exponenciales, basándose en el conjunto de datos actual. Puede anular los puntos de partida y especificar los valores que desee.

Encuentre el orden de las entradas para los coeficientes en el primer modelo (f) con la función coeffnames.

coeffnames(f)
ans = 2x1 cell
    {'a'}
    {'b'}

Si especifica los puntos de partida, elija valores apropiados para sus datos. Defina puntos de partida arbitrarios para los coeficientes a y b a modo de ejemplo.

f = fit(x,y,'exp1','StartPoint',[1,2])
f = 
     General model Exp1:
     f(x) = a*exp(b*x)
     Coefficients (with 95% confidence bounds):
       a =       2.021  (1.89, 2.151)
       b =     -0.1812  (-0.2104, -0.152)
plot(f,x,y)

Figure contains an axes object. The axes object with xlabel x, ylabel y contains 2 objects of type line. One or more of the lines displays its values using only markers These objects represent data, fitted curve.

Examinar las opciones de ajuste exponencial

Examine las opciones de ajuste si quiere modificar opciones de ajuste como los valores iniciales del coeficiente y los límites de restricción apropiados para sus datos, o cambiar la configuración de algoritmos. Para obtener detalles sobre estas opciones, consulte la tabla de propiedades para NonlinearLeastSquares en la página de referencia fitoptions.

fitoptions('exp1')
ans = 
  nlsqoptions with properties:

       StartPoint: []
            Lower: []
            Upper: []
        Algorithm: 'Trust-Region'
    DiffMinChange: 1.0000e-08
    DiffMaxChange: 0.1000
          Display: 'Notify'
      MaxFunEvals: 600
          MaxIter: 400
           TolFun: 1.0000e-06
             TolX: 1.0000e-06
           Robust: 'Off'
        Normalize: 'off'
          Exclude: []
          Weights: []
           Method: 'NonlinearLeastSquares'

Consulte también

Apps

Funciones

Temas relacionados