Está en la página 1de 13

Clculo cientfico y tcnico con

HP49g/49g+/48gII/50g
Mdulo 3: Aplicaciones
Tema 3.7 Polinomio interpolador
Francisco Palacios
Escuela Politcnica Superior de Ingeniera Manresa
Universidad Politcnica de Catalunya
Dep. Matemtica Aplicada III

Abril 2008, versin 1.3

1 Introduccin
1.1 Polinomio interpolador
En la interpolacin polinomial, partimos de n + 1 puntos dados

(x0 , y0 ), (x1 , y1 ), . . . , (xn , yn ),

y nuestro objetivo consiste en encontrar un polinomio de grado n

P (x) = a0 + a1 x + a2 x2 + + an xn

que pase por los puntos, esto es, que cumpla las n + 1 condiciones:

P (xj ) = yj , j = 0, 1, . . . , n.

Si los valores xj son distintos, entonces se puede garantizar que existe un


nico polinomio de grado n que cumple las condiciones fijadas.
Podemos usar el polinomio interpolador para aproximar el valor de y en posi-
ciones intermedias de x dentro del intervalo de interpolacin1 [min xj , max xj ].

Ejemplo 1.1 Polinomio interpolador de la tabla

x 1.0 1.5 2.0 3.5


y 1.25 2.56 4.28 3.14
1
Si los valores xj estn ordenados de forma creciente, esto es, x0 < x1 < < xn ,
entonces el intervalo de iterpolacin es [x0 , xn ]

1
Como tenemos 4 pares de datos (xj , yj ), el problema consiste en determinar
un polinomio de grado 3

P (x) = a0 + a1 x + a2 x2 + a3 x3 .

Para ello hemos de calcular los valores de los coeficientes aj para los que
se cumplen las condiciones P (xj ) = yj . Existen varios mtodos disponibles
para determinar los coeficientes. Empleando cualquiera de ellos, se obtiene
el polinomio

P (x) = 1.168x3 6.076x2 + 7.022x 3.364

Actividad 1.1 Comprueba que el polinomio del ejemplo anterior interpola


los valores de la tabla, es decir, que verifica P (xj ) = yj para los valores de
la tabla. Usando el polinomio interpolador, aproxima el valor de y(1.55).
(Sol. y(1.55) = 2.728)

1.2 Matriz de Vandermonde


Podemos obtener el polinomio interpolador resolviendo un sistema de ecua-
ciones lineales2 . Consideremos n + 1 puntos

(x0 , y0 ), (x1 , y1 ), . . . , (xn , yn )


con abscisas distintas, y sea

P (x) = a0 + a1 x + a2 x2 + + an xn
el polinomio interpolador. Imponiendo las n + 1 condiciones

P (xj ) = yj , j = 0, 1, . . . , n,
resulta un sistema de n + 1 ecuaciones lineales en las n + 1 incgnitas
a0 , a1 , . . . , an ,


a0 + a1 x0 + a2 x20 + + an xn0 = y0 ,

a + a x + a x2 + + a xn = y ,
0 1 1 2 1 n 1 1
..

.

a0 + a1 xn + a2 xn + + an xnn = yn .
2

El sistema puede escribirse matricialmente en la forma



1 x0 x20 xn0 a0 y0
1 x1 x2 xn a1 y1
1 1
.. .. .. . . .. .. = .. .
. . . . . . .
1 xn x2n xnn an yn
2
Esta es una forma tericamente muy clara, aunque desde el punto de vista prctico,
son preferibles los mtodos directos como el interpolador de Newton o de Lagrange.

2
La matriz de coeficientes del sistema se denomina matriz de Vandermonde
asociada a los puntos x0 , x1 , . . . , xn . Se trata de una matriz cuadrada de
orden n + 1 con la siguiente estructura

1 x0 x20 xn0
1 x1 x2 xn
1 1
V (x0 , x1 , . . . , xn ) = . . .. . . .. .
.
. . . . . .
1 xn x2n xnn
Ejemplo 1.2 Matriz de Vandermonde.

Consideremos la tabla de valores


x 1 1/2 1 2
y 1 2 0 3
La matriz de Vandermonde correspondiente a las abscisas
x0 = 1, x1 = 1/2, x2 = 1, x3 = 2
es
1 1 1 1
1 1/2 1/4 1/8
V =
1 1
.
1 1
1 2 4 8
El polinomio interpolador de la tabla es un polinomio de grado 3
P (x) = a0 + a1 x + a2 x2 + a3 x3 .
Los coeficientes aj pueden obtenerse resolviendo el sistema

1 1 1 1 a0 1
1 1/2 1/4 1/8 a1 2
=
1 1 1 1 a2 0
1 2 4 8 a3 3
Como solucin obtenemos
a0 = 4, a1 = 17/6, a2 = 7/2, a3 = 7/3.
El polinomio interpolador es, por tanto
17 7 7
P (x) = 4 x x2 + x3 2
6 2 3
Actividad 1.2 Verifica que el polinomio obtenido en el Ejemplo 1.2, inter-
pola la tabla
x 1 1/2 1 2
y 1 2 0 3
Aproxima el valor de y(1.5). (Sol. y(1.5) ' P (1.5) = 0. 25)

3
Actividad 1.3 Representa el polinomio
17 7 7
P (x) = 4 x x2 + x3
6 2 3
en el intervalo x [1.1, 2.1]. Verifica grficamente que el polinomio pasa
por los puntos de la tabla.

2 Resolucin con la calculadora


2.1 Comando LAGRANGE
El comando LAGRANGE calcula el polinomio interpolador de una tabla
de valores. Puedes encontrarlo en el catlogo [CAT], o bien, en la segunda
pgina del men de herramientas para polinomios3 [ARITH][POLY]. El fun-
cionamiento del comando es muy simple, cargamos en el nivel 1 de la pila
una matriz con los puntos

x0 x1 xn
y0 y1 yn
y, al ejecutar el comando LAGRANGE, se obtiene el polinomio interpolador.
Por ejemplo, para determinar el interpolador de la tabla
x 1 1/2 1 2
y 1 2 0 3
Construimos la matriz indicada, con los valores xj en la primera fila y los
valores yj en la segunda

Pulsamos [F6] para ejecutar el comando LAGRANGE, y se obtiene

3
Para acceder a [ARITH] pulsa [1].

4
Resultado que coincide con el obtenido en el Ejemplo 1.2. Para reescribir el
polinomio en un formato ms habitual, usamos el comando DISTRIB, que
aplica la propiedad distributiva del producto respecto de la suma. Encon-
traremos el comando en el Catalogo o en [CNVRT][REWRITE]4 . Despus
de ejecutar varias veces el comando DISTRIB, obtenemos

Si pulsamos [F2] para ejecutar [EXPLN], obtenemos el polinomio en la for-


ma

Actividad 2.1 A partir de los datos de la tabla


x 1 1/2 3 4
y 1 1 0 4
aproxima el valor de y(1.5) usando interpolacin cbica5 .
(Sol. y(1.5) ' 1.3929)
Actividad 2.2 A partir de los datos de la tabla
x 1.5 2.0 2.5 3.0
y 1.12 1.34 1.56 1.41
Aproxima los valores y(1.73), y(2.65), usando interpolacin cuadrtica, es
decir, un polinomio interpolador de grado 2. Para ello, en cada caso, escoge
los tres puntos cuyas abscisas estn ms prximas de valor de x considerado.
(Sol. Para x = 1.73, construimos el polinomio de grado dos con los puntos de
abscisas 1.5, 2.0 y 2.5. Se obtiene y(1.73) ' 1.22. Para x = 1.73, obtenemos
y(2.56) ' 1.56)
4
Para acceder al men de conversiones [CNVRT] pulsa [6]
5
La interpolacin con 4 puntos se denomina interpolacin cbica. De forma anloga,
la interpolacin con 3 puntos se denomina cuadrtica y la interpolacin con dos puntos
lineal.

5
Ejemplo 2.1 Aproximacin del valor de una integral usando un polinomio
interpolador.

Consideramos la integral Z 1
sin x
dx.
0.5 x
Es bien conocido que la funcin f (x) = sin(x)/x no es la derivada de ninguna
combinacin simple de funciones elementales. Para aproximar el valor de la
integral, determinamos abscisas igualmente espaciadas en el intervalo [0.5, 1]
con una separacin h = 0.1, y calculamos el valor del integrando f (x), esto
es
x 0.5 0.6 0.7 0.8 0.9 1.0
f (x) 0.95885 0.94107 0.92031 0.89669 0.87036 0.84147

Ahora podemos calcular el polinomio interpolador P (x) de la tabla, que ser


de grado 5 y usarlo para aproximar el valor de la integral
Z 1 Z 1
sin x
dx ' P (x) dx.
0.5 x 0.5

Veamos cmo hacerlo con la calculadora. El procedimiento que se explica a


continuacin nos permite construir la matriz de puntos sin entrar los datos
manualmente.

1. Fijamos el modo angular en radianes y el formato decimal en FIX 5.

2. Accede al editor de matrices6 [MATRW]. Si es necesario, pulsa [F2] y


[F5] para activar el modo de entrada de vectores y el modo de despla-
zamiento horizontal.

Construye un vector con las abscisas y pulsa ENTER para cargarlo en


el Nivel 1 de la pila.
6
Tecla (4,3).

6
3. Ahora vamos a construir el vector con las imgenes. Define7 la funcin
f (x) = sin(x)/x,

y duplica el vector de abscisas.

4. No se puede aplicar directamente una funcin sobre un vector o una


matriz, pero comando MAP permite aplicar cualquier programa a los
elementos de una matriz o un vector. Carga en el Nivel 1 de la pila el
siguiente programa.

Busca el comando MAP en el catlogo8


7
Por ejemplo, usando el comando DEFINE.
8
Tambin puedes teclearlo directamente.

7
y pulsa [F6] o ENTER para ejecutarlo, obtendrs

5. Ahora tenemos que crear un vector a partir de los dos vectores de la


pila. Para ello, ejecuta el comando AUGMENT que podemos encon-
trar en [MTRCES][CREAT]. Este comando, forma una matriz a partir
de dos bloques, el resultado es una matriz de 2 filas y 6 columnas

6. Ahora puedes ejecutar el comando LAGRANGE y obtener el polino-


mio interpolador.

8
7. Vamos a calcular la integral del polinomio. Pulsa [H] para acceder al
editor de ecuaciones y calculamos la integral del polinomio obtenido
entre x = 0.5 y x = 1.

8. Como resultado, obtendrs 0.45298.

Veamos ahora cual es el valor de la integral. Fija el modo numrico9 FIX 7


y accede al editor de ecuaciones [EQW] para escribir la integral.

Pulsa ENTER para cargar la integral en la pila y NUM para calcular una
evaluacin decimal. Como resultado, obtendrs

Actividad 2.3 Aproxima el valor de la integral


Z 1.5
sin x
dx
1 x
siguiendo el modelo del ejemplo precedente. Toma las abscisas espaciadas
con paso h = 0.1. (Sol. Valor aproximado integrando el polinomio interpo-
lador 0.37860)
9
El nmero de decimales fijado en MODES, determina la precisin del mtodo de
integracin numrica de la calculadora.

9
Actividad 2.4 Para obtener n + 1 puntos igualmente espaciados en un
intervalo [a, b], tomamos el paso h = (b a)/n y los puntos xj = a + jh.
Determina el paso para obtener 5 puntos igualmente espaciados en [0.5, 1].
Con los 5 valores de xj obtenidos, determina un polinomio (de grado 4)
que interpole la funcin
f (x) = sin(x ln x).
Qu error se comete cuando aproximas f (0.67) usando el polinomio?Y
cuando aproximas f (0.75)?

(Sol. Para obtener 5 abscisas es n = 4, luego h = 0.125. Las abscisas son


x0 = 0.5, x1 = 0.625, x2 = 0.75, x4 = 0.875, x5 = 1. El valor del interpolador
en x = 0.75 es P (0.67) = 0.265124. error = f (0.67) P (0.67) = 0.000012.
En x = 0.75 el error es nulo, es una de las abscisas de interpolacin.)

2.2 Matriz de Vandermonde


El comando VANDERMONDE nos proporciona la matriz de Vandermonde
a partir del vector de abscisas [x0 , x1 , . . . , xn ]. Podemos encontrarlo en el
Catlogo o bien en la tercera pgina del men de herramientas para cons-
truir matrices [MATRICES][CREAT]. Veamos, por ejemplo, la matriz de
Vandermonde correspondiente a las abscisas

x0 = 1, x1 = 1/2, x2 = 1/3, x3 = 2.

Cargamos en la pila el vector de abscisas

y pulsamos [F5] para ejecutar el comando VANDERMONDE,

10
Vemos que las potencias aparecen sin efectuar, si pulsamos [NUM], obten-
dremos una evaluacin numrica de los elementos de la matriz. Para obtener
una evaluacin simblica, cargamos en la pila el programa << EVAL >> y
ejecutamos el comando MAP del Catlogo

Ejemplo 2.2 Obtencin del polinomio interpolador usando la matriz de


Vandermonde.

Consideremos la tabla
x 1.5 2.0 2.5 3.0
y 1.12 1.34 1.56 1.41

El polinomio interpolador es de grado 3. Sabemos que los coeficientes del


polinomio interpolador pueden calcularse resolviendo el sistema

a0 1.12
a1 1.34
V
a2 = 1.56

a2 1.41

donde V es la matriz de Vandermonde correspondiente al vector de abscisas


[1.5, 2.0, 2.5, 3.0]. Si escribimos el sistema en la forma V a = y, entonces el
vector de coeficientes puede calcularse como10 a = V 1 y.

1. Carga el vector de abscisas en la pila

10
En general, calcular el polinomio interpolador invirtiendo la matriz de Vandermonde
no es una buena estrategia. En primer lugar, el clculo de la inversa es costoso, por otra
parte, la matriz de Vandermonde es un caso de matriz mal condicionada y eso significa
que en el clculo de su inversa pueden generarse importantes errores numricos.

11
y ejecuta el comando VANDERMONDE.

2. Pulsa [1/x] para calcular V 1

3. Finalmente, carga en la pila un vector con los valores yj

y pulsa [] para calcular V 1 y

El polinomio interpolador es

P (x) = 4.16 5.357x + 2.960x2 0.493x3

12
Actividad 2.5 Calcula el polinomio interpolador del ejemplo anterior usan-
do el comando LAGRANGE.

Actividad 2.6 Calcula el polinomio interpolador de la tabla

x 1.5 2.0 2.5 3.0


y 1.12 1.34 1.56 1.41

usando la matriz de Vandermonde. Verifica el resultado usando el comando


LAGRANGE.

Actividad 2.7 Si interpolamos una tabla de 4 puntos, es posible que ob-


tengamos un polinomio de grado 2?Y de grado 1? Qu condicin debe
cumplirse para que sto pase?

13

También podría gustarte