You are on page 1of 6

practica5sr.

nb

147

Prctica 5: INTERPOLACIN NUMRICA.


El comando InterpolatingPolinomial.
Este comando permite obtener el polinomio de interpolacin tomando como argumento una lista con las
coordenadas (abscisas y ordenadas) de los puntos por los que tiene que pasar exactamente el polinomio de
interpolacin. El resultado que se obtiene es una funcin que se puede evaluar en cualquier punto y representar
grficamente. Tiene la forma correspondiente al polinomio de interpolacin de Newton con diferencias divididas.
La forma bsica de este comando es la siguiente:
InterpolatingPolynomial[datos, var].
Ejemplo: Dada la siguiente tabla ,
0
1
2
3
4
xi
fi
5
1
9
25
55
Se pide:
1.- Obtener en primer lugar el polinomio de interpolacin correspondiente, y representarlo junto con los datos.
2.- Obtener un valor aproximado de f(1.5) mediante un polinomio de interpolacin de 2 grado.Representar este
polinomio junto con los datos.
3.- Idem. para obtener un valor aproximado de f(3.5) mediante un polinomio de interpolacin de tercer grado .
datos = 880, 5<, 81, 1<, 82, 9<, 83, 25<, 84, 55<<;
1.-

p@x_D = InterpolatingPolynomial@datos, xD

puntos = ListPlot@datos, PlotStyle PointSize@0.02DD


poli = Plot@p@xD, 8x, 0, 4<, PlotStyle RGBColor@1, 0, 0DD

Show@puntos, poliD
2.datos2 = 881, 1<, 82, 9<, 83, 25<<;
p2@x_D = InterpolatingPolynomial@datos2, xD; p2@1.5D
poli2 = Plot@p2@xD, 8x, 0, 4<, PlotStyle RGBColor@1, 0, 0DD

Show@puntos, poli2D

practica5sr.nb

148

3.datos3 = 881, 1<, 82, 9<, 83, 25<, 84, 55<<;


p3@x_D = InterpolatingPolynomial@datos3, xD; p3@3.5D
poli3 = Plot@p3@xD, 8x, 0, 4<, PlotStyle RGBColor@1, 0, 0DD

Show@puntos, poli3D

Ejercicios
1.- Dada la siguiente tabla de puntos

xi
fi

0.3
0.97741

0.37
0.96557

0.41
0.95766

0.52
0.93157

se pide:
a) Obtener el polinomio de interpolacin correspondiente a dicho conjunto de datos.
b) Representar grficamente dichos puntos y el polinomio de interpolacin en un mismo grfico.
c) Aadir a la tabla el dato : f(0.47) = 0.94423 , y calcular el polinomio de grado 4 correspondiente.

datos =
880.3, 0.97741<, 80.37, 0.96557<, 80.41, 0.95766<, 80.52, 0.93157<<;

1
2.- Calcular el polinomio de interpolacin que interpola a f(x) =
en los puntos x0 = -5, x1 = -4, ...x9 = 4 y x10 =
1+x2
5. Representar este polinomio junto con la funcin en un mismo grfico para comprobar el denominado "efecto
Runge"

f@x_D =

1.
1 + x2

; datos = Table@8i, f@iD<, 8i, 5, 5<D;

3.Encontrar
un
valor
aproximado
de
y(23)
tabla:
40
10
20
30
0.64279
0.17365
0.34202
0.5
a) A partir de un polinomio de primer grado.
b) A partir de un polinomio de segundo grado.
c) A partir de un polinomio de tercer grado.

usando
50
0.76604

los

datos

de

60
0.86603

la

siguiente

practica5sr.nb

149

datos = 8810, 0.17365<, 820, 0.34202<,


830, 0.5<, 840, 0.64279<, 850, 0.76604<, 860, 0.86603<<;

4.- Si se denota por P2 [x] al polinomio que interpola a f(x) = ex en los nodos : -1, -0.75, -0.5, y por R2 HxL al error
debido a la aproximacin de y = ex mediante el polinomio de interpolacin, obtener una cota mxima del error
cometido al interpolar en el intervalo [-1,-0.5], sabiendo que :
n
f n+1L HxL

Rn HxL = Hx - xi L
Hn+1L!
i=0

Representar la funcin que da el error real en [-1,-0.5] y comprobar que su mximo valor en dicho intervalo es
inferior a la cota mxima obtenida.
Qu error se comete al aproximar la funcin en x=-0.3 mediante P2 HxL?
Representar la funcin error y la cota mxima obtenida anteriormente en el intervalo [-2,0].Qu se puede decir a
la vista de la grfica?
datos = 881, Exp@1.D<, 80.75, Exp@0.75D<, 80.5, Exp@0.5D<<;

5.- Se considera la funcin : f(x) = 3xex -2ex . Aproximar f(1.03) utilizando el polinomio de interpolacin de grado
2, tomando como nodos los puntos de abscisas x0 =1, x1 =1.05 y x3 =1.07. Comparar el error cometido con el
error mximo esperado en la interpolacin en 1.03.

f@x_D = 3 x Exp@xD 2 Exp@xD;


datos = 881, f@1D<, 81.05, f@1.05D<, 81.07, f@1.07D<<;

SPLINES
Ejemplo 1
Interpolar f(x) = x4 mediante la spline cbica S(x), correspondiente a la particin : x0 = -1 , x1 =0, x2 =
1 , con las condiciones : S'(-1) = f'(-1) , y S'(1) = f'(1). Representar grficamente S(x) junto con f(x).
Repetir el ejercicio calculando esta vez la spline natural, Sn(x).
Finalmente obtener la grfica de la spline natural utilizando el paquete <<Graphics`Spline`
La spline con condiciones de contorno
f@x_D = x ^ 4; s1@x_D = a1 + b1 Hx + 1L + c1 Hx + 1L ^ 2 + d1 Hx + 1L ^ 3;
s2@x_D = a2 + b2 x + c2 x ^ 2 + d2 x ^ 3;

practica5sr.nb

150

sol = Solve@8s1@1D f@1D, s2@0D f@0D, s2@1D == f@1D, s1@0D


s1 '@0D s2 '@0D, s1 ''@0D s2 ''@0D, s1 '@1D == f '@1D,
s2 '@1D f '@1D<, 8a1, b1, c1, d1, a2, b2, c2, d2<D

s2@0D,

f1@x_D = s1@xD . sol@@1DD; f2@x_D = s2@xD . sol@@1DD;


S@x_D = Piecewise@88f1@xD, 1 x 0<, 8f2@xD, 0 x 1<<D
Plot@8x ^ 4, S@xD<, 8x, 1, 1<,
PlotStyle 8RGBColor@0, 0, 1D, RGBColor@1, 0, 0D<, PlotRange AllD
La spline natural:
sol1 = Solve@8s1@1D f@1D, s2@0D f@0D, s2@1D == f@1D,
s1@0D s2@0D, s1 '@0D s2 '@0D, s1 ''@0D s2 ''@0D,
s1 ''@1D 0, s2 ''@1D 0<, 8a1, b1, c1, d1, a2, b2, c2, d2<D
f1@x_D = s1@xD . sol1@@1DD; f2@x_D = s2@xD . sol1@@1DD;
Sn@x_D = Piecewise@88f1@xD, 1 x 0<, 8f2@xD, 0 x 1<<D
gr1 = Plot@8x ^ 4, Sn@xD<, 8x, 1, 1<,
PlotStyle 8RGBColor@0, 0, 1D, RGBColor@1, 0, 0D<, PlotRange AllD
Utilizando el paquete <<Graphics`Spline`:
<<Graphics`Spline`
ptos = 881, 1<, 80, 0<, 81, 1<<;

Show@Graphics@8Hue@0.05D, Spline@ptos, CubicD<D,


PlotRange All, Axes TrueD
Ejemplo 2.
Sean los puntos: f(0)=1, f(2) = 9, f(4) = 41 y f(6) = 41,
a) Calcular la spline cbica S(x) que verifique : S'(0) = 0 y S'(6) = -12 (spline con condiciones de
contorno) y representarlar en negro, llamando al grfico g1.
b) Representar la interpolacin polinomial a trozos con polinomios de primer grado utilizando los
comandos Show, Graphics y Line en azul, llamando al grfico g2.
c) Calcular el polinomio de interpolacin correspondiente y representarlo en verde, llamando al

practica5sr.nb

151

grfico g3.
d) Representar grficamente en rojo la spline natural utilizando el paquete <<Graphics`Spline`,
llamando al grfico g4.
e) Mostrar los 4 grficos juntos de forma que se puedan comparar.
f) Mostrar los grficos correspondientes a las dos splines conjuntamenete
s1@x_D = a1 + b1 x + c1 x ^ 2 + d1 x ^ 3;
s2@x_D = a2 + b2 Hx 2L + c2 Hx 2L ^ 2 + d2 Hx 2L ^ 3;
s3@x_D = a3 + b3 Hx 4L + c3 Hx 4L ^ 2 + d3 Hx 4L ^ 3;

sol = Solve@8s1@0D 1, s2@2D 9, s3@4D 41, s3@6D 41,


s1@2D s2@2D, s2@4D s3@4D,
s1 '@2D s2 '@2D, s2 '@4D s3 '@4D,
s1 ''@2D s2 ''@2D, s2 ''@4D s3 ''@4D, s1 '@0D 0, s3 '@6D
8a1, b1, c1, d1, a2, b2, c2, d2, a3, b3, c3, d3<D

12<,

f1@x_D = s1@xD . sol@@1DD;


f2@x_D = s2@xD . sol@@1DD;
f3@x_D = s3@xD . sol@@1DD;
S@x_D = Piecewise@
88f1@xD, 0 <= x <= 2<, 8f2@xD, 2 <= x <= 4<, 8f3@xD, 4 <= x <= 6<<D
g1 = Plot@S@xD, 8x, 0, 6<D
puntos = 880, 1<, 82, 9<, 84, 41<, 86, 41<<;
Representamos en primer lugar la interpolacin lineal a trozos en color azul

g2 = Show@ Graphics@8RGBColor@0, 0, 1D,


Line@puntosD<D,
PlotRange > 880, 6<, 80, 50<<, Axes TrueD
A continuacin se calcula el polinomio de interpolacin y se representa en verde

p3@x_D = InterpolatingPolynomial@puntos, xD;


g3 = Plot@p3@xD, 8x, 0, 6<, PlotStyle RGBColor@0, 1, 0DD
Finalmente representamos la spline natural en rojo

<< Graphics`Spline`

practica5sr.nb

152

g4 = Show@ Graphics@8RGBColor@1, 0, 0D,


Spline@puntos, CubicD<D,
PlotRange > 880, 6<, 80, 50<<, Axes TrueD
Comparando los cuatro grficos, se puede observar que el polinomio de interpolacin (verde) es el que ms oscila
en los puntos prximos a los extremos. La spline natural (rojo) y la de cond. de contorno (negro) estn muy
prximas.

Show@g1, g2, g3, g4D


Representando las dos splines

Show@g1, g4D

Ejercicios
Ejercicio 1
Una spline cbica viene dada por:
0x1
s0HxL = 1 + Bx + 2 x2 - 2 x3
s(x)= 9
2
s1HxL = 1 + bHx - 1L - 4 Hx - 1L + 7 Hx - 1L3 1 x 2
Calcular B y b, y representar grficamente la spline.
Hallar f'(0) y f'(2).
Se trata de una spline natural?

Ejercicio 2.
Una spline cbica se define:
0x1
s0HxL = 1 + 2 x - x3
s(x) = 9
2
s1HxL = a + bHx - 1L + cHx - 1L + dHx - 1L3 1 x 2
Se pueden determinar a,b,c y d de manera que se trate de una spline natural? Razonar la respuesta y en caso
afirmativo calcular y representar la spline.

You might also like