Está en la página 1de 4

Anlisis Numrico

Universidad Nacional de Misiones

Mtodos Interpolacin con MatLab


En matlab encontramos las siguientes funciones para interpolar datos:
interp1

interpolacin de datos unidimensionales.

spline

interpolacin con el mtodo de spline cbica

polyfit

interpolacin con polinomios

El comando interp1
El comando interp1 se emplea para interpolar una serie de datos. El formato
de este comando es:

Comandos utilizados
en esta gua
interp1
spline
polyfit
polyval
plot
subplot

yi = interp1(x, y, xi, mtodo)


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 funcin de interpolacin, expresada como vector fila. Si es un solo
valor, calcular el valor interpolando con la funcin declarada en mtodos.
mtodo: determina el mtodo de interpolacin, entre:
nearest

interpolacin asignado el valor del vecino ms cercano.

linear

interpolacin lineal (default)

spline

interpolacin con spline cbica

pchip

interpolacin con polinomios de Hermite

cubic

(igual que 'pchip')

v5cubic

interpolacin Cbica usada in MATLAB 5

ejemplos de implementacin:
>> 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

Mtodos Interpolacin con MatLab

Para calcular el valor interpolado, se puede proceder as:


y = interp1 (t, p, 2.5, 'spline')
y=
6.42187500000000
Graficando todos los mtodos en una sola figura puede servir para su comparacin. Ejecute la
siguiente serie de comandos, ya sea a travs de la lnea 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

2 de 4

Mtodos Interpolacin con MatLab

3 de 4

El comando spline
Otra manera de realizar una interpolacin de tipo spline, es invocando el comando spline, cuyo
formato se muestra a continuacin:

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 funcin de interpolacin, 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 grfico no se muestra en este ejemplo

El comando polyfit
Calcula los coeficientes de un polinomio de grado n que ajustan, mediante mnimos 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.
Adems, se usa el comando polyval para calcular el valor de un polinomio para un dado valor de x,
segn la forma:

y = polyval ( p , x )
donde: p es el polinomio, ingresado como vector fila y x es el valor de la incgnita 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

Mtodos Interpolacin con MatLab

Mario R. ROSENBERGER

4 de 4

También podría gustarte