Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Ajuste de curva no lineal con lsqcurvefit

le permite ajustar fácilmente las funciones no lineales parametrizadas a los datos.lsqcurvefit También se puede utilizar; es simplemente una forma conveniente de llamar para ajustar la curva.lsqnonlinlsqcurvefitlsqnonlin

En este ejemplo, el vector representa 100 puntos de datos y el vector representa las mediciones asociadas.xdataydata Genere los datos utilizando el siguiente script:

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 y esxdataydata

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

El script genera a partir de 100 muestras independientes de una distribución exponencial con la media 2.xdata Se genera mediante el uso de =, perturbado mediante la adición de desviados normales con desviaciones estándar.ydataEcuación 1a[1;3;2][0.1;0.5;0.5]

El objetivo es encontrar parámetros a^i, i = 1, 2, 3, para el modelo que mejor se adapte a los datos.

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

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

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

a0 = [2;2;2];

Ejecute el solucionador de la siguiente manera:lsqcurvefit

[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 default value of the function tolerance.

Para ver la estimación de mínimos cuadrados resultante de a^Entrar:

ahat
ahat =     1.0169     3.1444     2.1596

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

Si tiene software, utilice la función para generar intervalos de confianza para la estimación.Statistics and Machine Learning Toolbox™nlparciahat

Consulte también

|

Temas relacionados