Main Content

Ajuste no lineal de curvas con lsqcurvefit

lsqcurvefit le permite ajustar fácilmente funciones no lineales parametrizadas a los datos. También puede utilizar lsqnonlin; lsqcurvefit es simplemente una forma conveniente de llamar a lsqnonlin para el ajuste de curvas.

En este ejemplo, el vector xdata representa 100 puntos de datos y el vector ydata representa las medidas asociadas. Genere los datos para el problema.

rng(5489,'twister') % reproducible
xdata = -2*log(rand(100,1));
ydata = (ones(100,1) + .1*randn(100,1)) + (3*ones(100,1)+...
    0.5*randn(100,1)).*exp((-(2*ones(100,1)+...
   .5*randn(100,1))).*xdata);

La relación modelada entre xdata y ydata es

ydatai=a1+a2exp(-a3xdatai)+εi.

El código genera xdata a partir de 100 muestras independientes de una distribución exponencial con media de 2. El código genera ydata a partir de su ecuación definitoria con a = [1;3;2], perturbada añadiendo desviadas normales con desviaciones estándar [0.1;0.5;0.5].

La meta es encontrar parámetros aˆi, i = 1, 2, 3 para el modelo que mejor se ajuste a los datos.

Para ajustar los parámetros a los datos utilizando lsqcurvefit, es necesario definir una función de ajuste. Defina la función de ajuste predicted como una función anónima.

predicted = @(a,xdata) a(1)*ones(100,1)+a(2)*exp(-a(3)*xdata); 

Para ajustar el modelo a los datos, lsqcurvefit necesita una estimación inicial a0 de los parámetros.

a0 = [2;2;2];

Llame a lsqcurvefit para encontrar los parámetros aˆi que mejor se ajusten.

[ahat,resnorm,residual,exitflag,output,lambda,jacobian] =...
   lsqcurvefit(predicted,a0,xdata,ydata);
Local minimum possible.

lsqcurvefit stopped because the final change in the sum of squares relative to 
its initial value is less than the value of the function tolerance.

Examine los parámetros resultantes.

disp(ahat)
    1.0169
    3.1444
    2.1596

Los valores ajustados ahat están dentro del 8% de a = [1;3;2].

Si dispone del software Statistics and Machine Learning Toolbox™, utilice la función nlparci para generar intervalos de confianza para la estimación ahat.

Consulte también

| (Statistics and Machine Learning Toolbox)

Temas relacionados