Anda di halaman 1dari 26

Interpolacin Polinmica

1.- Dada la tabla de valores:


xi

-1

yi

13

a) Encontrar el spline cbico natural que interpola estos datos, imponiendo las
condiciones requeridas y resolviendo el sistema.
b) Misma cuestin resolviendo previamente el sistema tridiagonal para el clculo de
las derivadas segundas del spline en los nodos.
c) Calcular el spline no nodo, hacer una grfica de nodos y del spline.
d) Dibujar el spline completo que interpola los datos, suponiendo que las derivadas
primeras del spline en los nodos inicial y final son -5 y 5, respectivamente.
2.- Se quiere construir la lnea fronteriza entre dos poblaciones a partir de los datos que
figuran en la siguiente tabla:
xi

yi

25

34

72

115

92

71

65

a) Calcular el polinomio de interpolacin que pasa por todos los puntos. Hallar la
ordenada del punto de abscisa 2.5. Representar los datos junto al polinomio que
los interpola, que definira la frontera entre las poblaciones.
b) Utilizar un spline no nodo para perfilar la frontera. Hallar la ordenada del punto
de la misma de abscisa 2.5. Representar los datos junto al spline que los interpola
en la misma ventana de dibujo que el apartado a).
c) Utilizar un spline natural para perfilar la curva de separacin entre las
poblaciones.
3.- Un robot debe tomar un objeto situado en la posicin 1 y dejarlo en la posicin 6 del
recinto esquematizado en la figura. Para ello recorre una trayectoria definida por los
puntos de la tabla, que tratan de evitar los obstculos del recinto.
2

Paso

La trayectoria se obtiene interpolando los


puntos dados x k , y k mediante funciones p y q

tales que (p(t), q(t)) es la posicin del brazo en


el instante t 0,1 y (p(tk), q(tk)) = x k , y k , siendo tk = 0.2 k, k = 0,1,,5. Representar
grficamente la trayectoria obtenida si p y q son:

U. D. de Matemticas de la ETSITGC

Asignatura: Mtodos Matemticos 1

a)

Interpolacin Polinmica
Los polinomios de interpolacin de t k , x k y t k , y k , respectivamente.

b) Splines no nodo.
c) Splines tales que la velocidad inicial y final del robot es 0.
d) Splines tales que la aceleracin inicial y final del robot es 0.
En qu casos la trayectoria no choca contra los obstculos ni las paredes del recinto?
4.- Dada la tabla de valores:
x

f (x)

-17

f (x)

-15

a) Hallar el polinomio de Lagrange que interpola estos datos.


b) Hallar el polinomio de Hermite que interpola estos datos.
c) Representar los dos polinomios anteriores y comentar el resultado.
5.- Se consideran los valores de la funcin y = arc tg x en los nodos x = -3, -2, , 2, 3.
a) Interpolar estos puntos mediante un spline cbico cuya derivada primera en los
extremos coincida con la derivada primera de la funcin.
b) Hallar el spline que pasa por dichos puntos y tiene derivada tercera en los nodos
-2 y 2 (es decir, las dos primeras piezas del spline son el mismo polinomio, al igual
que las dos ltimas).
c) Compara ambas aproximaciones.

6.- La tabla siguiente refleja la demanda de energa elctrica en Espaa cada dos horas
de un da de invierno.
Hora
MW
Hora
MW

10

12

31250 28000 26000 26000 34000 37500 38000


14

16

18

20

22

24

35500 34500 38500 39500 36500 33000

a) Hallar el polinomio de grado 12 que interpola los valores dados. Analizar el


comportamiento del polinomio de interpolacin.
b) Se propone mejorar la interpolacin dividiendo el intervalo en dos, de 0 a 12 y de
12 a 24, y hallando un polinomio para cada intervalo. Representar los polinomios
obtenidos y comparar el resultado con el del apartado anterior.
c) Interpolar los datos con un spline cbico y comparar con los ajustes anteriores.

U. D. de Matemticas de la ETSITGC

Asignatura: Mtodos Matemticos 2

Interpolacin Polinmica
7.- Dada la tabla de valores (funciones de Bessel):
x
f (x)

x0
1
0.7651977

x1
1.3
0.620086

x2
1.6
0.4554022

x3
1.9
0.2818186

x4
2.2
0.11036

a) Comparar las aproximaciones de f(1.5) utilizando polinomios de interpolacin de


grado 1, 2, 3 y 4. b) Sabiendo que f(1.5) = 0.5118277, con qu polinomio se ha obtenido
la mejor aproximacin?

U. D. de Matemticas de la ETSITGC

Asignatura: Mtodos Matemticos 3

Interpolacin Polinmica
1.- Dada la tabla de valores:
xi

-1

yi

13

a) Encontrar el spline cbico natural que interpola estos datos, imponiendo las
condiciones requeridas y resolviendo el sistema.
b) Misma cuestin resolviendo previamente el sistema tridiagonal para el clculo de
las derivadas segundas del spline en los nodos.
c) Calcular el spline no nodo, hacer una grfica de nodos y del spline.
d) Dibujar el spline completo que interpola los datos, suponiendo que las derivadas
primeras del spline en los nodos inicial y final son -5 y 5, respectivamente.
Solucin
S 0 x a 0 x x 0 3 b 0 x x 0 2 c 0 x x 0 d 0 x x 0 , x 1
a) S( x )

3
2
x x 1 , x 2
S1 x a 1 x x 1 b1 x x 1 c1 x x 1 d 1

S x a 0 x 1 b 0 x 1 c 0 x 1 d 0
S( x ) 0
3
2
S1 x a 1 x b1 x c1 x d 1
3

S 0 ' x 3a 0 x 12 2b 0 x 1 c 0
S ' (x)
2
S1 ' x 3a 1 x 2b1 x c1
S ' ' x 6a 0 x 1 2b 0
S ' ' (x) 0
S1 ' ' x 6a 1 x 2b1

x 1, 0
x 0, 1

x 1, 0
x 0, 1

x 1, 0

x 0, 1

Imponemos las 4n - 2 = 6 condiciones para que sea un spline cbico:


S 0 1 d 0 13
S 0 a b c d 7
0
0
0
0
0
S1 0 d 1 7

S1 1 a 1 b1 c1 d 1 9
S 0 ' 0 3a 0 2b 0 c 0 S1 ' 0 c1

S 0 ' ' 0 6a 0 2b 0 S1 ' ' 0 2b1

Adems, por tratarse de un spline natural, ha de verificarse:


S 0 ' ' 1 2b 0 0

S1 ' ' 1 6a 1 2b1 0

U. D. de Matemticas de la ETSITGC

Asignatura: Mtodos Matemticos 4

Interpolacin Polinmica
Los coeficientes del spline son, por tanto, las soluciones del sistema lineal:
0

1
0

0
3

6
0
0

0 0 1 0
1 1 1 0
0 0 0 0
0 0 0 1
2 1 0 0
2 0 0 0
2 0 0 0
0 0 0 6

0 0 0
0 0 1

1 1 1
0 1 0

2 0 0
0 0 0

2 0 0
0

2x 13 8x 1 13
S( x )
2x 3 6x 2 2 x 7

a0

b0
c0

d0
a1

b1
c
1
d
1

13

7
7

9
0

0
0
0

a0

b0
c0

d0
a1

b1
c
1
d
1

2

0
8

13
2

6
2

7

x 1, 0
x 0, 1

r S ' ' 1 0
b) Por ser un spline natural, se verifica: 0
r2 S ' ' 1 0
El sistema tridiagonal tiene n-1 = 1 ecuacin con una incgnita, que es r1 S ' ' 0 :
h 0 h1
h
r1 e1 e 0 0 r0 ,
3
6
y y 0 7 13
y y1 9 7

6 , e 1 2

2 . Sustituyendo:
siendo h i 1 , e 0 1
x1 x 0
0 1
x 2 x1 1 0
2
1
r1 2 6 0 8 r1 12 S ' ' 0
3
6
El spline tiene por ecuacin:

S x a 0 x 1 b 0 x 1 c 0 x 1 d 0
S( x ) 0
3
2
S1 x a 1 x b1 x c1 x d 1
3

siendo: a i

x 1, 0
x 0, 1

ri 1 ri
r
y yi ri 1 ri

h i , d i y i .
, b i i , c i i 1
hi
6h i
2
6 3

a0

r1 r0
r
y y 0 r1 r0
2 , b0 0 0 , c0 1
h 0 8 , d 0 y 0 13 ;
6
2
h0
6 3

a1

r2 r1
r
y y1 r2 r1
2 , b 1 1 6 , c 1 2
h 1 2 , d 1 y1 7 .
6
2
h1
6 3

2 x 13 8 x 1 13
x 1, 0
S(x)
.
3
2
x 0, 1
2x 6x 2x 7

U. D. de Matemticas de la ETSITGC

Asignatura: Mtodos Matemticos 5

Interpolacin Polinmica
c) Utilizamos la funcin spline de Matlab para calcular el spline no nodo:
>> x=[-1 0 1];
>> y=[13 7 9];
>> spline(x,y)
ans =
form: 'pp'
breaks: [-1 1]
coefs: [4 -10 13]
pieces: 1
order: 3
dim: 1

Como en el spline no nodo los polinomios de los dos primeros intervalos son el mismo,
se trata simplemente del polinomio interpolador de grado 2. Los coeficientes vienen dados
2
por el campo coefs de la respuesta: 4x 1 10x 1 13 .
Representamos el polinomio con
Matlab:
>> xx=-1:0.2:1;
>> yy=spline(x,y,xx);
>> plot(x,y,*,xx,yy)

13

12

11

10

6
-1

-0.8

-0.6

-0.4

-0.2

0.2

0.4

0.6

0.8

d) Utilizamos de nuevo la misma funcin de Matlab, spline, aadiendo las dos


condiciones del spline completo:
13
>> x=[-1 0 1];
>> y=[13 7 9];
12

>> xx=-1:0.2:1;
>> zz=spline(x,[-5 y 5],xx);
>> plot(x,y,*,xx,zz)

11

10

6
-1

U. D. de Matemticas de la ETSITGC

-0.8

-0.6

-0.4

-0.2

0.2

0.4

0.6

Asignatura: Mtodos Matemticos 6

0.8

Interpolacin Polinmica
2.- Se quiere construir la lnea fronteriza entre dos poblaciones a partir de los datos que
figuran en la siguiente tabla:
xi

yi

25

34

72

115

92

71

65

a) Calcular el polinomio de interpolacin que pasa por todos los puntos. Hallar la
ordenada del punto de abscisa 2.5. Representar los datos junto al polinomio que
los interpola, que definira la frontera entre las poblaciones.
b) Utilizar un spline no nodo para perfilar la frontera. Hallar la ordenada del punto
de la misma de abscisa 2.5. Representar los datos junto al spline que los interpola
en la misma ventana de dibujo que el apartado a).
c) Utilizar un spline natural para perfilar la curva de separacin entre las
poblaciones.
Solucin
a)
>> x=[0:7];
>> y=[0 25 34 72 115 92 71 65];
>> polyfit(x,y,7)
ans =

Columns 1 through 6
-0.1079 2.4944 -22.1222 93.9861 -195.3722 181.5194
Columns 7 through 8
-35.3976 -0.0000
>> polyval(ans,2.5)
ans = 47.3867
>> % obien:
>> p=polyfit(x,y,7);
>> polyval(p,2.5)
ans = 47.3867
>> % Dibujo:
>> hold on
>> xx=0:0.2:7;
>> yy=polyval(p,xx);
>> plot(x,y,'*',xx,yy)

120

100

80

60

40

20

-20

U. D. de Matemticas de la ETSITGC

Asignatura: Mtodos Matemticos 7

Interpolacin Polinmica
b)
>> % Spline no nodo

>> x=[0:7];
>> y=[0 25 34 72 115 92 71 65];
>> ppval(spline(x,y),2.5)
ans = 48.8484
>> % o bien:
>> spline(x,y,2.5)
ans = 48.8484
>> % Dibujo:
>> xx=0:0.2:7;
>> zz=spline(x,y,xx);
>> plot(x,y,'*',xx,zz)
120

100

80

60

40

20

-20

>> hold off


c) Utilizar un spline natural para perfilar la curva de separacin entre poblaciones.
n = 7, r0 = S(0) = 0,

r7 = S(7) = 0.

Sistema tridiagonal para calcular ri, = S(xi) , i = 1, , 6:

U. D. de Matemticas de la ETSITGC

Asignatura: Mtodos Matemticos 8

Interpolacin Polinmica
h0 h1
3

h1
6

h1
6
h1 h2
3
h2
6

0
h2
6
h2 h3
3
h3
6

0
0

h3
6
h3 h4
3
h4
6
0

h0

0 r e1 e0 6 r0
1

r
e2 e1

e3 e2
r3

r
e4 e3

e5 e4
r5

h5 r

h
6

e6 e5 r7
6
6

h5 h6

3
0

0
h4
6
h4 h5
3
h5
6

h i x i 1 x i = 1, i = 0, , 6.
ei

y i 1 y i
, i = 0, , 6
x i 1 x i
xi

yi

25

34

72

115

92

71

65

ei

25

38

43

-23

-21

-6

2
3
1
6

1
6
2
3
1
6

0
1
6
2
3
1
6

1
6
2
3
1
6
0

0
0

0
1

0
1
6
2
3
1
6

r1
r2
r3
r4
r5
r6

6
2

r1
16

r2
29
5
r3

r4
66
2
r5

r6
15

96

174
30

396
12

90

U. D. de Matemticas de la ETSITGC

r1 3 5 .6 1 2 5

r 4 6 .4 5 0 0

r3 2 3 .8 1 2 4

r4 1 1 1 .6 9 9 8

r5 2 6 .9 8 6 6

r6 1 5 .7 5 3 3

Asignatura: Mtodos Matemticos 9

Interpolacin Polinmica
A partir de las derivadas segundas se calculan los coeficientes del spline:

ai

ri 1 ri
r
y yi ri 1 ri

h i , d i y i , i = 0, , 6
, b i i , ci i 1
hi
6h i
2
6 3

tales que Si x a i x x i b i x x i c i x x i d i , x x i , x i 1 ,
3

i = 0, , 6.

Se obtiene el spline:

S0 x 5.9354 x 3 30.9354 x

S1 x 13.6771 x 1 17.8063 x 1 13.1292 x 1 25


3

S 2 x 3.7729 x 2 23.2250 x 2 18.5479 x 2 34


3

S3 x 22.5854 x 3 11.9062 x 3 53.6791 x 3 72


3

S 4 x 23.1144 x 4 55.8499 x 4 9.7355 x 4 115


3

S5 x 1.8722 x 5 13.4933 x 5 32.6211 x 5 92


3

S6 x 2.6256 x 6 7.8767 x 6 11.2511 x 6 71


3

U. D. de Matemticas de la ETSITGC

Asignatura: Mtodos Matemticos 10

Interpolacin Polinmica
3.- Un robot debe tomar un objeto situado en la posicin 1 y dejarlo en la posicin 6 del
recinto esquematizado en la figura. Para ello recorre una trayectoria definida por los
puntos de la tabla, que tratan de evitar los obstculos del recinto.

Paso

La trayectoria se obtiene interpolando los


puntos dados x k , y k mediante funciones p y q
tales que (p(t), q(t)) es la posicin del brazo en el instante t 0,1 y (p(tk), q(tk)) =
x k , y k , siendo tk = 0.2 k, k = 0,1,,5. Representar grficamente la trayectoria obtenida
si p y q son:
a) Los polinomios de interpolacin de t k , x k y t k , y k , respectivamente.
b) Splines no nodo.
c) Splines tales que la velocidad inicial y final del robot es 0.
d) Splines tales que la aceleracin inicial y final del robot es 0.
En qu casos la trayectoria no choca contra los obstculos ni las paredes del recinto?
Solucin
a)
>> %Interpolamos las abscisas:
>> t=0:0.2:1;
>> x=[1 1 4 4 7 7];
>> p=polyfit(t,x,5)
p=
1.0e+003 *
-0.6250 1.5625 -1.3750 0.5000 -0.0565 0.0010
>> %Interpolamos las ordenadas:
>> y=[1 4 4 1 1 4];
>> q=polyfit(t,y,5)
q=
-312.5000 781.2500 -625.0000 156.2500 3.0000 1.0000
>> %Representamos conjuntamente la trayectoria:
>> tt=0:0.01:1;
>> xx=polyval(p,tt);
>> yy=polyval(q,tt);
>> plot(x,y,'*',xx,yy)

U. D. de Matemticas de la ETSITGC

Asignatura: Mtodos Matemticos 11

Interpolacin Polinmica
5
4.5
4
3.5
3
2.5
2
1.5
1
0.5
0
-1

b)

>> % Splines no nodo


>> tt=0:0.01:1;
>> xx=spline(t,x,tt);
>> yy=spline(t,y,tt);
>> plot(x,y,'*',xx,yy)
4.5
4
3.5
3
2.5
2
1.5
1
0.5
0
-1

c)
>> % El interpolante pedido es el spline completo o de frontera sujeta
>> %en el que la derivada primera en los extremos es nula.
>> %Se obtiene con la orden "spline", aadiendo los valores de la
>> %derivada al vector de imgenes".
>> tt=0:0.01:1;
>> xx=spline(t,[0 x 0],tt);

U. D. de Matemticas de la ETSITGC

Asignatura: Mtodos Matemticos 12

Interpolacin Polinmica
>> yy=spline(t,[0 y 0],tt);
>> plot(x,y,'*',xx,yy)
5
4.5
4
3.5
3
2.5
2
1.5
1
0.5
0

d) El spline pedido es el spline natural cuya derivada segunda se anula en los extremos

del intervalo.
Para calcularlo hay que resolver un sistema tridiagonal del tipo al utilizado en el ejercicio
2 apartado c). Saldra una grfica muy similar a la del spline completo.
En qu casos la trayectoria no choca contra los obstculos ni las paredes del recinto?
En el caso a) la trayectoria se sale de los lmites del recinto.

El spline no nodo roza ligeramente las paredes del recinto.


Los splines con condiciones sobre la primera (spline completo) o segunda derivada (spline
natural) en los extremos se comportan mucho mejor, quedando alejados en todo momento de
los bordes y los obstculos del recinto.

U. D. de Matemticas de la ETSITGC

Asignatura: Mtodos Matemticos 13

Interpolacin Polinmica
4.- Dada la tabla de valores:
x

f (x)

-17

f (x)

-15

a) Hallar el polinomio de Lagrange que interpola estos datos.


b) Hallar el polinomio de Hermite que interpola estos datos.
c) Representar los dos polinomios anteriores y comentar el resultado.
Solucin
a) El polinomio de Lagrange que interpola estos tres datos puede hallarse:

1) Con Matlab:
>> x=[0 1 3];
>> y=[1 5 -17];
>> polyfit(x,y,2)
ans = -5.0000 9.0000 1.0000 ( coeficientes del polinomio)

El polinomio pedido es:


P(x) = 5 x2+ 9 x + 1

2) A mano:

P(x) = L0(x) f(x0)+ L1(x) f(x1)+ L2(x) f(x2) =

( x x 0 )( x x 1 )
( x x 0 )( x x 2 )
( x x 1 )( x x 2 )
y0
y1
y2
( x 0 x 1 )( x 0 x 2 )
( x 1 x 0 )( x 1 x 2 )
( x 2 x 0 )( x 2 x 1 )

( x 0)( x 1)
( x 1)( x 3)
( x 0)( x 3)
1
5
(17)
(0 1)(0 3)
(1 0)(1 3)
(3 0)(3 1)

= 5 x2+ 9 x + 1

b) Polinomio de Hermite:

Su grado es 2 n + 1 = 5
H(x) = a0 + a1 (xz0) + a2 (xz0)(xz1) + a3 (xz0) (xz1) (xz2) + a4 (xz0) (xz1) (xz2) (xz3) +
+ a5 (xz0) (xz1) (xz2) (xz3)(xz4)

U. D. de Matemticas de la ETSITGC

Asignatura: Mtodos Matemticos 14

Interpolacin Polinmica

f(z)

1 dif. divididas

2 dif. divididas

z0=x0=0

f(z0)=f(x0)=1

z1=x0=0

f(z1)=f(x0)=1

f[z0, z1]=f '(x0)=3

z2=x1=1

f(z2)=f(x1)=5

f[z1, z2]=4

f[z0, z1, z2]=1

z3=x1=1

f(z3)=f(x1)=5

f[z2, z3]=f '(x1)=5

f[z1, z2, z3]=1

f[z0, z1, z2, z3]=0

z4=x2=3

f(z4)=f(x2)=-17

f[z3, z4]=-11

f[z2, z3, z4]=-8

f[z1, z2, z3, z4]=-3

f[z0, z1, z2, z3, z4]= 1

z5=x2=3

f(z5)=f(x2)=-17

f[z4, z5]=f '(x2)=-15

f[z3, z4, z5]=-2

f[z2, z3, z4, z5]=3

f[z1, z2, z3, z4, z5]=2

U. D. de Matemticas de la ETSITGC

3 dif. divididas

4 dif. divididas

5 dif. divididas

Asignatura: Mtodos Matemticos 15

f[z0, , z5]=1

Interpolacin Polinmica
Obtenindose los coeficientes: a0 = 1, a1 = 3, a2 = 1, a3 = 0, a4 = 1, a5 = 1, de donde:
H(x) = 1 + 3 x + x2 - x2 (x-1)2 + x2 (x-1)2 (x-3) = x5 6x4 + 9x3 3x2 + 3x + 1

c) Grfico de ambos polinomios:

>> x=[0 1 3];


>> y=[1 5 -17];
>> polyfit(x,y,2)
ans =
-5.0000 9.0000 1.0000

10

>> xx=[0:0.1:3];
>> yy=polyval(ans,xx);
>> plot(x,y,'*',xx,yy)
>> hold on

-5

-10

>> H=[1 -6 9 -3 3 1];


-15

>> polyval(H,xx);
>> zz=polyval(H,xx);

-20

0.5

1.5

2.5

>> plot(x,y,'*',xx,zz,'- -')

La curva en trazo continuo corresponde a la grfica del polinomio de Lagrange. La de trazo


discontinuo a la del polinomio de Hermite.
Ambas curvas pasan por los puntos (xi, f(xi)) dados; pero, el polinomio de Hermite cumple
adems en cada uno de los tres nodos que H(xi) = f (xi), con lo que tiene en comn con la
funcin la pendiente de la recta tangente en esos puntos y, por tanto, la forma de la grfica es
ms parecida; H(x) es una mejor aproximacin de la funcin.

U. D. de Matemticas de la ETSITGC

Asignatura: Mtodos Matemticos 16

Interpolacin Polinmica
5.- Se consideran los valores de la funcin y = arc tg x en los nodos x = -3, -2, , 2, 3.
a) Interpolar estos puntos mediante un spline cbico cuya derivada primera en los
extremos coincida con la derivada primera de la funcin.
b) Hallar el spline que pasa por dichos puntos y tiene derivada tercera en los nodos -2 y
2 (es decir, las dos primeras piezas del spline son el mismo polinomio, al igual que las
dos ltimas).
c) Compara ambas aproximaciones.
Solucin
a) El interpolante pedido en este apartado es el spline completo, que se obtiene con la

orden spline de Matlab, aadiendo a las ordenadas los valores de la derivada de la


funcin en los nodos inicial y final.
1
y' ( x )
y' (3) 0.1, y' (3) 0.1
1 x2
x0

x1

-3
-2
>> x=-3:3;
>> y=atan(x);
>> ps=spline(x,[0.1 y 0.1]);

x2

x3

x4

x5

x6

-1

Los coeficientes de cada pieza del spline estn dados en la siguiente matriz:
>> ps.coefs
ans =
-0.0011 0.0430 0.1000 -1.2490
0.0994 0.0397 0.1827 -1.1071
-0.1126 0.3378 0.5602 -0.7854
-0.1126 -0.0000 0.8980
0
0.0994 -0.3378 0.5602 0.7854
-0.0011 -0.0397 0.1827 1.1071
Dibujamos la funcin (trazo continuo rojo) y el polinomio segmentario (trazo discontinuo
verde):
1.5

>> xx=-3:0.1:3;

0.5

>> yy=ppval(ps,xx);
0

>> plot(x,y,'*',xx,atan(xx))
>> hold on
>> plot(x,y,'*',xx,yy,'--')

-0.5

-1

-1.5
-3

U. D. de Matemticas de la ETSITGC

-2

-1

Asignatura: Mtodos Matemticos 17

Interpolacin Polinmica
b) Se trata de calcular el spline no nodo, con la funcin spline de Matlab:

>> psnn=spline(x,y);
Los coeficientes de cada pieza del spline estn dados en la siguiente matriz:
>> psnn.coefs
ans =
0.0784
0.0784
-0.1084
-0.1084
0.0784
0.0784

-0.1454 0.2089
0.0899 0.1534
0.3253 0.5686
0 0.8938
-0.3253 0.5686
-0.0899 0.1534

-1.2490
-1.1071
-0.7854
0
0.7854
1.1071

Dibujamos la funcin (trazo continuo rojo) y el spline no nodo (trazo discontinuo verde):
>> xx=-3:0.1:3;
>> plot(x,y,'*',xx,atan(xx))
>> hold on
>> yynn=ppval(psnn,xx);
>> plot(x,y,'*',xx,yynn,'--')

1.5

0.5

-0.5

-1

-1.5
-3

-2

-1

c) Diferencia entre la funcin y cada uno de los interpoladores (trazo continuo la

diferencia con el spline no nodo y discontinuo con el completo):


0.04

>> xx=-3:0.1:3;
>> dif1=atan(xx)-ppval(ps,xx);
>> dif2=atan(xx)-ppval(psnn,xx);
>> plot(xx,dif1,':');hold on

0.03
0.02
0.01
0

>> plot(xx,dif2)

-0.01

Se observa en la figura que la

-0.02

diferencia mxima con ambos

-0.03

splines es muy similar. El spline

-0.04
-3

-2

-1

completo se adapta mejor en el


sentido de que en las piezas extremas tiene la misma convexidad que la funcin.
U. D. de Matemticas de la ETSITGC

Asignatura: Mtodos Matemticos 18

Interpolacin Polinmica
6.- La tabla siguiente refleja la demanda de energa elctrica en Espaa cada dos horas
de un da de invierno.
Hora
MW
Hora
MW

10

12

31250 28000 26000 26000 34000 37500 38000


14

16

18

20

22

24

35500 34500 38500 39500 36500 33000

a) Hallar el polinomio de grado 12 que interpola los valores dados. Analizar el


comportamiento del polinomio de interpolacin.
b) Se propone mejorar la interpolacin dividiendo el intervalo en dos, de 0 a 12 y de
12 a 24, y hallando un polinomio para cada intervalo. Representar los polinomios
obtenidos y comparar el resultado con el del apartado anterior.
c) Interpolar los datos con un spline cbico y comparar con los ajustes anteriores.
Solucin
a) Utilizamos la funcin polyfit de Matlab:

>> h=[0:2:24];
>> MW=[31250 28000 26000 26000 34000 37500 38000 35500 34500 38500 39500 36500
33000];
>> p=polyfit(h,MW,12)
Avisa Matlab:
Warning: Polynomial is badly conditioned. Add points with distinct X values, reduce the
degree of the polynomial, or try centering and scaling as described in HELP POLYFIT. In
polyfit at 80.
Ocurre que los coeficientes del polinomio buscado varan mucho en magnitud unos de otros:
>> format long
>> p=polyfit(h,MW,12)
Warning: Polynomial is badly conditioned. Add points with distinct X

values, reduce the

degree of the polynomial, or try centering and scaling as described in HELP POLYFIT. In
polyfit at 80
p=
1.0e+005 *
Columns 1 through 2
0.000000000003194 -0.000000000491669
Columns 3 through 4
0.000000033422949 -0.000001320675776
Columns 5 through 6
U. D. de Matemticas de la ETSITGC

Asignatura: Mtodos Matemticos 19

Interpolacin Polinmica
0.000033588279532 -0.000574933611469
Columns 7 through 8
0.006723751451460 -0.053355005873978
Columns 9 through 10
0.278829344344224 -0.901583331723715
Columns 11 through 12
1.596506887689424 -1.162227227277939
Column 13
0.312500000735327

Efectivamente se obtiene un polinomio cuyos coeficientes varan mucho de escala:


p(t) = 3.19446 10 7 x 12 4.91669 10 5 x 11 0.00334229 x 10 0.132068 x 9 3.35883 x 8

57.4934 x 7 672.375 x 6 5335.5 x 5 27882.9 x 4 90158.3 x 3 159651 x 2 116223 x 31250


Lo dibujamos junto con los nodos:
>> hh=0:0.1:24;
>> MMW=polyval(p,hh);
>> plot(h,MW,'*',hh,MMW)

x 10

3.5
3
2.5
2
1.5
1
0.5
0

10

15

20

25

Presenta oscilaciones en los


extremos del intervalo, particularmente en el izquierdo, como se observa en la figura.
b) Interpolamos dos polinomios dividiendo el intervalo por la mitad:

>> p1=polyfit(h(1:7),MW(1:7),6)
p1 =
1.0e+004 *
Columns 1 through 3
0.000122070312500 -0.004280598958333 0.055240885416664
Columns 4 through 6
-0.321158854166649 0.848958333333274 -0.953124999999938
Column 7
3.125000000000038

U. D. de Matemticas de la ETSITGC

Asignatura: Mtodos Matemticos 20

Interpolacin Polinmica
>> p2=polyfit(h(7:13),MW(7:13),6)
Warning: Polynomial is badly conditioned. Add points with distinct X
values, reduce the degree of the polynomial, or try centering
and scaling as described in HELP POLYFIT.
> In polyfit at 80
p2 =
1.0e+007 *
Columns 1 through 3
-0.000000045572917 0.000005130208333 -0.000237499999996
Columns 4 through 6
0.005780208333237 -0.077911770832061 0.550972083324486
Column 7
-1.592449999974678
Hacemos la grfica con Matlab:
>> hh1=0:0.1:12;
>> MMW1=polyval(p1,hh1);
>> hh2=12:0.1:24;

4
3.8
3.6

>> MMW2=polyval(p2,hh2);

3.4

>>

3.2

plot(h,MW,'*',hh1,MMW1,':',hh2,

x 10

MMW2,'-')

2.8

Los sistemas a resolver en este caso

2.6

no son tan mal condicionados.

2.4

10

15

20

Casualmente la unin de los dos


subintervalos es suave.
c) Ajustemos un polinomio segmentario cbico:

Al tratarse de datos experimentales no tenemos informacin acerca de las derivadas, por lo


que utilizamos un spline no nodo.
>> ps=spline(h,MW);
>> s=ps.coefs
s=
1.0e+004 *
Columns 1 through 3
-0.004723596507750 0.043966579046499 -0.231538772061998
U. D. de Matemticas de la ETSITGC

Asignatura: Mtodos Matemticos 21

25

Interpolacin Polinmica
-0.004723596507750 0.015625000000000 -0.112355613969001
0.032992982538749 -0.012716579046499 -0.106538772061998
-0.052248333647246 0.185241316185995 0.238510702216994
0.019750352050235 -0.128248685697481 0.352495963194022
-0.008003074553693 -0.009746573396072 0.076505445006917
0.012261946164539 -0.057765020718232 -0.058517743221691
0.015205289895539 0.015806656269000 -0.142434472120155
-0.029333105746693 0.107038395642232 0.103255631702309
0.002127133091235 -0.068960238837929 0.179411945310917
0.008324573381753 -0.056197440290518 -0.070903412945976
0.008324573381753 -0.006250000000000 -0.195798293527012
Column 4
3.125000000000000
2.800000000000000
2.600000000000000
2.600000000000000
3.400000000000000
3.750000000000000
3.800000000000000
3.550000000000000
3.450000000000000
3.850000000000000
3.950000000000000
3.650000000000000

>> MWs=ppval(ps,hh);

x 10

>> plot(h,MW,'*',hh,MWs)
>>

3.5

2.5
0

10

15

20

25

Los coeficientes del spline estn mejor escalados que los del polinomio y la grfica sugiere
una evolucin ms razonable de la demanda elctrica.

U. D. de Matemticas de la ETSITGC

Asignatura: Mtodos Matemticos 22

Interpolacin Polinmica
7.- Dada la tabla de valores (funciones de Bessel):
x
f (x)

x0
1
0.7651977

x1
1.3
0.620086

x2
1.6
0.4554022

x3
1.9
0.2818186

x4
2.2
0.11036

a) Comparar las aproximaciones de f(1.5) utilizando polinomios de interpolacin de


grado 1, 2, 3 y 4. b) Sabiendo que f(1.5) = 0.5118277, con qu polinomio se ha obtenido
la mejor aproximacin?
Solucin
a) Polinomio de interpolacin de grado1: p1
Como 1.5 se encuentra entre los nodos x1 y x2, utilizamos stos para la interpolacin
lineal:
>> format long
>> x=[1.3 1.6];
>> y=[0.620086 0.4554022];
>> p1=polyfit(x,y,1) p1 = -0.548946000000001 1.333715800000002
>> polyval(p1,1.5)
ans = 0.510296800000000
Polinomio de interpolacin de grado 2.
Con los nodos x0 , x1 y x2: p2a
>> x=[1 1.3 1.6];
>> y=[0.7651977 0.620086 0.4554022];
>> p2a=polyfit(x,y,2)
p2a = -0.108733888888888 -0.233617722222224 1.107549311111114
>> polyval(p2a,1.5)
ans = 0.512471477777778

Con los nodos x1 , x2 y x3: p2b


>> x=[1.3 1.6 1.9];
>> y=[0.620086 0.4554022 0.2818186];
>> p2b=polyfit(x,y,2) P2b = -0.049443333333334 -0.405560333333330
1.230873666666664
>> polyval(p2b,1.5)
ans = 0.511285666666667
Polinomio de interpolacin de grado 3. Con los nodos x0, x1 , x2 y x3: p3a
>> x=[1 1.3 1.6 1.9];
>> y=[0.7651977 0.620086 0.4554022 0.2818186];
>> p3a=polyfit(x,y,3)
P3a = 0.065878395061728 -0.365659629629624
0.094456685185174 0.970522249382723
>> polyval(p3a,1.5)
ans = 0.511812693827161
Polinomio de interpolacin de grado 3. Con los nodos x1 , x2 , x3 y x4: p3b
>> x=[1.3 1.6 1.9 2.2];
>> y=[0.620086 0.4554022 0.2818186 0.11036];
>> p3b=polyfit(x,y,3)
P3b = 0.068054320987657 -0.376104074074088
0.110971962962986 0.961922990123445
U. D. de Matemticas de la ETSITGC

Asignatura: Mtodos Matemticos 23

Interpolacin Polinmica
>> polyval(p3b,1.5)
ans = 0.511830101234568
Polinomio de interpolacin de grado 4: p4
>> x=[1 1.3 1.6 1.9 2.2];
>> y=[0.7651977 0.620086 0.4554022 0.2818186 0.11036];
>> p4=polyfit(x,y,4)
= 0.001813271604944 0.055361419753045 -0.343193194444342
0.073527904320876 0.977688298765476
>> polyval(p6,1.5)
ans = 0.511819946913580
b)

Sabiendo que f(1.5) = 0.5118277, los errores reales cometidos han sido:
Con p1:
>> abs(0.7848-0.5118277)
ans = 0.272972300000000
Con p2a:
>> abs(0.512471477777778-0.5118277)
ans = 6.437777777780207e-004 = 0.000643777777778
Con p2b:
>> abs(0.511285666666667-0.5118277)
ans = 5.420333333330252e-004 = 0.000542033333333
Con p3a:
>> abs(0.511812693827161-0.5118277)
ans = 1.500617283900496e-005 = 0.000015006172839
Con p3b:
>> abs(0.511830101234568-0.5118277)
ans = 2.401234567961375e-006 = 0.000002401234568
Con p4:
>> abs(0.511819946913580-0.5118277)
ans = 7.753086419981514e-006 = 0.000007753086420

Por tanto, la mejor aproximacin es p3b(1.5) con el polinomio de grado 3. Si no se hubiera


conocido el valor real de f(1.5), se hubiera aceptado p4(1.5) como mejor aproximacin.

U. D. de Matemticas de la ETSITGC

Asignatura: Mtodos Matemticos 24

Spline
Sean t0 < t1 < . . . < tn, n+1 puntos (denominados nodos) y k un nmero natural. Una
funcin spline de grado k con nodos t0, t1, . . . , tn es una funcin S que satisface las
siguientes condiciones:
a) en cada intervalo [ti-1, ti], S es un polinomio de grado menor o igual a k,
b) S tiene una derivada de orden (k-1) continua en [t0, t1]
Por consiguiente S es un polinomio continuo a trozos de grado a lo sumo k, que tiene
derivadas continuas hasta el orden k-1.
Nodo
Cada valor de la abscisa xi de los puntos usados en interpolacin.
Interpolacin
Obtencin del valor aproximado de una magnitud o una funcin en un intervalo cuando
se conocen algunos de los valores que toma a uno y otro lado de dicho intervalo.
Polinomio interpolador de Lagrange
Dados x0, x1, . . . , xn nmeros reales distintos entre s, y valores arbitrarios y0, y1, . . . ,
yn, existe un nico polinomio P(x) de grado menor o igual que n tal que P(xi) = yi (i =
0, . . . , n).
Interpolacin de Newton
Al Polinomio de Lagrange obtenido por Diferencias divididas se le conoce con el
nombre de frmula de diferencias divididas interpolante de Newton.
n

Pn ( x) f ( x0 ) f [ x0 , x1 ,..., xk ]( x x0 )( x x1 )...( x xk 1 )
k 1

Siendo las Diferencias divididas

f [ x0 , x1 ,..., xk ]

f [ x1 , xk ] f [ x0 , xk 1 ]
xk x0

Interpolacin de Hermite

Sea una funcin, f, con derivada continua en [a, b] y si x0, x1, . . . , xn son valores
distintos del intervalo [a,b] , existe un nico polinomio de grado a lo sumo 2n+1, y se
denota H2n+1(x), tal que:
H2n+1(xi) = f(xi), H2n+1(xi) = f (xi), i = 0, . . . , n.
H2n+1(x) es el polinomio de Hermite de grado 2n+1.

Matricestridiagonales
En diversas aplicaciones nos encontramos con sistemas Ax=z donde A es cuadrada y sus
elementossontodosnulosexceptolosdeladiagonalprincipalyalgunasdelasparalelasadicha
diagonal.Estasmatricessedenominanmatricesbanda.
Uncasoparticulardematricesbandasonlasmatricestridiagonales.
Sellamamatriztridiagonalalasmatricesdelaformasiguiente:

a11

a 21
0
A

0

a12
a 22
a32

0
0

0
a 23
a33

0
0

0
0
0

a n 1,n 1
a n ,n 1

a n 1,n
a n ,n

0
0
0

Para este tipo de matrices hay algoritmos de factorizacin que simplifican el nmero de
operaciones a realizar, aprovechando la gran cantidad de ceros que aparecen siguiendo
patrones regulares. Estos mtodos son preferibles frente a los que no tienen en cuenta la
tridiagonalidaddelamatriz.

Anda mungkin juga menyukai