Cómo extrapolación de los datos siguientes para el 850 y encima en matlab?

x =  200.0000  205.0000  210.0000  215.0000  220.0000  225.0000  230.0000  235.0000  240.0000 245.0000  250.0000  255.0000  260.0000  265.0000  270.0000  275.0000  280.0000  285.0000 290.0000  295.0000  300.0000  305.0000  310.0000  315.0000  320.0000  330.0000  340.0000 350.0000  360.0000  370.0000  380.0000  390.0000  400.0000  410.0000  420.0000  430.0000 440.0000  450.0000  460.0000  470.0000  480.0000  490.0000  500.0000  510.0000  520.0000 530.0000  540.0000  550.0000  560.0000  570.0000  580.0000  590.0000  600.0000  620.0000 640.0000  660.0000  680.0000  700.0000  750.0000  800.0000

y =  0.8900    0.8600    0.8400    0.8200    0.8000    0.7900    0.7700    0.7500    0.7400   0.7200    0.7100    0.6900    0.6800    0.6700    0.6500    0.6400    0.6300    0.6200   0.6100    0.6000    0.5900    0.5800    0.5700    0.5600    0.5500    0.5400    0.5200   0.5100    0.4900    0.4800    0.4700    0.4500    0.4400    0.4300    0.4200    0.4100   0.4000    0.3900    0.3900    0.3800    0.3700    0.3600    0.3600    0.3500    0.3400   0.3400    0.3300    0.3200    0.3200    0.3100    0.3100    0.3000    0.3000    0.2900   0.2800    0.2700    0.2600    0.2600    0.2400    0.2200
  • Yo diría que usted tiene que encajar en algún tipo de forma y, a continuación, será fácil llegar a cualquier otro punto de la curva. Echa un vistazo a fit método.
InformationsquelleAutor nsy | 2013-09-07

2 Comentarios

  1. 4

    Si usted parcela log(y) vs log(x) verá siguen una relación lineal. Por lo que podemos hacer:

    x =  [200.0000  205.0000  210.0000  215.0000  220.0000  225.0000  230.0000  235.0000  240.0000 245.0000  250.0000  255.0000  260.0000  265.0000  270.0000  275.0000  280.0000  285.0000 290.0000  295.0000  300.0000  305.0000  310.0000  315.0000  320.0000  330.0000  340.0000 350.0000  360.0000  370.0000  380.0000  390.0000  400.0000  410.0000  420.0000  430.0000 440.0000  450.0000  460.0000  470.0000  480.0000  490.0000  500.0000  510.0000  520.0000 530.0000  540.0000  550.0000  560.0000  570.0000  580.0000  590.0000  600.0000  620.0000 640.0000  660.0000  680.0000  700.0000  750.0000  800.0000];
    y =  [0.8900    0.8600    0.8400    0.8200    0.8000    0.7900    0.7700    0.7500    0.7400   0.7200    0.7100    0.6900    0.6800    0.6700    0.6500    0.6400    0.6300    0.6200   0.6100    0.6000    0.5900    0.5800    0.5700    0.5600    0.5500    0.5400    0.5200   0.5100    0.4900    0.4800    0.4700    0.4500    0.4400    0.4300    0.4200    0.4100   0.4000    0.3900    0.3900    0.3800    0.3700    0.3600    0.3600    0.3500    0.3400   0.3400    0.3300    0.3200    0.3200    0.3100    0.3100    0.3000    0.3000    0.2900   0.2800    0.2700    0.2600    0.2600    0.2400    0.2200];
    coeff = polyfit(-log10(x) , log10(y), 1)   % the '1' means linear
    xp = [200:1000];
    yp = 10^coeff(2)*xp.^(-coeff(1));
    plot(x,y,'o',xp,yp)

    Y se obtiene:

    La extrapolación no lineal de datos en matlab

  2. 3

    Estoy tratando de usar la función anterior para mi propia curva que me wannt de extender más , pero que se enfrenta a algún problema.
    Soy nuevo en esto de slm caja de herramientas. por favor, sugiera cómo evitar este error
    el tiempo que el 1 es eje x de la matriz de variables de tener el rango de valores: 9.8682 e-05 9.8687 e-05La extrapolación no lineal de datos en matlab

    Me gustaría comentar acerca de los peligros de la extrapolación. Nadie lo ha dicho mejor que el de Mark Twain, en la Vida en el Mississippi, aquí. Extrapolar demasiado lejos, y se espera la basura como una predicción.

    Habiendo dicho esto, hay muchas herramientas que se podrían utilizar. Usted podría hacer un ajuste exponencial de algunos secuaces. El problema aquí es que usted necesita para encontrar un modelo con la forma adecuada. Esto a menudo requiere un poco de experimentación para encontrar algo que se ajuste a los datos, si usted no tiene ya un modelo físico que tiene sentido a partir de primeros principios.

    Mejor es un modelo spline, pero se trata de un problema de la interpolación de spline extrapola mal. Así que mi recomendación es utilizar una herramienta como SLM, a continuación, en la construcción de su conocimiento de lo que puede o debería suceder en la región de la extrapolación.

    Aquí, he hecho algunas suposiciones razonables de las propiedades de la curva como es extrapolable a cabo bastantes maneras. Me he impuesto una monótona y la disminución de la restricción de sobre toda la curva, con un resultado positivo de las segundas derivadas. Así, el derecho de punto final no se permitió que se encuentran debajo de cero.

    mdl = slmengine(x,y,'knots',[200:100:800,1000:500:2000],... 
       'decreasing','on','concaveup','on','rightminvalue',0,'plot','on');

    La extrapolación no lineal de datos en matlab

Dejar respuesta

Please enter your comment!
Please enter your name here