Métodos Interpolación con MatLab El comando “interp1” yi = interp1

Anuncio
Análisis Numérico
Universidad Nacional de Misiones
Métodos Interpolación con MatLab
En matlab encontramos las siguientes funciones para interpolar datos:
interp1
interpolación de datos unidimensionales.
spline
interpolación con el método de spline cúbica
polyfit
interpolación 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 guía
interp1
spline
polyfit
polyval
plot
subplot
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
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
2 de 4
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
Mario R. ROSENBERGER
4 de 4
Descargar