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.

Modelos personalizados

Modelos personalizados frente a modelos de la biblioteca

Si la biblioteca de la toolbox no contiene la ecuación paramétrica que busca, puede crear una ecuación personalizada. Sin embargo, los modelos de la biblioteca son mejores para una convergencia rápida. Esto se debe a que:

  • Para la mayoría de los modelos de la biblioteca, la toolbox calcula los puntos de partida del coeficiente óptimos predeterminados. Para los modelos personalizados, la toolbox selecciona puntos de partida predeterminados al azar en el intervalo [0,1]. Para los modelos personalizados, debe identificar puntos de partida apropiados.

  • Los modelos de la biblioteca utilizan jacobianos analíticos. Los modelos personalizados utilizan diferenciación finita.

Ajuste lineal y no lineal

Puede crear ecuaciones generales personalizadas con el tipo de ajuste Ecuación personalizada. Los modelos generales son combinaciones no lineales de términos (quizás no lineales). Vienen definidos por ecuaciones que pueden ser no lineales en los parámetros. El ajuste de ecuaciones personalizadas utiliza el procedimiento de ajuste por mínimos cuadrados no lineales.

Puede definir una ecuación lineal personalizada con el tipo de ajuste Ecuación personalizada, aunque el ajuste no lineal es menos eficaz y suele ser más lento que el ajuste por mínimos cuadrados lineales.

  • Si no sabe si su ecuación se puede expresar como un conjunto de funciones lineales, seleccione Custom Equation. Puede que tenga que buscar puntos de partida apropiados.

  • Si necesita el ajuste por mínimos cuadrados lineales para las ecuaciones personalizadas, seleccione el tipo de modelo Linear Fitting. Consulte .

Seleccionar un ajuste de Ecuación personalizada de forma interactiva

En la app Curve Fitting, seleccione Custom Equation de la lista de tipos de modelo.

Utilice el ajuste de ecuación personalizada para definir sus propias ecuaciones. Cuando selecciona Custom Equation de la lista, aparece una ecuación personalizada de ejemplo, como se muestra aquí para datos de curva.

Si cuenta con datos de superficie, la ecuación personalizada de ejemplo utiliza x e y.

  1. Puede modificar x, y y z con cualquier nombre de variable válido.

  2. En el cuadro inferior, modifique el ejemplo para definir su ecuación personalizada. Puede indicar cualquier expresión de MATLAB® válida para los nombres de variables que elija. Puede especificar un nombre de script o de función (consulte Ajustar una curva definida por un archivo en la app Curve Fitting).

  3. Haga clic en Fit Options si desea especificar puntos de partida o cotas. De forma predeterminada, los puntos de partida se seleccionan al azar en el intervalo [0,1] y son ilimitados. Puede que tenga que buscar puntos de partida y cotas apropiados. Para ver un ejemplo, consulte .

    Si define opciones de ajuste y luego modifica otra configuración del ajuste, si es posible, la app recuerda los valores seleccionados para las cotas superior e inferior y para los puntos de partida. Para las ecuaciones personalizadas, la app Curve Fitting siempre recuerda los valores del usuario. No obstante, con muchos modelos de biblioteca, si cambia la configuración de ajuste, entonces la app calcula automáticamente los nuevos mejores valores para los puntos de partida o las cotas inferiores.

Puede guardar las ecuaciones personalizadas como parte de su sesión guardada de la app Curve Fitting.

Su función se puede ejecutar un número de veces, tanto durante el ajuste como durante el preprocesamiento antes del ajuste. Tenga en cuenta que puede que esto lleve cierto tiempo si está utilizando funciones con efectos colaterales como escribir datos en un archivo o mostrar información de diagnóstico en la ventana de comandos.

Para obtener ejemplos, consulte:

Ajustar una curva definida por un archivo en la app Curve Fitting

Este ejemplo muestra cómo proporcionar un nombre de script o de función como modelo de ajuste en la app Curve Fitting. Defina una función en un archivo y utilícela para ajustar una curva.

  1. Defina una función en un archivo de MATLAB.

    function y = piecewiseLine(x,a,b,c,d,k)
    % PIECEWISELINE   A line made of two pieces
    % that is not continuous.
    
    y = zeros(size(x));
    
    % This example includes a for-loop and if statement
    % purely for example purposes.
    for i = 1:length(x)
        if x(i) < k,
            y(i) = a + b.* x(i);
        else
            y(i) = c + d.* x(i);
        end
    end
    end

    Guarde el archivo en la ruta de MATLAB.

  2. Defina algunos datos y abra la app Curve Fitting.

    x = [0.81;0.91;0.13;0.91;0.63;0.098;0.28;0.55;...
        0.96;0.96;0.16;0.97;0.96];
    y = [0.17;0.12;0.16;0.0035;0.37;0.082;0.34;0.56;...
        0.15;-0.046;0.17;-0.091;-0.071];
    cftool
  3. En la app Curve Fitting, seleccione x e y en las listas X data e Y data.

  4. Utilice su función piecewiseLine de la app Curve Fitting seleccionando el tipo de ajuste Ecuación personalizada, y luego indique la expresión de su función en el cuadro de texto de la ecuación personalizada. La función toma los datos de x y algunos parámetros para el ajuste.

    piecewiseLine( x, a, b, c, d, k )

    La app Curve Fitting crea un ajuste con su función.

Sugerencia

Si quiere utilizar la misma función de ajuste en la línea de comandos, utilice la misma expresión como entrada para fittype, y luego utilice el fittype como entrada para fit:

ft = fittype('piecewiseLine( x, a, b, c, d, k )');
f = fit( x, y, ft)
Para obtener más ejemplos, consulte la función fit.

Seleccionar un ajuste de ecuación personalizada desde la línea de comandos

Para ajustar modelos personalizados, puede:

  • Proporcionar un modelo personalizado para la función fit en el argumento de entrada fitType. Puede utilizar una expresión de MATLAB (incluido cualquier archivo .m), un arreglo de celdas de términos de modelo lineal o una función anónima.

  • Crear un objeto fittype con la función fittype y utilizarlo como argumento de entrada para la función fit.

Este ejemplo carga algunos datos y utiliza una ecuación personalizada que define un modelo de Weibull como entrada para la función fit:

time = [ 0.1;   0.1;   0.3;   0.3;   1.3;   1.7;   2.1;   2.6;   3.9;   3.9; ...
         5.1;   5.6;   6.2;   6.4;   7.7;   8.1;   8.2;   8.9;   9.0;   9.5; ...
         9.6;  10.2;  10.3;  10.8;  11.2;  11.2;  11.2;  11.7;  12.1;  12.3; ...
        12.3;  13.1;  13.2;  13.4;  13.7;  14.0;  14.3;  15.4;  16.1;  16.1; ...
        16.4;  16.4;  16.7;  16.7;  17.5;  17.6;  18.1;  18.5;  19.3;  19.7;];
conc = [0.01;  0.08;  0.13;  0.16;  0.55;  0.90;  1.11;  1.62;  1.79;  1.59; ...
        1.83;  1.68;  2.09;  2.17;  2.66;  2.08;  2.26;  1.65;  1.70;  2.39; ...
        2.08;  2.02;  1.65;  1.96;  1.91;  1.30;  1.62;  1.57;  1.32;  1.56; ...
        1.36;  1.05;  1.29;  1.32;  1.20;  1.10;  0.88;  0.63;  0.69;  0.69; ...
        0.49;  0.53;  0.42;  0.48;  0.41;  0.27;  0.36;  0.33;  0.17;  0.20;];

f = fit( time, conc, 'c*a*b*x^(b-1)*exp(-a*x^b)', 'StartPoint', [0.01, 2, 5] )
plot( f, time, conc )

Para definir un modelo personalizado con fittype, utilice la forma:

f = fittype(expr)
que construye un objeto fittype de modelo personalizado para la expresión de MATLAB contenida en la cadena, el arreglo de celdas o la función anónima expr.

Consulte la página de referencia de fittype para obtener detalles sobre:

  • Especificar variables dependientes e independientes, parámetros de problema y coeficientes con fittype.

  • Especificar un arreglo de celdas de términos para utilizar un algoritmo de ajuste lineal para la ecuación personalizada. Si expr es una cadena o una función anónima, la toolbox utiliza un algoritmo de ajuste no lineal.

    Para obtener más detalles sobre el ajuste lineal, consulte .

  • Ejemplos de modelos personalizados lineales y no lineales.

Para ver un ejemplo paso a paso, consulte .