Está en la página 1de 12

Interpolación

• Se dice que una función g interpola a los puntos


{(x0,y0), (x1,y1), (x2,y2), …,(xn,yn)},
• si g(x0) = y0, g(x1) = y1, g(x2) = y2, …,g(xn) = yn.

La función g, definida por


g(x)=x² interpola a los puntos
(0,0),(1,1),⋯,(2,4), pues se
verifican g(0)=0, g(1)=1,⋯,
g(2)=4. La función h, definida
por h(x)=2x/(3-x) también
interpola a los puntos dados.
Ejercicio: Cree vectores x y y para representar los
siguientes datos:
x y
10 23
20 45
30 60
40 82
50 111
60 140
70 167
80 198
90 200
100 220
• x=10:10:100;
• y=[23,45,60,82,111,140,167,198,200,220];

• Interpolación:
• 1. Grafique los datos en XY.
• >> plot(x, y, 'ro--')
• 2. Use interpolación lineal para aproximar
el valor de y cuando x=45. Luego grafique.
• >> xp = 45; yp = interp1(x, y, xp)
• >> plot(x, y, 'ro--', xp, yp, 'g*' )
• 3. Use interpolación cúbica segmentaria
(spline) para aproximar el valor de y
cuando x=45. Luego grafique.
• >> xs = 45; ys = interp1( x, y, xs, 'spline')
• >> plot(x, y, 'ro--', xs, ys, 'g*' )
• 4. Use interpolación lineal para aproximar
el valor de x cuando y = 80.
• >> yp = 80 ; xp = interp1(y, x, yp)
• 5. Use interpolación cúbica segmentaria
(spline) para aproximar el valor de x
cuando y = 80.
• >> ys = 80; xs = interp1(y, x, ys,’spline’)
• 6. Use interpolación cúbica segmentaria
(spline) para aproximar valores y para
valores x igualmente espaciados entre
10 y 100 a intervalos de 2.

• >> xs = 10:2:100;
• >> ys = interp1(x, y, xs, 'spline');
• 7. Grafique los datos originales en una
gráfica XY como puntos de datos no
conectados por una línea. Además,
grafique los valores calculados en
el problema 6.

• >>plot(x, y, 'ro--', xs, ys, '-*g' )


Ajuste de curvas
• 8.- Use la función polyfit para ajustar los
datos a un polinomio de primer orden.
• >> coef = polyfit(x, y, 1)
• 9.- Cree un vector de nuevos valores x,
desde 10 hasta 100 en intervalos de 2.
Use su nuevo vector en la función polyval
junto con los valores de coeficientes en el
problema 8 para crear un nuevo vector y.
• >>xx = 10:2:100;
• >>yy_orden1 = polyval(coef, xx);
• 10.- Grafique los datos originales como
círculos sin una línea conectora y los
datos calculados como una línea sólida en
la misma gráfica.
• >>plot(x,y, 'o', xx, yy_orden1)
Regresión Polinomial
>> x = 0:5;
>> y = [15, 10, 9, 6, 2,0];
coef = polyfit(x, y, 1)
coef =
-2.9143 14.2857
>> yy = coef(1)*x+ coef(2)
yy =
14.2857 11.3714 8.4571 5.5429 2.6286 -0.2857
>> plot(x, y, 'o', x, yy)
>> title('Mejor Ajuste con uso de Regresión Lineal')
Interpolación Polinomial:
Ejercicio: Cree vectores x y y para representar los
siguientes datos:
x y
-55 -3.25
-25 -3.20
5 -3.02
35 -3.32
65 -3.10
>> x=[ -55, -25, 5, 35, 65];
>> y=[ -3.25, -3.20, -3.02, -3.32, -3.10];
• Interpolación Polinomial:

• Encuentre los coeficientes del polinomio interpolante:


• >> format short e;
• >> c=polyfit(x, y, length(x)-1)
• c=
• 8.2819e-008 -4.5267e-007 -3.4684e-004 3.7757e-
004
-3.0132e+000
• >> z = linspace(x(1), x(end ), 100);
• >> p=polyval(c, z);
• >> plot(z, p, x, y, 'o')
• >> title('Interpolación Polinomial')
• >> grid on;
Interpolación Polinomial
-2.95

-3

-3.05

-3.1

-3.15

-3.2

-3.25

-3.3

-3.35

-3.4

-3.45
-60 -40 -20 0 20 40 60 80

También podría gustarte