Departamento de Matemáticas Grado en Fı́sica
Práctica 2
Métodos Numéricos y Computación
Dados (x0 , y0 ), (x1 , y1 ), . . . , (xn , yn ) ∈ R2 donde x0 , x1 , . . . , xn son puntos de la recta real distintos
dos a dos (llamados nodos de interpolación), el problema de la interpolación polinomial de Lagrange
consiste en determinar, si existe, un polinomio Pn , de grado menor o igual que n, que pase por todos
ellos (Pn (xi ) = yi , para todo i = 0, 1, . . . , n). En muchas ocasiones, yi = f (xi ), para i = 0, 1, . . . , n,
donde f : [a, b] −→ R y x0 , x1 , . . . , xn ∈ [a, b].
En las clases teóricas hemos comprobado que, en las condiciones anteriores, el polinomio inter-
polador siempre existe y es único. Analı́ticamente, su cálculo se puede realizar desde tres puntos de
vista diferentes (a partir de la matriz de Vandermonde, de los polinomios fundamentales de Lagrange
y de las diferencias divididas de Newton).
La librerı́a numpy de Python contiene la función polyfit, que permite calcular el polinomio
interpolador. En esta práctica, implementaremos el primer y el tercer método. Los polinomios serán
representados a partir de sus coeficientes ordenados en un array (habrá que prestar atención al orden
en que se presentan en cada ocasión) y la evaluación del polinomio se realizará por medio de la
función polyval (en numpy).
Ejercicio 1 Define el array P formado por los valores {1, −1, 3, 2, 5}. Compila las instrucciones
[Link](P,1) y [Link](P,0). ¿Qué has obtenido? Representa por medio de un array el
polinomio 2 + x − 0.25x2 + x4 y evalúalo en los puntos x = 1 y x = −2.
Ejercicio 2 Usando la función polyfit, obtén el polinomio interpolador de grado 4 de la función:
1
f (x) = ,
1 + x2
tomando nodos equiespaciados en el intervalo [−1, 1]. Representa gráficamente los valores de la fun-
ción en los nodos, la función y el polinomio.
Ejercicio 3 Construye la función PolLagrange, que halle el polinomio interpolador de Lagran-
ge a partir de la matriz de Vandermonde (usa la función [Link]) tomando como argumento
(x0 , y0 ), (x1 , y1 ), . . . , (xn , yn ) ∈ R2 donde x0 , x1 , . . . , xn son puntos de la recta real distintos dos a dos.
Ejercicio 4 Usa la función PolLagrange para determinar el polinomio interpolador de Lagrange que
pase por seis puntos generados aleatoriamente cuyas abscisas estén en orden creciente en [−5, 4] y
las ordenadas varı́en entre [−2, 6]. Compara el resultado con el polinomio que proporciona la función
polyfit para la interpolación (busca información sobre sus argumentos).
Ejercicio 5 Dada la función f (x) = ex cos 3x, en el intervalo [−2, 3], halla los valores de la fun-
ción en los puntos {−1.5, −0.75, 0.1, 1.5, 2, 2.7}. Halla el polinomio interpolador de dicha función en
los puntos obtenidos. Representa en una misma figura los puntos dados, la función y el polinomio
interpolador de Lagrange.
Ejercicio 6 Sea Pn (x) el polinomio interpolador para la función f (x) = cos5 (x) en n + 1 puntos
equidistantes en el intervalo [0, 2]. Representa el error de interpolación En (x) = |Pn (x) − f (x)|.
Dibuja dicha función para n = 6, 8, 10. ¿Qué podemos observar?
Ejercicio 7 Consideremos la función del error definida por:
Z x
2
erf(x) = √ exp(−t2 )dt.
π 0
a) Obtén el valor de erf(xi ) donde xi = 0.2i, para i = 0, 1, . . . , 5.
b) Usa la interpolación lineal y cuadrática para dar una aproximación de erf(1/3) y evalúa el error
cometido.
Ejercicio 8 Implementa una función dif divididas que, dados n + 1 puntos (x0 , y0 ), (x1 , y1 ), . . . ,
(xn , yn ) donde x0 , x1 , . . . , xn son puntos de la recta real distintos dos a dos, devuelva las diferencias
divididas en los puntos x0 , x1 , . . . , xn .
Ejercicio 9 Usa la función dif divididas para crear otra función, llamada PolNewton, que calcule
el polinomio interpolador de grado menor o igual a n, cuando se dan n+1 puntos (x0 , y0 ), (x1 , y1 ), . . . ,
(xn , y) donde x0 , x1 , . . . , xn son puntos de la recta real distintos dos a dos.
Ejercicio 10 Utiliza la función PolNewton para obtener el polinomio interpolador en los puntos
(1, 2), (2, 4), (4, 6) y (6, 5). Compara el resultado con los polinomios obtenidos con la funciones
polyfit y PolLagrange.
Ejercicio 11 Utiliza la función PolNewton para obtener el polinomio interpolador de la función
f (x) = ex cos 3x en los nodos {−1.5, −0.75, 0, 1, 1.5, 2, 2.7}. Compara el resultado con los polinomios
obtenidos con la funciones polyfit y PolLagrange.