Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

fitoptions

Crear o modificar el objeto de opciones de ajuste

Descripción

ejemplo

fitOptions = fitoptions crea el objeto de opciones de ajuste predeterminado fitOptions.

ejemplo

fitOptions = fitoptions(libraryModelName) crea el objeto de opciones de ajuste predeterminado para el modelo de la biblioteca.

ejemplo

fitOptions = fitoptions(libraryModelName,Name,Value) crea las opciones de ajuste para el modelo de biblioteca especificado, con opciones adicionales especificadas por uno o más argumentos de par Name,Value.

ejemplo

fitOptions = fitoptions(fitType) obtiene el objeto de opciones de ajuste para el fitType especificado. Utilice esta sintaxis para trabajar con opciones de ajuste para modelos personalizados.

ejemplo

fitOptions = fitoptions(Name,Value) crea opciones de ajuste con opciones adicionales especificadas por uno o más argumentos de par Name,Value.

ejemplo

newOptions = fitoptions(fitOptions,Name,Value) modifica el objeto de opciones de ajuste existente fitOptions y devuelve opciones de ajuste actualizadas en newOptions con nuevas opciones especificadas por uno o más argumentos de par Name,Value.

ejemplo

newOptions = fitoptions(options1,options2) combina los objetos de opciones de ajuste existentes options1 y options2 en newOptions.

  • Si Method coincide, los valores no vacíos de las propiedades en options2 anulan los valores correspondientes de options1 en newOptions.

  • Si Method difiere, newOptions contiene el valor options1 para Method y valores de options2 para Normalize, Exclude y Weights.

Ejemplos

contraer todo

Crear el objeto de opciones de ajuste predeterminado y definir la opción para centrar y escalar los datos antes del ajuste.

options = fitoptions;
options.Normal = 'on'
options = 
  basefitoptions with properties:

    Normalize: 'on'
      Exclude: []
      Weights: []
       Method: 'None'

options = fitoptions('gauss2')
options = 
  nlsqoptions with properties:

       StartPoint: []
            Lower: [-Inf -Inf 0 -Inf -Inf 0]
            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'

Cree opciones de ajuste para un polinomio cúbico y defina centro y escala y opciones de ajuste robusto.

options = fitoptions('poly3', 'Normalize', 'on', 'Robust', 'Bisquare')
options = 
  llsqoptions with properties:

        Lower: []
        Upper: []
       Robust: 'Bisquare'
    Normalize: 'on'
      Exclude: []
      Weights: []
       Method: 'LinearLeastSquares'

options = fitoptions('Method', 'LinearLeastSquares')
options = 
  llsqoptions with properties:

        Lower: []
        Upper: []
       Robust: 'Off'
    Normalize: 'off'
      Exclude: []
      Weights: []
       Method: 'LinearLeastSquares'

Cree un objeto fitoptions para un ajuste de interpolación lineal con extrapolación por el vecino más cercano.

linearoptions = fitoptions("linearinterp",ExtrapolationMethod="nearest")
linearoptions = 
  linearinterpoptions with properties:

    ExtrapolationMethod: 'nearest'
              Normalize: 'off'
                Exclude: []
                Weights: []
                 Method: 'LinearInterpolant'

Cree un segundo objeto fitoptions para un ajuste de interpolación cúbico con extrapolación por el vecino más cercano.

cubicoptions = fitoptions("cubicinterp",ExtrapolationMethod="nearest")
cubicoptions = 
  cubicsplineinterpoptions with properties:

    ExtrapolationMethod: 'nearest'
              Normalize: 'off'
                Exclude: []
                Weights: []
                 Method: 'CubicSplineInterpolant'

Puede utilizar las opciones de ajuste de linearoptions para crear un objeto de ajuste linearinterp mediante la función fit. Utilice cubicoptions para crear un ajuste cubicinterp.

Modificar los objetos de opciones de ajuste predeterminados es útil cuando quiere definir las propiedades Normalize, Exclude o Weights, y luego ajustar los datos con las mismas opciones, pero con distintos métodos de ajuste. Por ejemplo, a continuación se utilizan las mismas opciones de ajuste para distintos tipos de modelos de biblioteca.

load census
options = fitoptions;
options.Normalize = 'on';
f1 = fit(cdate,pop,'poly3',options);
f2 = fit(cdate,pop,'exp1',options);
f3 = fit(cdate,pop,'cubicspline',options)
f3 = 
     Cubic interpolating spline:
       f3(x) = piecewise polynomial computed from p
       with cubic extrapolation
       where x is normalized by mean 1890 and std 62.05
     Coefficients:
       p = coefficient structure

Busque el parámetro de suavizado. Las opciones de ajuste que dependen de datos como el parámetro smooth se devuelven en el tercer argumento de salida de la función fit.

load census
[f,gof,out] = fit(cdate,pop,'SmoothingSpline');
smoothparam = out.p
smoothparam = 0.0089

Modifique el valor predeterminado del parámetro de suavizado para un nuevo ajuste.

options = fitoptions('Method','SmoothingSpline',...
                     'SmoothingParam',0.0098);
[f,gof,out] = fit(cdate,pop,'SmoothingSpline',options);

Cree un ajuste de Gauss, inspeccione los intervalos de confianza y especifique las opciones de ajuste de límites inferiores para ayudar al algoritmo.

Cree una suma ruidosa de dos picos de Gauss, uno con una anchura pequeña y otro con una anchura grande.

a1 = 1; b1 = -1; c1 = 0.05;
a2 = 1; b2 = 1; c2 = 50;
x = (-10:0.02:10)';
gdata = a1*exp(-((x-b1)/c1).^2) + ...
        a2*exp(-((x-b2)/c2).^2) + ...
        0.1*(rand(size(x))-.5);
plot(x,gdata)

Figure contains an axes object. The axes object contains an object of type line.

Ajuste los datos con los modelos de Gauss de dos términos de la biblioteca.

gfit = fit(x,gdata,'gauss2') 
gfit = 
     General model Gauss2:
     gfit(x) =  a1*exp(-((x-b1)/c1)^2) + a2*exp(-((x-b2)/c2)^2)
     Coefficients (with 95% confidence bounds):
       a1 =      -0.145  (-1.486, 1.195)
       b1 =       9.725  (-14.71, 34.16)
       c1 =       7.117  (-15.84, 30.07)
       a2 =       14.06  (-1.957e+04, 1.96e+04)
       b2 =         607  (-3.193e+05, 3.205e+05)
       c2 =       375.9  (-9.737e+04, 9.812e+04)
plot(gfit,x,gdata)

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.

El algoritmo encuentra dificultades, tal como indican los amplios intervalos de confianza de varios coeficientes.

Para ayudar al algoritmo, especifique los límites inferiores para las amplitudes a1 y a2 y anchuras c1, c2 no negativas.

options = fitoptions('gauss2', 'Lower', [0 -Inf 0 0 -Inf 0]);

También puede definir propiedades de las opciones de ajuste con la forma options.Property = NewPropertyValue.

options = fitoptions('gauss2');
options.Lower = [0 -Inf 0 0 -Inf 0];

Recalcule el ajuste con los límites de restricción de los coeficientes.

gfit = fit(x,gdata,'gauss2',options) 
gfit = 
     General model Gauss2:
     gfit(x) =  a1*exp(-((x-b1)/c1)^2) + a2*exp(-((x-b2)/c2)^2)
     Coefficients (with 95% confidence bounds):
       a1 =       1.005  (0.966, 1.044)
       b1 =          -1  (-1.002, -0.9988)
       c1 =      0.0491  (0.0469, 0.0513)
       a2 =      0.9985  (0.9958, 1.001)
       b2 =      0.8059  (0.3879, 1.224)
       c2 =        50.6  (46.68, 54.52)
plot(gfit,x,gdata)

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.

Este ajuste es mucho mejor. Puede mejorar más el ajuste asignando valores razonables a otras propiedades en el objeto de opciones de ajuste.

Cree opciones de ajuste y defina límites inferiores.

options = fitoptions('gauss2', 'Lower', [0 -Inf 0 0 -Inf 0])
options = 
  nlsqoptions with properties:

       StartPoint: []
            Lower: [0 -Inf 0 0 -Inf 0]
            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'

Haga otra copia de las opciones de ajuste y modifique el parámetro robusto.

newoptions = fitoptions(options, 'Robust','Bisquare')
newoptions = 
  nlsqoptions with properties:

       StartPoint: []
            Lower: [0 -Inf 0 0 -Inf 0]
            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: 'Bisquare'
        Normalize: 'off'
          Exclude: []
          Weights: []
           Method: 'NonlinearLeastSquares'

Combine las opciones de ajuste.

options2 = fitoptions(options, newoptions)
options2 = 
  nlsqoptions with properties:

       StartPoint: []
            Lower: [0 -Inf 0 0 -Inf 0]
            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: 'Bisquare'
        Normalize: 'off'
          Exclude: []
          Weights: []
           Method: 'NonlinearLeastSquares'

Cree un tipo de ajuste de modelo lineal.

lft = fittype({'x','sin(x)','1'})
lft = 
     Linear model:
     lft(a,b,c,x) = a*x + b*sin(x) + c

Obtenga las opciones de ajuste para el tipo de ajuste lft.

fo = fitoptions(lft)
fo = 
  llsqoptions with properties:

        Lower: []
        Upper: []
       Robust: 'Off'
    Normalize: 'off'
      Exclude: []
      Weights: []
       Method: 'LinearLeastSquares'

Defina la opción de ajuste normalizada.

fo.Normalize = 'on'
fo = 
  llsqoptions with properties:

        Lower: []
        Upper: []
       Robust: 'Off'
    Normalize: 'on'
      Exclude: []
      Weights: []
       Method: 'LinearLeastSquares'

Argumentos de entrada

contraer todo

Modelo de biblioteca para el ajuste, especificado como un vector de caracteres o escalar de cadena. Esta tabla muestra algunos ejemplos habituales.

Nombre de modelo de biblioteca

Descripción

'poly1'

Curva polinomial lineal

'poly11'

Superficie polinomial lineal

'poly2'

Curva polinomial cuadrática

'linearinterp'

Interpolación lineal por tramos

'cubicinterp'

Interpolación cúbica por tramos

'smoothingspline'

Spline de suavizado (curva)

'lowess'

Regresión lineal local (superficie)

'log10'

Curva logarítmica en base 10

'logistic4'

Curva logística de cuatro parámetros

Para ver una lista de nombres de modelos de biblioteca, consulte Nombres y ecuaciones de modelos.

Ejemplo: 'poly2'

Tipos de datos: char | string

Tipo de modelo para el ajuste, especificado como un fittype construido con la función fittype. Utilícelo para trabajar con opciones de ajuste para modelos personalizados.

Opciones de algoritmo, especificadas como un objeto fitoptions creado con la función fitoptions.

Opciones de algoritmo para combinar, construidas con la función fitoptions.

Opciones de algoritmo para combinar, construidas con la función fitoptions.

Argumentos de par nombre-valor

Especifique pares de argumentos opcionales Name1=Value1,...,NameN=ValueN, donde Name es el nombre del argumento y Value el valor correspondiente. Los argumentos nombre-valor deben aparecer tras otros argumentos, aunque no importa el orden de los pares.

En versiones anteriores a R2021a, utilice comas para separar cada nombre y valor, y encierre Name entre comillas.

Ejemplo: 'Method','NonlinearLeastSquares','Lower',[0,0],'Upper',[Inf,max(x)],'Startpoint',[1 1] especifica el método de ajuste, límites y puntos de partida.

Opciones para todos los métodos de ajuste

contraer todo

Opción para centrar y escalar datos, especificada como el par separado por comas compuesto por 'Normalize' y 'on' u 'off'.

Tipos de datos: char

Puntos que excluir del ajuste, especificados como el par separado por comas compuesto por 'Exclude' y uno de los siguientes:

  • Una expresión que describe un vector lógico, por ejemplo, x > 10.

  • Un vector de enteros que indexa los puntos que quiere excluir, por ejemplo, [1 10 25].

  • Un vector lógico para todos los puntos de datos, donde true representa un valor atípico, creado por excludedata.

Para obtener ejemplos, consulte fit.

Ponderaciones para el ajuste, especificadas como el par separado por comas compuesto por 'Weights' y un vector del mismo tamaño que el número de puntos de datos.

Tipos de datos: double

Método de ajuste, especificado como el par separado por comas compuesto por 'Method' y uno de los métodos de ajuste de esta tabla.

Método de ajuste

Descripción

'NearestInterpolant'

Interpolación vecina más cercana

'LinearInterpolant'

Interpolación lineal

'PchipInterpolant'

Interpolación cúbica por tramos de Hermite (solo curvas)

'CubicSplineInterpolant'

Interpolación por splines cúbicos

'BiharmonicInterpolant'

Interpolación de superficie biarmónica

'SmoothingSpline'

Spline de suavizado

'LowessFit'

Suavizado de Lowess (solo superficies)

'LinearLeastSquares'

Mínimos cuadrados lineales

'NonlinearLeastSquares'

Mínimos cuadrados no lineales

Tipos de datos: char | string

Opciones de interpolación

contraer todo

Método de extrapolación para un ajuste de interpolación, especificado como uno de los siguientes valores:

ValorDescripciónAjustes admitidos
"auto"

Valor predeterminado para todos los tipos de ajuste de interpolación. Establezca ExtrapolationMethod en "auto" para asignar automáticamente un método de extrapolación cuando utilice la función fit.

Todos los tipos de ajuste de interpolación y ajustes de curva cubicspline

"none"

Sin extrapolación. Cuando se utiliza fitOptions con la función fit para evaluar puntos de consulta fuera de la envolvente convexa, fit devuelve NaN.

Ajustes de curva: cubicspline y pchipinterp

Ajustes de curva y de superficie: cubicinterp, linearinterp y nearestinterp

"linear"

Extrapolación lineal basada en gradientes de límite

Ajustes de superficie: cubicinterp y nearestinterp

Ajustes de curva y de superficie: linearinterp

"nearest"

Extrapolación por el vecino más cercano. Este método evalúa el valor del punto más cercano en el límite de la envolvente convexa de los datos de ajuste.

Ajustes de curva: cubicspline y pchipinterp

Ajustes de curva y de superficie: cubicinterp, linearinterp y nearestinterp

"thinplate"

Extrapolación por spline de thin-plate. Este método amplía el spline de interpolación de thin-plate hasta más allá de la envolvente convexa de los datos de ajuste. Para obtener más información, consulte tpaps.

Ajustes de superficie: thinplateinterp

"biharmonic"

Extrapolación por spline biarmónico. Este método amplía el spline de interpolación biarmónico hasta más allá de la envolvente convexa de los datos de ajuste.

Ajustes de superficie: biharmonicinterp

"pchip"

Extrapolación por PCHIP (interpolación cúbica por tramos de Hermite). Este método amplía una PCHIP que conserva la forma hasta más allá de la envolvente convexa de los datos de ajuste. Para obtener más información, consulte pchip.

Ajustes de curva: pchipinterp

"cubic"

Extrapolación por spline cúbico. Este método amplía un spline de interpolación cúbico hasta más allá de la envolvente convexa de los datos de ajuste.

Ajustes de curva: cubicinterp y cubicspline

Tipos de datos: char | string

Opciones de suavizado

contraer todo

Parámetro de suavizado, especificado como el par separado por comas compuesto por 'SmoothingParam' y un valor escalar entre 0 y 1. El valor predeterminado depende del conjunto de datos. Solo disponible si el Method es SmoothingSpline. Para obtener más información, consulte Sobre splines de suavizado.

Tipos de datos: double

Proporción de puntos de datos que utilizar en regresiones locales, especificada como el par separado por comas compuesto por 'Span' y un valor escalar entre 0 y 1. Solo disponible si el Method es LowessFit.

Tipos de datos: double

Opciones de mínimos cuadrados lineales y no lineales

contraer todo

Método de ajuste robusto de mínimos cuadrados lineales, especificado como el par separado por comas compuesto por 'Robust' y uno de estos valores:

  • 'LAR' especifica el método de mínimo residual absoluto.

  • 'Bisquare' especifica el método de ponderaciones bicuadradas.

Disponible cuando el Method es LinearLeastSquares o NonlinearLeastSquares.

Tipos de datos: char

Límites inferiores de coeficientes que ajustar, especificados como el par separado por comas compuesto por 'Lower' y un vector. El valor predeterminado es un vector vacío, que indica que el ajuste no está restringido por límites inferiores. Si se especifican los límites, la longitud del vector debe ser igual al número de coeficientes. Encuentre el orden de las entradas para los coeficientes en el valor del vector con la función coeffnames. Para ver un ejemplo, consulte fit. Los límites inferiores individuales ilimitados se pueden especificar con -Inf.

Disponible cuando el Method es LinearLeastSquares o NonlinearLeastSquares.

Tipos de datos: double

Límites superiores de coeficientes que ajustar, especificados como el par separado por comas compuesto por 'Upper' y un vector. El valor predeterminado es un vector vacío, que indica que el ajuste no está restringido por límites superiores. Si se especifican los límites, la longitud del vector debe ser igual al número de coeficientes. Encuentre el orden de las entradas para los coeficientes en el valor del vector con la función coeffnames. Para ver un ejemplo, consulte fit. Los límites superiores individuales ilimitados se pueden especificar con +Inf.

Disponible cuando el Method es LinearLeastSquares o NonlinearLeastSquares.

Tipos de datos: logical

Opciones de mínimos cuadrados no lineales

contraer todo

Valores iniciales para los coeficientes, especificados como el par separado por comas compuesto por 'StartPoint' y un vector. Encuentre el orden de las entradas para los coeficientes en el valor del vector con la función coeffnames. Para ver un ejemplo, consulte fit.

Si no se trasladan puntos de partida (el valor predeterminado de un vector vacío) a la función fit, los puntos de partida para algunos modelos de biblioteca se determinan de forma heurística. Para modelos racionales y de Weibull, y todos los modelos personalizados no lineales, la toolbox selecciona los valores iniciales predeterminados para los coeficientes de forma uniforme y aleatoria del intervalo (0,1). Como resultado, varios ajustes con los mismos datos y modelo podrían derivar en distintos coeficientes ajustados. Para evitarlo, especifique valores iniciales en coeficientes con un valor de vector para la propiedad StartPoint.

Disponible cuando el Method es NonlinearLeastSquares.

Tipos de datos: double

Algoritmo para el proceso de ajuste, especificado como el par separado por comas compuesto por 'Algorithm' y 'Levenberg-Marquardt' o 'Trust-Region'.

Disponible cuando el Method es NonlinearLeastSquares.

Tipos de datos: char

Cambio máximo en los coeficientes para gradientes de diferencias finitas, especificado como el par separado por comas compuesto por 'DiffMaxChange' y un escalar.

Disponible cuando el Method es NonlinearLeastSquares.

Tipos de datos: double

Cambio mínimo en los coeficientes para gradientes de diferencias finitas, especificado como el par separado por comas compuesto por 'DiffMinChange' y un escalar.

Disponible cuando el Method es NonlinearLeastSquares.

Tipos de datos: double

Opción de visualizar en la ventana de comandos, especificada como el par separado por comas compuesto por 'Display' y una de estas opciones:

  • 'notify' solo muestra salidas si el ajuste no converge.

  • 'final' solo muestra la salida final.

  • 'iter' muestra la salida en cada iteración.

  • 'off' no muestra salida alguna.

Disponible cuando el Method es NonlinearLeastSquares.

Tipos de datos: char

Número máximo de evaluaciones de modelo permitidas, especificado como el par separado por comas compuesto por 'MaxFunEvals' y un escalar.

Disponible cuando el Method es NonlinearLeastSquares.

Tipos de datos: double

Número máximo de iteraciones permitidas para el ajuste, especificado como el par separado por comas compuesto por 'MaxIter' y un escalar.

Disponible cuando el Method es NonlinearLeastSquares.

Tipos de datos: double

Tolerancia de terminación en el valor del modelo, especificada como el par separado por comas compuesto por 'TolFun' y un escalar.

Disponible cuando el Method es NonlinearLeastSquares.

Tipos de datos: double

Tolerancia de terminación en los valores de coeficiente, especificada como el par separado por comas compuesto por 'TolX' y un escalar.

Disponible cuando el Method es NonlinearLeastSquares.

Tipos de datos: double

Argumentos de salida

contraer todo

Opciones de algoritmo, devueltas como un objeto de opciones.

Nuevas opciones de algoritmo, devueltas como un objeto de opciones.

Historial de versiones

Introducido antes de R2006a

expandir todo