Ajuste no lineal de curvas con lsqcurvefit
lsqcurvefit 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
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 , = 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 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. <stopping criteria details>
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
lsqcurvefit | nlparci (Statistics and Machine Learning Toolbox)