Gesoestadística
-
Upload
hugo-carrasco -
Category
Documents
-
view
221 -
download
5
description
Transcript of Gesoestadística
-
Ejercicios prcticos: Interpolaciones y funciones de base radial 1D (RBF) en
MATLAB
(a entregar)
I) Interpolacin 1D
1) Considere el siguiente conjunto de datos:
x y
0 2.3
1 5.8
2 8.9
3 12.5
4 14.7
5 18.7
6 20.5
7 25.8
Interpole los datos de x entre los puntos x=0 y x=10, usando un paso de
x=0.5 y los siguientes mtodos de interpolacin:
a) Lineal (por defecto).
b) De vecinos mas cercanos (nearest)
c) spline
d) pchip
e) cubic
f) v5cubic
Grafique los datos y el modelo interpolado en la misma figura por cada mtodo de
interpolacin. Compare sus resultados.
Solucion:
Los modelos que ajustan los datos con el mtodo lineal, de vecinos cercanos y
cubico (Matlab V5) no pueden extrapolar.
-
a)
b)
0 1 2 3 4 5 6 7 8 9 100
5
10
15
20
25
30
x
y
interpolacin de datos 1D
datos
modelo lineal
0 1 2 3 4 5 6 7 8 9 100
5
10
15
20
25
30
x
y
interpolacin de vecinos mas cercanos
datos
modelo nearest
yi = Columns 1 through 10 2.3000 4.0500 5.8000 7.3500 8.9000 10.7000 12.5000 13.6000 14.7000 16.7000 Columns 11 through 20 18.7000 19.6000 20.5000 23.1500 25.8000 NaN NaN NaN NaN NaN Column 21 NaN
yin = Columns 1 through 10 2.3000 5.8000 5.8000 8.9000 8.9000 12.5000 12.5000 14.7000 14.7000 18.7000 Columns 11 through 20 18.7000 20.5000 20.5000 25.8000 25.8000 NaN NaN NaN NaN NaN Column 21 NaN
-
c)
d)
0 1 2 3 4 5 6 7 8 9 100
20
40
60
80
100
120
140
160
x
y
interpolacin spline
datos
modelo spline
yis = Columns 1 through 10 2.3000 4.2375 5.8000 7.2625 8.9000 10.8251 12.5000 13.5247 14.7000
16.7262 Columns 11 through 20 18.7000 19.7204 20.5000 22.1546 25.8000 32.5521 43.5268 59.8399
82.6072 112.9446 Column 21 151.9679
-
e)
0 1 2 3 4 5 6 7 8 9 100
5
10
15
20
25
30
35
40
x
y
interpolacin pchip
datos
modelo piecewise cubic hermite interpolation
0 1 2 3 4 5 6 7 8 9 100
5
10
15
20
25
30
35
40
x
y
interpolacin cubica
datos
modelo cubico
yip = Columns 1 through 10 2.3000 4.1015 5.8000 7.3446 8.9000 10.7750 12.5000 13.5865 14.7000 16.7445 Columns 11 through 20 18.7000 19.5744 20.5000 22.6047 25.8000 29.4390 32.8746 35.4599 36.5479 35.4915 Column 21 31.6437
yic = Columns 1 through 10 2.3000 4.1015 5.8000 7.3446 8.9000 10.7750 12.5000 13.5865 14.7000 16.7445 Columns 11 through 20 18.7000 19.5744 20.5000 22.6047 25.8000 29.4390 32.8746 35.4599 36.5479 35.4915 Column 21 31.6437
-
f)
****************************************************************************
II) Interpolacin 2D usando funciones de base radial
A partir de la siguiente funcin y utilizando MATLAB:
() = (2)
1) Calcule y grafique la interpolacin gaussiana RBF con el parmetro ms
adecuado (*). Grafique la funcin (), los nodos de interpolacin usados y la interpolacin Gaussiana RBF. Explique su resultado.
Solucin:
%EJERCICIO 1 x = -2:0.5:2; xi = -2:0.01:2;
0 1 2 3 4 5 6 7 8 9 100
5
10
15
20
25
30
x
yinterpolacin cubica en MATLAB V5
datos
modelo cubico
yiv5c = Columns 1 through 10 2.3000 4.1000 5.8000 7.3438 8.9000 10.7563 12.5000 13.5750 14.7000 16.7250 Columns 11 through 20 18.7000 19.5188 20.5000 22.7125 25.8000 NaN NaN NaN NaN NaN Column 21 NaN
-
y = x.*exp(-x.*x); yi = xi.*exp(-xi.*xi);
%param=10; param=0.5; %parametro ideal de interpolacin porque es aproximadamente
igual a la distancia entre nodos %param=0.1; fi=rbfinterp(xi, rbfcreate(x, y,'RBFFunction', 'gaussian', 'RBFConstant',
param)); figure(4),plot(x,y,'o',xi,yi, xi, fi); legend('Nodos de interpolacin',
'funcin', 'Interpolacin Gausiana RBF')
(*) Nota: recuerde que el ptimo es cercano a la distancia entre los nodos de
interpolacin.
2) Calcule la funcin de aproximacin gaussiana usando un parmetro
suavizador =0.1 y =0.5. Compare estos dos resultados. Grafique la funcin
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2-0.5
-0.4
-0.3
-0.2
-0.1
0
0.1
0.2
0.3
0.4
0.5
Nodos de interpolacin
funcin
Interpolacin Gausiana RBF
-
(), los nodos de interpolacin usados y la aproximacin Gaussiana RBF Compare estos resultados con los de la interpolacin del ejercicio (1).
%EJERCICIO 2 % Interpolacin vs suavizado
x = -2:0.5:2; xi = -2:0.01:2; y = x.*exp(-x.*x); yi = xi.*exp(-xi.*xi);
%param=10; param=0.5; %parametro ideal de interpolacin porque es aproximadamente
igual a la distancia entre nodos param_s=0.1; fi=rbfinterp(xi, rbfcreate(x, y,'RBFFunction', 'gaussian', 'RBFConstant',
param)); %interpola gi=rbfinterp(xi, rbfcreate(x, y,'RBFFunction', 'gaussian', 'RBFSmooth',
param_s));%suaviza figure(5),plot(x,y,'o',xi,yi, xi, fi, xi,gi); legend('Nodos de
interpolacin', 'funcin', 'Interpolacin Gausiana RBF','Aproximacin
Gausiana RBF')
3) Calcule la interpolacin multicuadrtica (mulitiquadric) RBF y la
interpolacin cbica y estime sus errores. Grafique la funcin (), los nodos
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2-0.5
-0.4
-0.3
-0.2
-0.1
0
0.1
0.2
0.3
0.4
0.5
Nodos de interpolacin
funcin
Interpolacin Gausiana RBF
Aproximacin Gausiana RBF
-
de interpolacin usados, la interpolacin multicuadrtica RBF y la
interpolacin cbica. Compare estos resultados.
%EJERCICIO 3 %interpolacin cbica x = -2:0.5:2; xi = -2:0.01:2; y = x.*exp(-x.*x); yi = xi.*exp(-xi.*xi); %1D Interpolation cubica usando RBF ym = interp1(x,y,xi,'cubic');
fi=rbfinterp(xi, rbfcreate(x, y,'RBFFunction', 'multiquadric'));
%interpola cuadratico figure(6),plot(x,y,'o', xi,yi, xi,fi, xi,ym); legend('Nodos de interpolacin', 'funcin', 'Interpolacin RBF
multiquadric', 'Interpolacin cbica del Matlab') figure(7),plot( xi, abs(fi-yi), xi, abs(ym-yi)); legend('Error de interpolacin RBF','Error de interpolacin cbica
MATLAB');
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2-0.5
-0.4
-0.3
-0.2
-0.1
0
0.1
0.2
0.3
0.4
0.5
Nodos de interpolacin
funcin
Interpolacin RBF multiquadric
Interpolacin cbica del Matlab
-
A partir de la siguiente funcin y utilizando MATLAB:
() = (22)
4) Grafique una malla aleatoria (use la funcin rand tipo seed y la funcin
meshgrid) de 50 puntos en el intervalo entre -2 < x < 2 y -2 < y < 2, a un
paso de 0.05 puntos. A dicha malla asgnele la funcin () e interplela (use las funciones meshgrid y griddata, este ltimo con una interpolacin
cbica). Interpole los datos utilizando la interpolacin RBF multicuadrtica
(funcin rbfinterp, rbfcreate) con un parmetro =2.0. Grafique en 3D y
compare ambos resultados. Calcule los errores con amabas
interpolaciones y grafquelas. Compare los resultados.
%Ejercicio 4
rand('seed',0) x = rand(50,1)*4-2; y = rand(50,1)*4-2; z = x.*exp(-x.^2-y.^2);
ti = -2:.05:2; [XI,YI] = meshgrid(ti,ti);
%interpolacion cubica con la function griddata ZIc = griddata(x,y,z,XI,YI,'cubic');
-2 -1.5 -1 -0.5 0 0.5 1 1.5 20
0.005
0.01
0.015
0.02
0.025
0.03
0.035
0.04
0.045
Error de interpolacin RBF
Error de interpolacin cbica MATLAB
-
%RBF interpolation ZI = rbfinterp([XI(:)'; YI(:)'], rbfcreate([x'; y'], z','RBFFunction',
'multiquadric', 'RBFConstant', 2)); %ZI = rbfinterp([XI(:)'; YI(:)'], rbfcreate([x'; y'], z','RBFFunction',
'cubic', 'RBFConstant', 2)); ZI_s = reshape(ZI, size(XI)); %cambia el tamao, en este caso de vector
ZI a matriz
%Plot data figure(8) subplot(2,2,1); mesh(XI,YI,ZIc), hold, axis([-2 2 -2 2 -0.5 0.5]); plot3(x,y,z,'.r'), hold off; title('Interpolation using Matlab function
griddata(method=cubic)');
subplot(2,2,3); pcolor(abs(ZIc - XI.*exp(-XI.^2-YI.^2))); colorbar;
title('griddata(method=cubic) interpolation error');
subplot(2,2,2); mesh(XI,YI,ZI_s), hold, plot3(x,y,z,'.r'), hold off; title('RBF
interpolation'); axis([-2 2 -2 2 -0.5 0.5]);
subplot(2,2,4); pcolor(abs(ZI_s - XI.*exp(-XI.^2-YI.^2))); colorbar; title('RBF
interpolation error');
Conclusiones: el mtodo cubico no extrapola y las interpolaciones resultantes de los dos mtodos difieren porque la una arroja una interpolacin cubica (la obtenida con las funcin griddata) y la otra arroja una interpolacin multicuadrtica (la obtenida con las funciones de base radial). Esto se ve reflejado en los errores de interpolacin que son mas altos altos al utilizar el mtodo cbic (del orden de 10-2) comparados el del metodo multicuadratico (10-3). Si utlizaramos el metodo cubico con las FBR entonces estos errores aumentaran.
-
-2-1
.5-1
-0.5
00.5
11.5
2-2
-1.5-1
-0.50
0.51
1.52
Inte
rpola
tion u
sin
g M
atlab function g
riddata
(meth
od=
cubic
)
10
20
30
40
50
60
70
80
10
20
30
40
50
60
70
80
griddata
(meth
od=
cubic
) in
terp
ola
tion e
rror
0.0
2
0.0
4
0.0
6
0.0
8
0.1
-2-1
.5-1
-0.5
00.5
11.5
2-2
-1.5-1
-0.50
0.51
1.52
RB
F inte
rpola
tion
10
20
30
40
50
60
70
80
10
20
30
40
50
60
70
80
RB
F inte
rpola
tion e
rror
1234567x 1
0-3
-
-2-1
01
2
-2
-1
0
1
2-0
.50
0.5
Inte
rpola
tion u
sin
g M
atlab function g
riddata
(meth
od=
cubic
)
10
20
30
40
50
60
70
80
10
20
30
40
50
60
70
80
griddata
(meth
od=
cubic
) in
terp
ola
tion e
rror
0.0
2
0.0
4
0.0
6
0.0
8
0.1
-2-1
01
2
-2
-1
0
1
2-0
.50
0.5
RB
F inte
rpola
tion
10
20
30
40
50
60
70
80
10
20
30
40
50
60
70
80
RB
F inte
rpola
tion e
rror
1234567x 1
0-3