Main Content

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.

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 =

    Normalize: 'on'
      Exclude: [1x0 double]
      Weights: [1x0 double]
       Method: 'None'
options = fitoptions('gauss2')
options =

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

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 =

    Normalize: 'on'
      Exclude: []
      Weights: []
       Method: 'LinearLeastSquares'
       Robust: 'Bisquare'
        Lower: [1x0 double]
        Upper: [1x0 double]
options = fitoptions('Method', 'LinearLeastSquares')
options =

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

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
       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 cotas 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)

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.15)
       c1 =       7.117  (-15.84, 30.07)
       a2 =       14.05  (-1.955e+04, 1.958e+04)
       b2 =       606.9  (-3.192e+05, 3.204e+05)
       c2 =       375.9  (-9.734e+04, 9.809e+04)
plot(gfit,x,gdata)

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

Para ayudar al algoritmo, especifique las cotas 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 las cotas 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)

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 cotas inferiores.

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

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

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

newoptions = fitoptions(options, 'Robust','Bisquare')
newoptions =

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

Combine las opciones de ajuste.

options2 = fitoptions(options, newoptions)
options2 =

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

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 =

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

Defina la opción de ajuste normalizada.

fo.Normalize = 'on'
fo =

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

Argumentos de entrada

contraer todo

Modelo de biblioteca para el ajuste, especificado como un vector de caracteres. 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)

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

Ejemplo: 'poly2'

Tipos de datos: char

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 argumentos de par Name,Value separados por comas. Name es el nombre del argumento y Value el valor correspondiente. Name debe aparecer entre comillas. Puede especificar varios de argumentos de par nombre-valor en cualquier orden, como Name1,Value1,...,NameN,ValueN.

Ejemplo: 'Method','NonlinearLeastSquares','Lower',[0,0],'Upper',[Inf,max(x)],'Startpoint',[1 1] especifica el método de ajuste, cotas 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

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.

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

Cotas inferiores de coeficientes que ajustar, especificadas 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á limitado por cotas inferiores. Si se especifican las cotas, 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. Las cotas inferiores individuales ilimitadas se pueden especificar con -Inf.

Disponible cuando el Method es LinearLeastSquares o NonlinearLeastSquares.

Tipos de datos: double

Cotas superiores de coeficientes que ajustar, especificadas 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á limitado por cotas superiores. Si se especifican las cotas, 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. Las cotas superiores individuales ilimitadas 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 a distintos coeficientes de ajuste. 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 por 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 por 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 fitoptions.

Nuevas opciones de algoritmo, devueltas como un objeto fitoptions.

Introducido antes de R2006a