fitoptions
Crear o modificar el objeto de opciones de ajuste
Sintaxis
Descripción
crea el objeto de opciones de ajuste predeterminado fitOptions
= fitoptionsfitOptions
.
crea el objeto de opciones de ajuste predeterminado para el modelo de la biblioteca.fitOptions
= fitoptions(libraryModelName
)
crea las opciones de ajuste para el modelo de biblioteca especificado, con opciones adicionales especificadas por uno o más argumentos de par fitOptions
= fitoptions(libraryModelName
,Name,Value
)Name,Value
.
obtiene el objeto de opciones de ajuste para el fitOptions
= fitoptions(fitType
)fitType
especificado. Utilice esta sintaxis para trabajar con opciones de ajuste para modelos personalizados.
crea opciones de ajuste con opciones adicionales especificadas por uno o más argumentos de par fitOptions
= fitoptions(Name,Value
)Name,Value
.
modifica el objeto de opciones de ajuste existente newOptions
= fitoptions(fitOptions
,Name,Value
)fitOptions
y devuelve opciones de ajuste actualizadas en newOptions
con nuevas opciones especificadas por uno o más argumentos de par Name,Value
.
combina los objetos de opciones de ajuste existentes newOptions
= fitoptions(options1
,options2
)options1
y options2
en newOptions
.
Si
Method
coincide, los valores no vacíos de las propiedades enoptions2
anulan los valores correspondientes deoptions1
ennewOptions
.Si
Method
difiere,newOptions
contiene el valoroptions1
paraMethod
y valores deoptions2
paraNormalize
,Exclude
yWeights
.
Ejemplos
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)
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)
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)
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
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 |
---|---|
| Curva polinomial lineal |
| Superficie polinomial lineal |
| Curva polinomial cuadrática |
| Interpolación lineal por tramos |
| Interpolación cúbica por tramos |
| Spline de suavizado (curva) |
| 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
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 porexcludedata
.
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 |
---|---|
| Interpolación vecina más cercana |
| Interpolación lineal |
| Interpolación cúbica por tramos de Hermite (solo curvas) |
| Interpolación por splines cúbicos |
| Interpolación de superficie biarmónica |
| Spline de suavizado |
| Suavizado de Lowess (solo superficies) |
| Mínimos cuadrados lineales |
| Mínimos cuadrados no lineales |
Tipos de datos: char
| string
Opciones de interpolación
Método de extrapolación para un ajuste de interpolación, especificado como uno de los siguientes valores:
Valor | Descripción | Ajustes admitidos |
---|---|---|
"auto" | Valor predeterminado para todos los tipos de ajuste de interpolación. Establezca | Todos los tipos de ajuste de interpolación y ajustes de curva |
"none" | Sin extrapolación. Cuando se utiliza | Ajustes de curva: Ajustes de curva y de superficie: |
"linear" | Extrapolación lineal basada en gradientes de límite | Ajustes de superficie: Ajustes de curva y de superficie: |
"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: Ajustes de curva y de superficie: |
"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 | Ajustes de superficie: |
"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: |
"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 | Ajustes de curva: |
"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: |
Tipos de datos: char
| string
Opciones de suavizado
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
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
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
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 R2006aA partir de la versión 2023b, puede especificar métodos de extrapolación adicionales para los ajustes de interpolación de curva utilizando el argumento de par nombre-valor ExtrapolationMethod
. Para obtener más información, consulte Extrapolation for Interpolant Fit Types.
A partir de la versión R2023b, puede especificar los tipos de ajuste sigmoide y logarítmico para los ajustes de curva. Para obtener más información, consulte Lista de modelos de biblioteca para ajuste de curvas y de superficie.
A partir de la versión R2023a, fitoptions
devuelve objetos de valor en lugar de objetos de identificador. Para obtener más información, consulte Comparación de clases de identificadores y valores.
A partir de la versión 2023a, puede especificar el método de extrapolación para los ajustes de interpolación utilizando el argumento de par nombre-valor ExtrapolationMethod
. Para los ajustes de curvas, Curve Fitting Toolbox™ solo admite los métodos de extrapolación predeterminados disponibles en versiones anteriores.
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Seleccione un país/idioma
Seleccione un país/idioma para obtener contenido traducido, si está disponible, y ver eventos y ofertas de productos y servicios locales. Según su ubicación geográfica, recomendamos que seleccione: .
También puede seleccionar uno de estos países/idiomas:
Cómo obtener el mejor rendimiento
Seleccione China (en idioma chino o inglés) para obtener el mejor rendimiento. Los sitios web de otros países no están optimizados para ser accedidos desde su ubicación geográfica.
América
- América Latina (Español)
- Canada (English)
- United States (English)
Europa
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)