1. 1
Universidad Peruana Unión
Ingeniería
Métodos Numéricos
Laboratorio
0.1.
Interpolación y Aproximación
Es frecuente encontrar libros de cálculos elemental funciones representando el comportamiento de
algún hecho real, lo primero que viene a la mente es la siguiente pregunta ¿de donde salió esa función?
Algunas de estas funciones se obtienen de la solución de una ecuacion diferencial que representa algún
fenómeno físico, pero algunos también resultan de simples observaciones.
Suponga que disponemos de los siguientes datos, resultados de observaciones, donde el par (ti , ci )
representa el precio del dólar ci (soles) en el tiempo ti (horas).
ti
ci
0
3.42
1
3.45
2
3.47
3
3.5
4
3.48
5
3.46
6
3.44
7
3.39
8
3.49
9
3.56
Supóngase que se quiere calcular:
1. El precio del dólar en el tiempo t = 3.5h
2. La hora en que el precio del dólar esté en 3.465 soles
El estudio de la interpolación y aproximación además de responder a estos requerimientos, nos
permite encontrar funciones que representen estos datos, estas funciones frecuentemente son continuas y hasta diferenciables, esto a su vez nos permitirá manejar matemáticamente un problema que
consistía de apenas algunos datos.
0.1.1.
Interpolación
Interpolar una función consiste en aproximar una función f por otra función g, escogida dentro de
una clase definida de antemano y satisfaciendo algunas propiedades. La función g es entonces usada
en reemplazo de f.
Considere n + 1 puntos distintos: x0 , x1 , ..., xn y los valores respectivos de f en esos puntos:
f(x0 ), f(x1 ), ..., f(xn ). La forma de interpolación de f que veremos a seguir consiste en determinar una
función g tal que
g(x0 ) = f(x0 )
g(x1 ) = f(x1 )
.
.
.
g(xn ) = f(xn )
Una manera práctica y muy utilizada es considerar la función interpolante g como polinomio. No
obstante, g puede ser una función racional, trigonométrica, etc. En la figura 1 se muestra un ejemplo
2. 2
para el caso n = 5.
Figura 1: La función g interpolando f en 6 puntos
Si x ∈ [x0 , xn ] se dice que estamos interpolando
Si x ∈ [x0 , xn ] se dice que estamos extrapolando
/
Interpolación Polinomial
Dados n + 1 pares ((x0 , f(x0 )), (x1 , f(x1 )), ..., (xn , f(xn )), queremos aproximar f por un polinomio
pn de grado menor o igual a n, tal que
f(xk ) = pn (xk ),
k = 0, 1, ..., n
(1)
Naturalmente, podemos preguntarnos ahora: ¿existe siempre un polinomio que satisface tales condiciones?, y si existe, ¿el polinomio es único?.
Para responder a esto, representaremos el polinomio pn por
pn (x) = an xn + an−1 xn−1 + ... + a1 x + a0
Así, al encontrar los valores an , an−1, ..., a1 , a0 conoceremos al polinomio pn . Usando la condición (1)
formamos el siguiente sistema lineal con n + 1 ecuaciones y n + 1 variables, note que las variables
son an , an−1, ..., a1 , a0
pn (x0 ) = an xn + an−1 xn−1 + ... + a1 x0 + a0 = f(x0 )
0
0
pn (x1 ) = an xn + an−1 xn−1 + ... + a1 x1 + a0 = f(x1 )
1
1
.
.
.
pn (xn ) = an xn + an−1 xn−1 + ... + a1 xn + a0 = f(xn )
n
n
Observe que el sistema anterior es de la forma
Aα = b
donde
⎡
⎢
⎢
A=⎢
⎣
xn
0
xn
1
.
.
.
xn−1
0
xn−1
1
.
.
.
···
···
..
.
x0
x1
.
.
.
1
1
.
.
.
xn
n
xn−1
n
···
xn
1
⎤
⎥
⎥
⎥,
⎦
(2)
⎡
⎢
⎢
α=⎢
⎣
αn
αn−1
.
.
.
α0
⎤
⎥
⎥
⎥
⎦
⎡
⎢
⎢
y b=⎢
⎣
f(x0 )
f(x1 )
.
.
.
f(xn )
⎤
⎥
⎥
⎥
⎦
Note que α es el vector de incógnitas. La matriz A se le conoce como la matriz de Vandermonde, y
por lo tanto, si x0 , x1 , ..., xn son todos distintos, entonces
Y
(xi − xj ) 6= 0
det(A) =
0≤i<j≤n
Esto significa que A es invertible y, en consecuencia, el sistema lineal (2) tiene solución y ésta es
única. Esto constituye la prueba del siguiente teorema:
3. 3
Teorema 0.1 Existe un único polinomio pn de grado menor o igual a n, tal que
f(xk ) = pn (xk ),
k = 0, 1, ..., n
desde que xk 6= xj , k 6= j, k, j = 0, 1, ..., n
Ejemplo 0.1 Si se conoce los valores de una determinada función f(x), en la siguiente tabla
x
f(x)
0
1
1
3
2
7
Calcularemos un polinomio de segundo grado
p2 (x) = a2 x2 + a1 x + a0
como los valores de x utilizados son 0, 1, 2 y todos ellos son distintos entre si, por el teorema anterior,
podemos concluir que el polinomio p2 existe y es único.
Para que p2 interpole en esos tres puntos bastará exigir que
p2 (0) = a2 (0)2 + a1 (0) + a0 = 1
p2 (1) = a2 (1)2 + a1 (1) + a0 = 3
p2 (2) = a2 (2)2 + a1 (2) + a0 = 7
resta solamente encontrar los valores de a2 , a1 y a0
⎡
⎤ ⎡
⎤⎡
⎤
1 0 1
1
a2
⎣ 1 1 1 ⎦ ⎣ a1 ⎦ = ⎣ 3 ⎦
a0
4 2 1
7
resolviendo a0 = 1, a1 = 1 y a2 = 1
Por lo que p2 (x) = x2 + x + 1. Podemos interpolar y extrapolar
Interpolar el valor f(1.5) ' p(1.5) = 4,75
Interpolar el valor f(2.5) ' p(2.5) = 9,75
Interpolar el valor f(3.5) ' p(3.5) = 16,75
Extrapolar el valor f(4) ' p(4) = 21
Extrapolar el valor f(4.5) ' p(4.5) = 25,75
Ejercicio 0.1 Interpolar f en los puntos x0 = 0, x1 = 1, x2 = 2 y x3 = 3, hallando el polinomio
p3 (x) = a3 x3 + a2 x2 + a1 x + a0 con los siguientes datos:
xi
f (xi )
0
4
1
10
2
26
3
58
Ejercicio 0.2 Obtener el polinomio de interpolación de los puntos
(0, −5), (1, −3), (2, 1), (3, 13)
mediante resolución de un sistema de ecuaciones
Ejercicio 0.3 Encuentre la ecuación del polinomio cuya gráfica pasa por los puntos
(1, 6), (2, 3), (3, 2)
4. 4
Ejercicio 0.4 Hallar el polinomio p2 (x) = a2 x2 + a1 x + a0 cuya gráfica pasa por los puntos
(1, 4), (2, 0), (3, 12)
Ejercicio 0.5 Encuentre el polinomio que se ejuste a los puntos
xi
f (xi )
−2
3
−1
5
0
1
1
4
2
10
Ejemplo 0.2 Considere la función polinomial de tercer grado f(x) = x3 − 5x2 + x − 1 concéntrece en
el intervalo [0, 2] es decir, cuando x = 0, 1, 2 y obtenemos tres puntos las cuales son
x
f(x)
0
1
2
deseamos interpolar f en los tres puntos
(0,
), (1,
), (2,
)
con una función polinomial de segundo grado:
p2 (x) = a2 x2 + a1 x + a0
p2 (0) = a2 (0)2 + a1 (0) + a0 = −1
p2 (1) = a2 (1)2 + a1 (1) + a0 = −4
p2 (2) = a2 (2)2 + a1 (2) + a0 = −11
Resta solamente encontrar los valores de a2 , a1 , a0 y hága sus respectivas gráficas de ambas funciones
x=0:0.2:2;
y=x.^3-5*x.^2+x-1;
plot(x,y,’r’);
hold on
y=-2*x.^2-x-1;
plot(x,y,’--’);
El polinomio f (línea continua) siendo interpolado por p2 (línea discontinua)
en los puntos (0, −1), (1, −4), (2, −11)
5. 5
Ejercicio 0.6 Aproximar la función f(x) = ex mediante un polinomio de grado 2 en el intervalo
[−1, 1] y hága sus respectivas gráficas de ambas funciones para compararlas
Ejercicio 0.7 Sea f alguna función cuya gráfica pasa por los puntos (−2, 6), (0, 4), (1, 5) y (4, 8)
interpolar f en esos 4 puntos con un polinomio p3 de grado menor a igual a 3.
0.1.2.
Polinomios de Lagrange
Dados n + 1 puntos diferentes x0 , x1 , ..., xn , donde
y0 = f(x0 ),
y1 = f(x1 )
...
yn = f(xn )
. Sea pn un polinomio de grado menor o igual que n, tal que interpola a f en los puntos
(x0 , y0 ), (x1 , y1 ), ..., (xn , yn )
(3)
Es posible representar pn en la forma
pn (x) = y0 L0 (x) + y1 L1 (x) + ... + yn Ln (x)
o
pn (x) = f(x0 )L0 (x) + f(x1 )L1 (x) + ... + f(xn )Ln (x)
donde los polinomios Lk son de grado n. Como estamos interpolando, queremos que para cada i se
cumpla la condición pn (xi ) = yi , es decir:
pn (xi ) = y0 L0 (xi ) + y1 L1 (xi ) + ... + yn Ln (xi ) = yi
i = 0, 1, ..., n
Una forma simple de elegir Lk consiste en exigir lque cumpla
¯
0 si k 6= j
Lk (xk ) =
1 si k = j
donde j, k = 0, 1, ..., n, esto se consigue definiendo
Lk (x) =
(x − x0 )(x − x1 )...(x − xk−1 )(x − xk+1 )...(x − xn )
(xk − x0 )(xk − x1 )...(xk − xk−1 )(xk − xk+1 )...(xk − xn )
Como el numerador de Lk es el producto de n factores (x − xi ), i = 0, 1, ..., n, i 6= k, entonces
el polinomio Lk es de grado n. Con esto, el polinomio pn tiene grado menor o igual que n, como
requerimos. Más aún, para xi , i = 0, 1, ..., n, tenemos
pn (xi ) = yi Li (xi ) = yi
y vemos que pn realmente interpola f en tales puntos.
Por lo tanto, la forma de Lagrange para el polinomio interpolador es:
n
X
pn (x) =
yk Lk (x)
k=0
donde
Yn
i=0 (x − xi )
i6=k
Lk (x) = Yn
i=0 (xk
i6=k
− xi )
6. 6
Ejemplo 0.3 La siguiente tabla resume los datos de alguna observación
xi
yi = f(xi )
−2
−3
0
1
3
4
5
9
Queremos interpolar f usando un polinomio interpolador según la forma de Lagrange. Así, el polinomio buscado es
p3 (x) = y0 L0 (x) + y1 L1 (x) + y2 L2 (x) + y3 L3 (x)
Como y0 , ..., y3 son conocidos, resta sólo conocer los polinomios L0 , ..., L3 :
L0 =
L1 =
L2 =
L3 =
(x − x1 )(x − x2 )(x − x3 )
(x0 − x1 )(x0 − x2 )(x0 − x3 )
(x − x0 )(x − x2 )(x − x3 )
(x1 − x0 )(x1 − x2 )(x1 − x3 )
(x − x0 )(x − x1 )(x − x3 )
(x2 − x0 )(x2 − x1 )(x2 − x3 )
(x − x0 )(x − x1 )(x − x2 )
(x3 − x0 )(x3 − x1 )(x3 − x2 )
(x − 0)(x − 3)(x − 5)
x3 − 8x2 + 15x
=−
(−2 − 0)(−2 − 3)(−2 − 5)
70
3 − 6x2 − x + 30
(x − (−2))(x − 3)(x − 5)
x
=
=
(0 − (−2))(0 − 3)(0 − 5)
30
3 − 3x2 − 10x
(x − (−2))(x − 0)(x − 5)
x
=
=−
(3 − (−2))(3 − 0)(3 − 5)
30
3 − x2 − 6x
(x − 0)(x − 3)(x − 5)
x
=
=
(5 − (−2))(5 − 0)(5 − 3)
70
=
Por lo tanto,
¶
µ 3
¶
µ 3
¶
µ 3
x − 6x2 − x + 30
x − 3x2 − 10x
x − 8x2 + 15x
+1
+4 −
p3 (x) = (−3) −
70
30
30
µ 3
¶
2 − 6x
x −x
+9
70
1 3 19 2 41
= ( x − x + x + 1)
14
70
35
Observe la figura adjunta
Figura 3: Polinomio p3 interpolando 4 puntos, según Lagrange
7. 7
Una Implementación particular
function C=LAGRANGE(x,y)
n=length(x); L=zeros(n,n);
for i=1:n
V=1;
for j=1:n
if j~=i
V=conv(V,poly(x(j)))/(x(i)-x(j));
end
end
L(i,:)=V;
end
C=y*L;
Ejercicio 0.8 Si pn (x) =
n
P
k=0
Yn
i=0 (x−x i )
i6=k
yk Lk (x) donde Lk (x) = Yn
complemtar el desarrolla de:
i=0 (x k −x i )
i6=k
1. p1 (x) = y0 L0 (x) + y1 L1 (x)
(x − ...)
(x − ...)
+ y1
p1 (x) = y0
(.. − ...)
(.. − ...)
2. p2 (x) = y0 L0 (x) + y1 L1 (x) + y2 L2 (x)
(x − ...)(x − ...)
(x − ...)(x − ...)
(x − ...)(x − ...)
+ y1
+ y2
p2 (x) = y0
(.. − ...)(.. − ...)
(.. − ...)(.. − ...)
(.. − ...)(.. − ...)
3. p3 (x) = y0 L0 (x) + y1 L1 (x) + y2 L2 (x) + y3 L3 (x)
(x − ...)(x − ...)(x − ...)
(x − ...)(x − ...)(x − ...)
(x − ...)(x − ...)(x − ...)
+ y1
+ y2
+
p3 (x) = y0
(.. − ...)(.. − ...)(.. − ...)
(.. − ...)(.. − ...)(.. − ...)
(.. − ...)(.. − ...)(.. − ...)
(x − ...)(x − ...)(x − ...)
y3
(.. − ...)(.. − ...)(.. − ...)
Ejercicio 0.9 Aprenda a utilizar el comando polyfit mediante el help de MatLab
Ejercicio 0.10 La siguiente tabla resume los datos de alguna observación
xi
yi = f(xi )
1
0
2
−1
3
2
4
−5
Interpolar f usando un polinomio interpolador según la forma de Lagrange.
Ejercicio 0.11 Obtener el polinomio de interpolaci´n de los puntos
(0, −5), (1, −3), (2, 1), (3, 13)
1. Mediante resolución de sistema de ecuaciones
2. Mediante la formula de lagrange
Ejercicio 0.12 Obtener el polinomio de interpolaci´n de los puntos
(0, 1), (1, 3), (2, 7)
8. 8
1. Mediante resolución de sistema de ecuaciones
2. Mediante la formula de lagrange
Ejercicio 0.13 Obtener el polinomio de interpolación de los puntos
(1, 0), (2, −1), (3, 2), (4, −5)
1. Mediante resolución de sistema de ecuaciones
2. Mediante la formula de lagrange
Ejercicio 0.14 Determine el pòlinomio interpolador de Lagrange de la función f(x) = xex en el
intervalo {−1, 1, 2} es decir, cuando x = −1, 1, 2 y obtenemos tres puntos las cuales son
x
f(x)
y haga un gráfica en las abscisas [−2, 3]
−1
1
2