Está en la página 1de 4

Análisis Numérico

Universidad Nacional de Misiones

Métodos Interpolación con MatLab

En matlab encontramos las siguientes funciones para interpolar datos:


Comandos utilizados
interp1 interpolación de datos unidimensionales. en esta guía
spline interpolación con el método de spline cúbica
interp1
polyfit interpolación con polinomios
spline
polyfit
El comando “interp1” polyval
plot
subplot
El comando interp1 se emplea para interpolar una serie de datos. El formato
de este comando es:

yi = interp1(x, y, xi, método)


Donde:
x : abscisa de los puntos a interpolar, expresada como vector fila.
y : ordenada de los puntos a interpolar, expresada como vector fila.
xi : abscisas para construir la función de interpolación, expresada como vector fila. Si es un solo
valor, calculará el valor interpolando con la función declarada en métodos.
método: determina el método de interpolación, entre:

nearest interpolación asignado el valor del vecino más cercano.


linear interpolación lineal (default)
spline interpolación con spline cúbica
pchip interpolación con polinomios de Hermite
cubic (igual que 'pchip')
v5cubic interpolación Cúbica usada in MATLAB 5

ejemplos de implementación:

>> t = [1 2 3 4 5];
>> p = [3 5 7 5 6];
>> x = 1:0.1:6;
>> y = interp1 (t, p, x, 'spline');
>> plot (t, p,'o',x, y)

Mario R. ROSENBERGER 1 de 4
Métodos Interpolación con MatLab 2 de 4

Para calcular el valor interpolado, se puede proceder así:

y = interp1 (t, p, 2.5, 'spline')


y=
6.42187500000000

Graficando todos los métodos en una sola figura puede servir para su comparación. Ejecute la
siguiente serie de comandos, ya sea a través de la línea de comandos o mediante un archivo m.

t = [1 2 3 4 5 6 7 8];
p = [3 5 7 5 6 7 7 5];
% t=linspace(-1,1,10);
% p=1./(1+25*t.^2);
x = 1:0.1:8;
%x = linspace(-1,1,100);
y = interp1 (t, p, x, 'spline') ; plot (t, p,'o',x, y); hold on
y = interp1 (t, p, x, 'linear') ; plot (x, y,'r')
y = interp1 (t, p, x, 'nearest') ; plot (x, y,'g')
y = interp1 (t, p, x, 'pchip') ; plot (x, y,'b')
y = interp1 (t, p, x, 'cubic') ; plot (x, y,'c')
y = interp1 (t, p, x, 'v5cubic') ; plot (x, y,'m')

hold off
%

Mario R. ROSENBERGER
Métodos Interpolación con MatLab 3 de 4

El comando “spline”
Otra manera de realizar una interpolación de tipo spline, es invocando el comando spline, cuyo
formato se muestra a continuación:

yy = spline (x, y, xx)


Donde:
x : abscisa de los puntos a interpolar, expresada como vector fila.
y : ordenada de los puntos a interpolar, expresada como vector fila.
xx : abscisas para construir la función de interpolación, expresada como vector fila. Si es un
solo valor calculará el valor interpolando.

Ejemplo:

x = 0:10;
y = sin(x);
xx = 0:.25:10;
yy = spline (x, y, xx);
plot (x, y, 'o', xx, yy) % el gráfico no se muestra en este ejemplo

El comando “polyfit”
Calcula los coeficientes de un polinomio de grado “n” que ajustan, mediante mínimos cuadrados, a una
serie de datos. El formato de este comando se resume, así:

yy = polyfit (x, y, orden)

x : abscisa de los puntos a interpolar, expresada como vector fila.


y : ordenada de los puntos a interpolar, expresada como vector fila.
orden: indica el orden del polinomio que se utilizará en el ajuste.

Además, se usa el comando polyval para calcular el valor de un polinomio para un dado valor de x,
según la forma:
y = polyval ( p , x )
donde: p es el polinomio, ingresado como vector fila y x es el valor de la incógnita cuya imagen se
desea calcular.

Ejemplo:

>> t = [1 2 3 4 5];

>> m = [3 5 7 5 6];

>> p = polyfit (t, m, 2);


>> f = polyval (p, x);
>> plot (t, m, 'o', x, f)

Mario R. ROSENBERGER
Métodos Interpolación con MatLab 4 de 4

Mario R. ROSENBERGER