Interpolación con Curve Fitting Toolbox
La interpolación es un proceso para estimar valores que quedan entre puntos de datos conocidos.
La interpolación implica crear una función f que coincida con los valores de datos proporcionados yi en los sitios de datos proporcionados xi, donde f(xi) = yi para todo i.
La mayoría de los métodos de interpolación crean la interpolación f como la función única de la fórmula
donde el formato de las funciones fj depende del método de interpolación.
En el caso de las interpolaciones por splines, fj son los n B-splines consecutivos Bj(x) = B(x|tj,...,tj+k), j = 1:n, de orden k para una secuencia de nudos t1 ≤ t2 ≤ ... ≤ tn + k.
Acerca de los métodos de interpolación
Curve Fitting Toolbox™ admite los métodos de interpolación descritos en la tabla siguiente.
Método | Descripción |
---|---|
Lineal | Interpolación lineal. Este método ajusta un polinomio lineal distinto entre cada par de puntos de datos (en el caso de una curva) o entre conjuntos de tres puntos (en el caso de una superficie). |
Vecino más cercano | Interpolación por el vecino más cercano. Este método establece el valor de un punto interpolado como el valor del punto de datos más cercano. |
Splines cúbicos | Interpolación por splines cúbicos. Este método ajusta un polinomio cúbico distinto entre cada par de puntos de datos (en el caso de una curva) o entre conjuntos de tres puntos (en el caso de una superficie). |
Que conserva la forma (PCHIP) | Interpolación cúbica por tramos de Hermite (PCHIP, por su sigla en inglés). Este método conserva la monotonicidad y la forma de los datos (solo para curvas). |
Biarmónica (v. 4) | Método |
Splines de thin-plate | Interpolación por splines de thin-plate. Este método ajusta superficies suaves que también se extrapolan bien (solo para superficies). |
Los ajustes de superficies de interpolación usan la función scatteredInterpolant
de MATLAB para los métodos lineal y por el vecino más cercano, y la función griddata
de MATLAB para los métodos de splines cúbicos y biarmónico. El método de los splines de thin-plate usa la función tpaps
.
El método de interpolación que se debe usar depende de varios factores, como las características de los datos que se desea ajustar, la suavidad requerida para la curva, las consideraciones sobre velocidad y los requisitos de análisis posteriores al ajuste. Los métodos lineal y por el vecino más cercano ajustan los modelos con más eficacia y las curvas resultantes no son muy suaves. Los métodos por splines cúbicos, de conservación de la forma y biarmónico tardan más en ajustar los modelos, pero las curvas resultantes son muy suaves.
Por ejemplo, en la gráfica siguiente se muestra un ajuste de interpolación por el vecino más cercano y un ajuste de interpolación que conserva la forma (PCHIP) para los datos de reacción nuclear del conjunto de datos de muestra carbon12alpha.mat
. La interpolación por el vecino más cercano no es tan suave como la interpolación que conserva la forma.
Nota
No se definen valores estadísticos de bondad de ajuste, límites de predicción ni ponderaciones para las interpolaciones. Además, los valores residuales del ajuste son siempre cero (con precisión informática) ya que las interpolaciones pasan por los puntos de datos.
Los ajustes de interpolación biarmónicos consisten en interpolaciones de función de base radial. Todas las demás interpolaciones admitidas por Curve Fitting Toolbox son polinómicas por tramos y consisten en múltiples polinomios definidos entre puntos de datos. En el caso de las interpolaciones PCHIP y por splines cúbicos, cuatro coeficientes describen cada tramo. Curve Fitting Toolbox utiliza un polinomio cúbico (de tercer grado) para calcular los cuatro coeficientes. Para obtener más información, consulte lo siguiente:
spline
para interpolación por splines cúbicospchip
para interpolación que conserva la forma (PCHIP) y para una comparación de las interporlaciones PCHIP y por splines cúbicosscatteredInterpolant
,griddata
ytpaps
para interpolación de superficieEs posible ajustar un único polinomio de interpolación a datos de un grado menor que el número de puntos de datos. Sin embargo, el comportamiento de estos ajustes es impredecible entre los puntos de datos. Los polinomios por tramos con segmentos de orden inferior no divergen de forma significativa del dominio de ajuste de los datos, por lo que son útiles para analizar una gama de conjuntos de datos más amplia.
Seleccionar un ajuste de interpolación
Seleccionar un ajuste de interpolación de forma interactiva
Abra la app Curve Fitter escribiendo curveFitter
en la línea de comandos de MATLAB. También puede hacer clic en Curve Fitter dentro del grupo Math, Statistics and Optimization de la pestaña Apps.
En la pestaña Curve Fitter, en la sección Fit Type, seleccione un ajuste Interpolant. La app ajusta una curva o superficie interpolada que pasa por todos los puntos de datos.
En el panel Fit Options, puede especificar el valor de Interpolation method.
Para datos de curva, puede establecer Interpolation method en Linear
, Nearest neighbor
, Cubic Spline
o Shape-preserving (PCHIP)
. Para datos de superficie, puede establecer Interpolation method en Nearest neighbor
, Linear
, Cubic Spline
, Biharmonic (v4)
o Thin-plate spline
.
Para superficies, el ajuste Interpolant utiliza la función scatteredInterpolant
para los métodos Linear
y Nearest neighbor
, la función griddata
para los métodos Cubic Spline
y Biharmonic (v4)
, y la función tpaps
para el método Thin-plate spline
. Pruebe el método Thin-plate spline
cuando necesite una interpolación de superficies suaves y buenas propiedades de extrapolación.
Sugerencia
Si las variables de datos tienen escalas muy diferentes, marque y desmarque la casilla de verificación Center and scale para ver la diferencia de ajuste. Normalizar los datos de entrada puede influir en los resultados de la interpolación Linear
y Cubic Spline
por tramos y en los métodos de interpolación de superficie Nearest neighbor
.
Ajustar un modelo de interpolación lineal con la función fit
Cargue el conjunto de datos de muestra census
.
load census
Las variables pop
y cdate
contienen datos sobre el tamaño de la población y el año en que se ha realizado el censo, respectivamente.
Puede utilizar la función fit
para ajustar los modelos de interpolación descritos en Nombres de modelos de interpolación. En este caso, ajuste un modelo de interpolación lineal utilizando la opción 'linearinterp'
y, a continuación, represente el resultado.
f = fit(cdate,pop,'linearinterp');
plot(f,cdate,pop);
Comparar modelos de interpolación lineal
Cargue el conjunto de datos de muestra carbon12alpha
. Cree ajustes de interpolación por el vecino más cercano y PCHIP utilizando las opciones 'nearestinterp'
y 'pchip'
.
load carbon12alpha f1 = fit(angle,counts,'nearestinterp'); f2 = fit(angle,counts,'pchip');
Compare las curvas ajustadas f1
y f2
representándolas en una misma figura.
p1 = plot(f1,angle,counts); xlim([min(angle),max(angle)]) hold on p2 = plot(f2,'b'); hold off legend([p1;p2],'Counts per Angle','Nearest Neighbor','PCHIP',... 'Location','northwest')