Métodos Numéricos: Resumen y ejemplos Tema 2: Aproximación e

Anuncio
Métodos Numéricos: Resumen y ejemplos
Tema 2: Aproximación e interpolación
Francisco Palacios
Escuela Politécnica Superior de Ingeniería de Manresa
Universidad Politécnica de Cataluña
Febrero 2008, Version 1.4
Contenido
1. Objetivo de los métodos numéricos
2. Errores
3. Dígitos significativos y decimales exactos
4. Polinomios de Taylor
5. Resto del polinomio de Taylor
6. Polinomio interpolador de Lagrange
7. Forma de Lagrange para el polinomio interpolador
8. Error de interpolación
9. Forma de Newton para el polinomio interpolador
10. Polinomio interpolador de Hermite
1
Objetivo de los métodos numéricos
El objetivo de los métodos numéricos es aproximar el valor numérico de
objetos matemáticos usando un número finito de operaciones aritméticas.
Algunos ejemplos típicos del tipo de problema que abordan los métodos
numéricos son los siguientes:
1. Evaluar
√ √
5, 6 28, sin(0.361), (0.853)0.71 .
2. Aproximar un valor de x que cumpla sin x + ex = 0.
3. Aproximar el valor de
Z
1
0
1
sin x
dx.
x
Resumen y ejemplos
Tema 2: Aproximación e Interpolación. 2
4. Conocidos los valores de la tabla
x
f (x)
0
0.5
aproximar el valor de f (0.07),
5. Si y = y(x) cumple
½
R 0.2
0
0.1
1.7
0.2
2.3
f (x) dx, f 0 (0.07).
y 0 = x cos y
y(0) = 0
aproximar y(0.1), y(0.2), y(0.3).
1.1
Método iterativo
Una forma bastante habitual de generar aproximaciones xj de un valor α
x0 , x1 , x2 , . . . , xn , . . . → α
consiste en el uso de una fórmula recurrente
½
xn+1 = g(xn ),
x0 = valor inicial.
√
Ejemplo 1.1 Método iterativo para c.
La siguiente fórmula recurrente
xn+1
1
=
2
¶
µ
c
,
xn +
xn
√
nos proporciona un método iterativo para aproximar el valor de c. Para
iniciar el método, necesitamos una primera
estimación x0 .
√
Supongamos que deseamos calcular 27, la fórmula de recurrencia, en nuestro caso, es
µ
¶
1
27
xn +
.
xn+1 =
2
xn
Podemos tomar como estimación inicial x0 = 5, entonces
x0 = 5,
µ
¶
27
1
5+
= 5. 2,
x1 =
2
5
µ
¶
27
1
x2 =
5.2 +
= 5. 19615 3846,
2
5.2
µ
¶
27
1
x3 =
5. 19615 3846 +
= 5. 19615 2423,
2
5. 19615 3846
µ
¶
27
1
x4 =
5. 19615 2423 +
= 5. 19615 2423.
2
5. 19615 2423
Resumen y ejemplos
Tema 2: Aproximación e Interpolación. 3
Observamos que x4 = x3 (con 9 decimales), el método ha convergido al valor
ᾱ = 5. 19615 2423.
El valor obtenido es correcto hasta el noveno decimal
√
27 = 5. 19615 24227 06631.
En el tema dedicado a la resolución numérica de ecuaciones, veremos que
este método se obtiene al aplicar el método de Newton-Raphson a la ecuación
x2 − c = 0. ¤
2
Errores
Sea α un valor exacto y (xj ) una sucesión de aproximaciones de α
x0 , x1 , x2 , . . . , xj , . . . → α,
definimos:
• Error absoluto
• Error relativo
ej = α − xj .
rj =
ej
α − xj
= .
α
α
r̂j =
α − xj
.
xj
Error relativo aproximado
Normalmente usamos los valores absolutos de los errores
¯
¯
¯
¯
¯ α − xj ¯
¯ α − xj ¯
¯
¯.
¯
¯
, |r̂j | = ¯
|ej | = |α − xj | , |rj | = ¯
α ¯
xj ¯
⎧
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎨
Fuentes
de error ⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎩
En la determinación
del modelo.
En la resolución
numérica.
⎧
Simplificación del problema.
⎪
⎪
⎪
⎪
⎨ (no rozaminento, etc...)
⎪
⎪
Errores en la medida de datos
⎪
⎪
⎩
y parámetros.
⎧
Errores accidentales.
⎪
⎪
⎪
⎪
(de cálculo, de programación, etc...)
⎪
⎪
⎨
Truncamiento de procesoso infinitos.
⎪
⎪
⎪
⎪
⎪
⎪
⎩
Redondeo.
Resumen y ejemplos
Tema 2: Aproximación e Interpolación. 4
Ejemplo 2.1 Ejemplo de error de truncamiento.
Queremos aproximar
α=
∞
X
1
1
1 1
+ ···
=1+ + +
2
n
4 9 16
n=1
para ello calculamos la suma finita
S6 =
6
X
1
1
1
1
1 1
+
+
= 1. 491389.
=1+ + +
2
n
4
9
16
25
36
n=1
Puede demostrarse que el valor exacto de α es
α=
∞
X
1
π2
,
=
2
n
6
n=1
por lo tanto, el error absoluto de truncamiento es
e6 =
π2
− 1. 491389 = 0. 15354 5.
6
Para el error relativo, obtenemos
r6 =
0. 15354 5
e6
=
= 0.09 33 = 9.33%.
α
(π 2 /6)
Obviamente, al realizar los cálculos, también se han producido errores de redondeo, sin embargo, en este caso, los errores de redondeo son muy inferiores
al error de truncamiento. ¤
3
Dígitos significativos y decimales exactos
• Decimos que x aproxima α con t decimales exactos si
|ex | = |α − x| ≤ 0.5 × 10−t .
• Decimos que x aproxima α con t dígitos significativos si
|rx | =
|α − x|
≤ 5 × 10−t .
|α|
Ejemplo 3.1 Aproximamos α = 49.99 mediante x = 50.00.
(a) ¿Cuántos decimales exactos tiene x?
(b) ¿Cuántos dígitos significativos?
(c) ¿Cuantos decimales son iguales?
Resumen y ejemplos
Tema 2: Aproximación e Interpolación. 5
(a) El error absoluto es
|ex | = |α − x| = |49.99 − 50.00| = 0. 01 = 0.1 × 10−1 ,
como |ex | < 0.5 × 10−1 , x aproxima α con un decimal exacto.
(b) El error relativo es
|rx | =
0.01
|α − x|
=
= 2. 0004 × 10−4 ,
|α|
49.99
como |rx | < 5 × 10−4 , x aproxima α con 4 dígitos significativos.
(c) α y x no tienen dígitos iguales. ¤
4
Polinomio de Taylor
Sea f (x) una función derivable hasta orden n en x = c.
• El polinomio de Taylor de f (x) en x = c es
Pn (x) = f (c) +
f 00 (c)
f 0 (c)
f (n) (c)
(x − c) +
(x − c)2 + · · · +
(x − c)n .
1!
2!
n!
• Cuando c = 0, resulta el polinomio de McLaurin
Pn (x) = f (0) +
f 00 (0) 2
f 0 (0)
f (n) (0) n
x+
x + ··· +
x .
1!
2!
n!
Propiedad
Si Pn (x) es el polinomio de Taylor de orden n de f (x) en x = c, entonces
se cumple
Pn (c) = f (c), Pn0 (c) = f 0 (c), Pn00 (c) = f 00 (c), . . . , Pn(n) (c) = f (n) (c).
Aplicación
Los polinomios de Taylor permiten aproximar el valor de una función f (x)
para x próximos a c. Observa que para construir el polinomio de Taylor
usamos únicamente valores de f y sus derivadas (consecutivas) en x = c.
Ejemplo 4.1 Consideramos f (x) = ex .
(a) Determina al polinomio de McLaurin de orden 5 para f.
(b) Aproxima el valor de e0.5 .
(c) ¿Cuántos decimales exactos tiene la aproximación?
Resumen y ejemplos
Tema 2: Aproximación e Interpolación. 6
(a) Polinomio de McLaurin. Se cumple
f (x) = ex , f 0 (x) = ex , f 00 (x) = ex , . . . , f (5) (x) = ex .
Sustituyendo en x = 0, resulta
f (0) = f 0 (0) = f 00 (0) = · · · = f (5) (0) = 1,
por lo tanto
x5
x2 x3 x4
+
+
+
.
2
6
24 120
(b) Valor aproximado. Sustituyendo x = 0.5 en el polinomio, resulta
P5 (x) = 1 + x +
P5 (0.5) = 1. 648698.
(c) Error. El valor de e0.5 , calculado con 6 decimales es
e0.5 = 1. 64872 1,
el valor absoluto del error absoluto es
¯
¯
|e5 | = ¯e0.5 − P5 (0.5)¯ = 0.000023 = 0.2 3 × 10−4 .
Por lo tanto, la aproximación P5 (0.5) tiene 4 decimales exactos. ¤
Ejemplo 4.2 Consideramos f (x) = sin x.
(a) Determina al polinomio de McLaurin de orden 5 para f.
(b) Aproxima el valor1 de sin(0.2).
(c) ¿Cuántos decimales exactos tiene la aproximación?
(a) Polinomio de McLaurin. Se cumple:
f (x) = sin x,
f 0 (x) = cos x,
f 00 (x) = − sin x,
f (3) (x) = − cos x,
f (4) (x) = sin x,
f (5) (x) = cos x,
f (0) = 0,
f 0 (0) = 1,
f 00 (0) = 0,
f (3) (0) = −1,
f (4) (0) = 0,
f (5) (0) = 1,
por lo tanto
P5 (x) = x −
x5
x3
+
.
6
120
1
El argumento de sin(x) está en radianes. Debes tener en cuenta que las reglas usuales
de derivación de funciones trigonométricas, como
d
sin (x) = cos (x) ,
dx
sólo son válidas si el ángulo está en radianes.
d
cos (x) = − sin(x),
dx
Resumen y ejemplos
Tema 2: Aproximación e Interpolación. 7
(b) Valor aproximado. Sustituyendo x = 0.2 en el polinomio, resulta
P5 (0.2) = 0.19866 93333.
(c) Error. El valor de sin(0.2), calculado con 10 decimales es
sin(0.2) = 0.19866 93308.
El valor absoluto del error absoluto es
|e5 | = |sin(0.2) − P5 (0.2)| = 0.2 5 × 10−8 .
Por lo tanto, la aproximación P5 (0.2) tiene 8 decimales exactos. ¤
5
Resto del polinomio de Taylor
Sea
• I = [a, b] y c un punto interior, esto es a < c < b.
• f (x) una función de clase2 C n+1 [a, b].
Para cada x ∈ [a, b] se cumple
f (x) = Pn (x) + Rn (x),
donde:
Pn (x) = f (c) +
f 00 (c)
f 0 (c)
f (n) (c)
(x − c) +
(x − c)2 + · · · +
(x − c)n ,
1!
2!
n!
Rn (x) =
f (n+1) (t)
(x − c)n+1 ,
(n + 1)!
t está entre c y x.
Cota de error
Si representamos por Mn+1 una cota superior de f (n+1) (t), esto es
¯
¯
¯
¯
max ¯f (n+1) (t)¯ ≤ Mn+1 ,
t∈[a,b]
entonces tenemos la siguiente acotación para el error absoluto que se produce
cuando aproximamos f (x) mediante Pn (x)
|en (x)| = |f (x) − Pn (x)| = |Rn (x)| ≤
2
Mn+1
|x − c|n+1 .
(n + 1)!
Una función es de clase C n+1 [a, b] si tiene derivadas contínuas hasta orden (n + 1) en
[a, b]
Resumen y ejemplos
Tema 2: Aproximación e Interpolación. 8
Ejemplo 5.1 Aproxima sin(0.2) usando un polinomio de McLaurin de grado 3. Determina una cota superior de error y verifica los resultados.
(a) Valor de la aproximación. En principio, tomaríamos
P3 (x) = x −
x3
,
6
ahora bien, observamos que en este caso se cumple
f (4) (x) = sin(x)
→
f (4) (0) = 0,
por lo tanto, el polinomio de orden 4 coincide con el de orden 3.
P4 (x) = x −
x3
.
6
Tomamos P4 (x) porque nos proporciona una cota de error más ajustada.
El valor de la aproximación, con 10 decimales es
P4 (0.2) = 0. 19866 66667.
(b) Cota de error. Como
f (5) (x) = cos x,
tenemos
¯
¯
¯ cos t 5 ¯
x ¯¯ ,
|e4 (x)| = ¯¯
5!
t entre 0 y x.
Podemos tomar M5 = 1, entonces
(0.2)5
= 0.2 6667 × 10−5 .
|e4 (0.2)| ≤
5!
(1)
Por lo tanto, la aproximación P4 (0.2) tiene al menos 5 decimales exactos,
podemos tomar el valor
sin (0.2) = 0.19867.
(c) Verificación de resultados. El valor de sin(0.2) calculado con 10 decimales
es
sin(0.2) = 0.1986693307,
por lo tanto, el error absoluto es
|e4 (0.2)| = |sin (0.2) − P4 (0.2)| = 0.2664 × 10−5 .
Vemos que, en efecto, el error real es inferior a la cota superior de error
calculada en (1). ¤
Resumen y ejemplos
6
Tema 2: Aproximación e Interpolación. 9
Polinomio interpolador de Lagrange
6.1
Planteamiento
Dada la tabla de valores
x
y
x0
y0
x1
y1
···
···
xn
yn
(2)
donde
• x0 , x1 , . . . , xn son n + 1 abscisas distintas.
• y0 , y1 , . . . , yn son n + 1 valores arbitrarios.
Queremos determinar un polinomio de grado ≤ n
Pn (x) = a0 + a1 x + · · · + an xn ,
que verifique las n + 1 condiciones
Pn (xj ) = yj ,
para j = 0, 1, . . . , n.
(3)
Propiedad Si las abscisas x0 , x1 , . . . , xn son distintas, existe un único polinomio Pn (x) de grado ≤ n que cumple las condiciones
Pn (xj ) = yj ,
para j = 0, 1, . . . , n.
• Decimos que Pn (x) es el polinomio interpolador de la tabla
x
y
x0
y0
x1
y1
···
···
xn
yn
• Cuando los valores yj se generan empleando una función
yj = f (xj ),
para j = 0, 1, . . . , n,
entonces decimos que Pn (x) es el polinomio interpolador de la función
f (x) en las abscisas o nodos xj .
1
Ejemplo 6.1 Calcula el polinomio interpolador de la función f (x) = en
x
los nodos x0 = 1, x1 = 2, x2 = 3.
La tabla de valores es
x
y
1
1
2
1/2
3
1/3
Resumen y ejemplos
Tema 2: Aproximación e Interpolación. 10
Como tenemos 3 puntos, debemos determinar un polinomio de grado≤ 2
P2 (x) = a0 + a1 x + a2 x2 .
Las condiciones de interpolación (3) se traducen en
⎧
⎨ P2 (1) = 1,
P (2) = 1/2,
⎩ 2
P2 (3) = 1/3.
(4)
(5)
Sustituyendo en (4), obtenemos
⎧
⎨ a0 + a1 + a2 = 1
a + 2a1 + 4a2 = 1/2
⎩ 0
a0 + 3a1 + 9a2 = 1/3
Se trata de un sistema de 3 ecuaciones lineales con 3 incógnitas. Resolvemos
por reducción
⎧
⎨ a0 + a1 + a2 = 1
a
a
a1 + 3a2 = −1/2
(2 − 1 )
⎩
(3a − 2a )
a1 + 5a2 = −1/6
⎧
⎨ a0 + a1 + a2 = 1
a1 + 3a2 = −1/2
⎩
(3a − 2a )
2a2 = 1/3
de donde resulta
1
a2 = , a1 = −1,
6
El polinomio interpolador, es por lo tanto
P2 (x) =
a0 =
11
.
6
x2
11
−x+ .
6
6
Es inmediato verificar que, efectivamente, el polinomio obtenido cumple las
condiciones de interpolación (5). ¤
6.2
Intervalo de interpolación
El intervalo de interpolación es el menor intervalo que contiene los nodos
xj , lo representamos por
hx0 , x1 , . . . , xn i = [min xj , max xj ].
Si los nodos están ordenados de forma creciente
x0 < x1 < · · · < xn ,
entonces el intervalo de interpolación es [x0 , xn ].
Resumen y ejemplos
Tema 2: Aproximación e Interpolación. 11
El siguiente gráfico muestra la representación conjunta de la función
f (x) = 1/x
y el polinomio interpolador calculado en el Ejemplo 6.1
P2 (x) =
4
x2
11
−x+ .
6
6
y
f(x)=1/x
f(x)=11/6-x+x^2
3
interpolador
2
función
1
x
-1
-0.5
0.5
1
1.5
2
2.5
3
3.5
4
4.5
Intervalo de interpolación
-1
-2
-3
Observamos que:
• El polinomio interpolador coincide con la función en los puntos de
interpolación (xj , f (xj )).
• El polinomio interpolador es un buen aproximante de la función cuando x pertenece al intervalo de interpolación.
• Fuera del intervalo de interpolación, el error |en (x)| = |f (x) − Pn (x)|
aumenta rápidamente.
7
Forma de Lagrange para el polinomio interpolador
Consideremos la tabla
x
y
x0
y0
x1
y1
···
···
xn
yn
donde los nodos xj son distintos. Sabemos que existe un único polinomio
Pn (x) de grado ≤ n que interpola la tabla. Hemos visto que podemos determinar Pn (x) resolviendo un sistema de ecuaciones. Podemos obtener el polinomio interpolador de forma directa (sin resolver un sistema de ecuaciones)
expresándolo en una forma especial, conocida como la forma de Lagrange
Pn (x) = l0 (x) y0 + l1 (x) y1 + · · · + ln (x) yn .
Resumen y ejemplos
Tema 2: Aproximación e Interpolación. 12
Los polinomios lj (x) se denominan polinomios componentes y se caracterizan
por las propiedades
⎧
⎨ 1 si j = k,
lj (xk ) = δ jk =
⎩
0 si j 6= k.
Es decir, el polinomio componente lj (x) vale 1 en su nodo xj y se anula en
los restantes.
Como lj (x) se anula para
x0 , x1 , . . . , xj−1 , xj+1 , . . . , xn ,
y es de grado ≤ n, debe ser de la forma
lj (x) = C (x − x0 ) (x − x1 ) · · · (x − xj−1 ) (x − xj+1 ) · · · (x − xn ) .
Para cumplir lj (xj ) = 1, debe ser
C=
1
,
(xj − x0 ) (xj − x1 ) · · · (xj − xj−1 ) (xj − xj+1 ) (xj − xn )
por lo tanto
lj (x) =
(x − x0 ) (x − x1 ) · · · (x − xj−1 ) (x − xj+1 ) · · · (x − xn )
.
(xj − x0 ) (xj − x1 ) · · · (xj − xj−1 ) (xj − xj+1 ) (xj − xn )
Ejemplo 7.1 Polinomio interpolador para 3 nodos.
Consideremos la tabla
x
y
x0
y0
x1
y1
x2
y2
Los polinomios componentes son
x2
⇒
l0 (x) =
(x − x1 ) (x − x2 )
.
(x0 − x1 ) (x0 − x2 )
∗
x1
x2
⇒
l1 (x) =
(x − x0 ) (x − x2 )
.
(x1 − x0 ) (x1 − x2 )
x1
∗
x2
⇒
l2 (x) =
(x − x0 ) (x − x1 )
.
(x2 − x0 ) (x2 − x1 )
∗
x0
x1
x0
x0
Observamos que, efectivamente, los polinomios componentes cumplen
⎧
⎧
⎧
⎨ l1 (x0 ) = 0
⎨ l2 (x0 ) = 0
⎨ l0 (x0 ) = 1
l (x ) = 0 ,
l (x ) = 1 ,
l (x ) = 0 .
⎩ 1 1
⎩ 2 1
⎩ 0 1
l0 (x2 ) = 0
l1 (x2 ) = 0
l2 (x2 ) = 1
Resumen y ejemplos
Tema 2: Aproximación e Interpolación. 13
El polinomio interpolador es, entonces
P2 (x) = l0 (x) y0 + l1 (x) y1 + l2 (x) y2 .
Vemos que P2 (x) es de grado ≤ 2, además toma los valores adecuados
P2 (x0 ) = l0 (x0 ) y0 + l1 (x0 ) y1 + l2 (x0 ) y2 = y0 ,
P2 (x1 ) = l0 (x1 ) y0 + l1 (x1 ) y1 + l2 (x1 ) y2 = y1 ,
P2 (x2 ) = l0 (x2 ) y0 + l1 (x2 ) y1 + l2 (x2 ) y2 = y2,
¤
Ejemplo 7.2 Determina el polinomio interpolador de la tabla
x
y
1
1
2
1/2
3
.
1/3
Los polinomios componentes son
x2 = 3
⇒
l0 (x) =
1
(x − 2) (x − 3)
= (x − 2) (x − 3) .
(1 − 2) (1 − 3)
2
∗
x1 = 2
x2 = 3
⇒
l1 (x) =
(x − 1) (x − 3)
= − (x − 1) (x − 3) .
(2 − 1) (2 − 3)
x1 = 2
∗
x2 = 3
⇒
l2 (x) =
1
(x − 1) (x − 2)
= (x − 1) (x − 2) .
(3 − 1) (3 − 2)
2
∗
x0 = 1
x1 = 2
x0 = 1
x0 = 1
El polinomio interpolador es
P2 (x) = l0 (x) · 1 + l1 (x) ·
1
1
+ l2 (x) .
2
3
1
1
1
(x − 2) (x − 3) − (x − 1) (x − 3) + (x − 1) (x − 2) .
(6)
2
2
6
La tabla de valores es la misma que la del Ejemplo 6.1, si operamos en (6),
resulta
1
11
P2 (x) = x2 − x + ,
6
6
que coincide con el obtenido mediante la resolución de un sistema de ecuaciones. ¤
P2 (x) =
Resumen y ejemplos
8
Tema 2: Aproximación e Interpolación. 14
Error de interpolación
Para el polinomio interpolador de una función, es posible obtener una expresión del error que es muy parecida a la fórmula de error para el polinomio
de Taylor.
Sean
• (n + 1) nodos distintos x0 , x1 , . . . , xn .
• [a, b] = hx0 , x1 , . . . , xn i (el menor intervalo que contiene los nodos)
• f (x) función de clase C n+1 [a, b].
• Pn (x) el polinomio interpolador de f (x) en los nodos x0 , x1 , . . . , xn .
Para cada x ∈ [a, b], el error de interpolación admite la siguiente expresión
en (x) = f (x) − Pn (x) =
f (n+1) (t)
(x − x0 ) · · · (x − xn ),
(n + 1)!
t ∈ [a, b].
¯
¯
Si Mn+1 es una cota superior para ¯f (n+1) (t)¯ , esto es
¯
¯
¯
¯
max ¯f (n+1) (t)¯ ≤ Mn+1 ,
t∈[a,b]
obtenemos la siguiente cota superior para el error de interpolación
|en (x)| = |f (x) − Pn (x)| ≤
Mn+1
|(x − x0 ) · · · (x − xn )| .
(n + 1)!
Ejemplo 8.1 A partir de los datos
e0 = 1,
e0.1 = 1.105171,
e0.2 = 1.221403.
(a) Aproxima el valor de e0.14 .
(b) Determina una cota superior del error de interpolación.
(c) Compara con el valor de la calculadora.
(a) Cálculo de la aproximación. Los polinomios componentes son
∗
x0 = 0
x1 = 0.1
x2 = 0.2
l0 (x) =
⇒
l0 (x) =
(x − 0.1) (x − 0.2)
.
(0 − 0.1) (0 − 0.2)
1
(x − 0.1) (x − 0.2) .
0.02
Resumen y ejemplos
∗
x1 = 0.1
x0 = 0
Tema 2: Aproximación e Interpolación. 15
x2 = 0.2
l1 (x) =
x0 = 0
x1 = 0.1
∗
x2 = 0.2
l2 (x) =
⇒
l1 (x) =
−1
x (x − 0.2)
0.01
⇒
l2 (x) =
1
x (x − 0.1) .
0.02
(x) (x − 0.2)
(0.1 − 0) (0.1 − 0.2)
(x) (x − 0.1)
.
(0.2 − 0) (0.2 − 0.1)
Polinomio interpolador
P2 (x) = l0 (x) y0 + l1 (x) y1 + l2 (x) y2 .
Para calcular P2 (1.14), sustituimos en los polinomios componentes
l0 (0.14) =
(0.04) (−0.06)
1
(0.14 − 0.1) (0.14 − 0.2) =
= −0.12,
0.02
0.02
− (0.14) (−0.06)
−1
(0.14) (0.14 − 0.2) =
= 0.84,
0.01
0.01
(0.14) (0.04)
1
(0.14) (0.14 − 0.1) =
= 0.28,
l2 (0.14) =
0.02
0.02
finalmente
l1 (0.14) =
P2 (0.14) = l0 (0.14) y0 + l1 (0.14) y1 + l2 (0.14) y2
= (−0.12) · 1 + 0.84 × 1.105171 + 0.28 × 1.221403
= 1. 150336.
(b) Cota superior de error. En nuestro caso, el intervalo de interpolación es
[0, 0.2], tenemos
|e2 (x)| ≤
con
M3
|(x − x0 ) (x − x1 ) (x − x2 )| ,
3!
¯
¯
¯ ¯
¯
¯
M3 ≥ max ¯f (3) (t)¯ = max ¯et ¯ = e0.2 = 1.221403,
t∈[0,0.2]
t∈[0,0.2]
por lo tanto
1.221403
|(0.14 − 0) (0.14 − 0.1) (0.14 − 0.2)|
3!
≤ 0.6 83986 × 10−4 = 0.06 83986 × 10−3 .
e2 (0.14) ≤
Vemos que la aproximación tiene al menos 3 decimales exactos, el resultado
es
e0.14 = 1. 150 .
Resumen y ejemplos
Tema 2: Aproximación e Interpolación. 16
(c) Comparación con el valor de la calculadora. El error exacto (con 6
decimales) es
¯
¯
|e2 (0.14)| = ¯e0.14 − P2 (0.14)¯ = |1. 150273 − 1. 150336|
= 0. 63 × 10−4
vemos que, efectivamente, el error real es inferior a la cota de error calculada.
¤
9
Forma de Newton para el polinomio interpolador
En esta sección se presenta otra forma para calcular el polinomio interpolador, conocida como la forma de Newton. Esta forma es especialmente adecuada para realizar los cálculos manualmente. Además, permite incorporar
nuevos puntos de interpolación sin tener que rehacer todos los cálculos.
9.1
Diferencias divididas
Dada la tabla de valores
x
y
x0
y0
x1
y1
x2
y2
x3
y3
x4
y4
formamos la tabla de diferencias divididas
x0
x1
x2
x3
x4
f [x0 ]
f [x1 ]
f [x2 ]
f [x3 ]
f [x4 ]
f [x0 , x1 ]
f [x1 , x2 ]
f [x2 , x3 ]
f [x3 , x4 ]
f [x0 , x1 , x2 ]
f [x1 , x2 , x3 ]
f [x2 , x3 , x4 ]
f [x0 , x1 , x2 , x3 ]
f [x1 , x2 , x3 , x4 ]
f [x0 , x1 , x2 , x3 , x4 ]
Las diferencias divididas se calculan de forma recurrente
f [xj ] = f (xj ) = yj ,
f [xi , xi+1 , · · · , xj−1 , xj ] =
f [xi+1 , · · · , xj−1 , xj ] − f [xi , xi+1 , · · · , xj−1 ]
,
xj − xi
Ejemplo 9.1 Diferencias divididas.
f [x0 , x1 ] =
f [x1 ] − f [x0 ]
,
x1 − x0
f [x1 , x2 ] =
f [x2 ] − f [x1 ]
,
x2 − x1
Resumen y ejemplos
Tema 2: Aproximación e Interpolación. 17
f [x0 , x1 , x2 ] =
f [x1 , x2 , x3 , x4 ] =
f [x1 , x2 ] − f [x0 , x1 ]
,
x2 − x0
f [x2 , x3 , x4 ] − f [x1 , x2 , x3 ]
. ¤
x4 − x1
Ejemplo 9.2 Diferencias divididas para la tabla
x
y
x0 = 0
x1 = 1
x2 = 3
9.2
f [x0 ]= 1
f [x1 ] = 3
f [x2 ] = −1
0
1
f [x0 , x1 ]=
f [x1 , x2 ]=
1
3
3
.
−1
3−1
1 =2
−1−3
3−1 = −2
f [x0 , x1 , x2 ]=
−2−2
3−0
=
−4
3
Interpolador de Newton
Dada la tabla de valores
x
y
x0
y0
x1
y1
x2
y2
x3
y3
x4
y4
tenemos los siguientes polinomios interpoladores
• Un nodo
x
y
x0
y0
P0 (x) = f [x0 ].
• Dos nodos
x
y
x0
y0
x1
y1
P1 (x) = f [x0 ] + f [x0 , x1 ] (x − x0 ).
• Tres nodos
x
y
x0
y0
x1
y1
x2
y2
P2 (x) = f [x0 ] + f [x0 , x1 ] (x − x0 ) + f [x0 , x1 , x2 ] (x − x0 )(x − x1 ).
• Cuatro nodos
x
y
x0
y0
x1
y1
x2
y2
x3
y3
P3 (x) = f [x0 ] + f [x0 , x1 ] (x − x0 ) + f [x0 , x1 , x2 ] (x − x0 )(x − x1 )
+f [x0 , x1 , x2 , x3 ] (x − x0 )(x − x1 )(x − x2 ).
Resumen y ejemplos
• Cinco nodos
Tema 2: Aproximación e Interpolación. 18
x
y
x0
y0
x1
y1
x2
y2
x3
y3
x4
y4
P4 (x) = f [x0 ] + f [x0 , x1 ] (x − x0 ) + f [x0 , x1 , x2 ] (x − x0 )(x − x1 )
+f [x0 , x1 , x2 , x3 ] (x − x0 )(x − x1 )(x − x2 )
+f [x0 , x1 , x2 , x3 , x4 ] (x − x0 )(x − x1 )(x − x2 )(x − x3 ).
Ejemplo 9.3 Calcula el polinomio interpolador de la tabla
x
y
0
1
1
3
3
.
−1
Hemos obtenido la tabla de diferencias divididas
x0 = 0
x1 = 1
x2 = 3
f [x0 ]= 1
f [x1 ]= 3
f [x2 ]= −1
f [x0 , x1 ] = 2
f [x1 , x2 ] = −2
f [x0 , x1 , x2 ] =
−4
3
El interpolador es
P2 (x) = f [x0 ] + f [x0 , x1 ] (x − x0 ) + f [x0 , x1 , x2 ] (x − x0 )(x − x1 ).
En nuestro caso
−4
x (x − 1).
3
El polinomio P2 (x) es de grado 2. En los nodos xj toma los valores
P2 (x) = 1 + 2x +
P2 (0) = 1,
P2 (1) = 1 + 2 = 3,
4
P2 (3) = 1 + 6 − · 6 = 7 − 8 = −1.
3
Se trata, por lo tanto, del polinomio interpolador. ¤
Ejemplo 9.4 Calcula el polinomio interpolador de la tabla
x
y
0
0
1
0
−1
.
2
Hemos obtenido la tabla de diferencias divididas
x0 = 0
x1 = 1
x2 = −1
f [x0 ] = 0
f [x1 ] = 0
f [x2 ] = 2
f [x0 , x1 ] = 0
f [x1 , x2 ] = −1
f [x0 , x1 , x2 ] = 1
El interpolador es
P2 (x) = f [x0 ] + f [x0 , x1 ] (x − x0 ) + f [x0 , x1 , x2 ] (x − x0 )(x − x1 ),
en nuestro caso
P2 (x) = x (x − 1). ¤
Resumen y ejemplos
10
10.1
Tema 2: Aproximación e Interpolación. 19
Interpolación de Hermite
Presentación del problema
Dada la tabla de datos
x
y
y0
x0
y0
y00
x1
y1
y10
···
···
···
xn
yn
yn0
se pretende determinar un polinomio de grado ≤ 2n + 1
H2n+1 (x) = a0 + a1 x + · · · + a2n+1 x2n+1 ,
que cumpla las 2n + 2 condiciones
½
H2n+1 (xj ) = yj
0
H2n+1
(xj ) = yj0
para j = 0, 1, . . . , n.
Propiedad. Si los nodos x0 , x1 , . . . , xn , son distintos, entonces el polinomio
interpolador de Hermite H2n+1 (x) existe y es único, para cualquier elección
de los valores yj y yj0 .
Ejemplo 10.1 Calcula el polinomio interpolador de Hermite para la tabla
x
y
y0
0
1
1
1
3 .
−1
Se trata de un polinomio de grado ≤ 3
H3 (x) = a0 + a1 x + a2 x2 + a3 x3 .
(7)
Las condiciones de interpolación son
⎧
H3 (0) = 1,
⎪
⎪
⎨ 0
H3 (0) = 1,
H (1) = 3,
⎪
⎪
⎩ 30
H3 (1) = −1.
Calculamos H30 (x)
(8)
H30 (x) = a1 + 2a2 x + 3a3 x2 ,
sustituyendo en (7) y (9), resulta
⎧
⎧
a0 = 1
⎪
⎪
⎪
⎪
⎨
⎨
a1 = 1
⇒
⎪ a0 + a1 + a2 + a3 = 3
⎪
⎪
⎪
⎩
⎩
a1 + 2a2 + 3a3 = −1
⎧
a0 = 1
a0
⎪
⎪
⎨
a1 = 1
a1
⇒
a2 + a3 = 1
⎪ a2
⎪
⎩
2a2 + 3a3 = −2
a3
(9)
=1
=1
=5
= −4
Resumen y ejemplos
Tema 2: Aproximación e Interpolación. 20
El polinomio interpolador es, por lo tanto,
H3 (x) = 1 + x + 5x2 − 4x3 .
Vemos que H3 (x) cumple
H3 (0) = 1,
H3 (1) = 3,
si calculamos la derivada
H30 (x) = 1 + 10x − 12x2
y sustituimos en x0 = 0 y x1 = 1, resulta
H30 (0) = 1,
H30 (1) = −1.
por lo tanto, H3 (x) cumple las condiciones (8). ¤
10.2
Cálculo del polinomio de Hermite usando diferencias
divididas
Podemos calcular el polinomio de Hermite usando un procedimiento muy
parecido al empleado para construir la forma de Newton del polinomio interpolador de Lagrange.
x0
x0
x1
x1
x2
x2
f [x0 ]
f [x0 ]
f [x1 ]
f [x1 ]
f [x2 ]
f [x2 ]
f [x0 , x0 ]
f [x0 , x1 ]
f [x1 , x1 ]
f [x1 , x2 ]
f [x2 , x2 ]
f [x0 , x0 , x1 ]
f [x0 , x1 , x1 ]
f [x1 , x1 , x2 ]
f [x1 , x2 , x2 ]
f [x0 , x0 , x1 , x1 ]
f [x0 , x1 , x1 , x2 ]
f [x1 , x1 , x2 , x2 ]
f [x0 , x0 , x1 , x1 , x2 ]
f [x0 , x1 , x1 , x2 , x2 ]
La diferencia es que ahora hay nodos xj repetidos, las diferencias f [xj , xj ]
se definen como
f [xj , xj ] = f 0 (xj ) = yj0 .
Los polinomios de Hermite H1 (x), H2 (x), H2 (x), tienen la siguiente forma:
• Un nodo. Tabla de datos
x
y
y0
x0
y0
y00
Tabla de diferencias
x0
x0
f [x0 ]
f [x0 ]
f [x0 , x0 ]
Interpolador
H1 (x) = f [x0 ] + f [x0 , x0 ] (x − x0 ).
Observa que en este caso, se obtiene la recta tangente en x = x0 .
Resumen y ejemplos
Tema 2: Aproximación e Interpolación. 21
• Dos nodos. Tabla de datos
x
y
y0
x0
y0
y00
x1
y1
y10
Tabla de diferencias
f [x0 ]
f [x0 ]
f [x1 ]
f [x1 ]
x0
x0
x1
x1
f [x0 , x0 ]
f [x0 , x1 ]
f [x1 , x1 ]
f [x0 , x0 , x1 ]
f [x0 , x1 , x1 ]
f [x0 , x0 , x1 , x1 ]
Interpolador
H3 (x) = f [x0 ] + f [x0 , x0 ] (x − x0 ) + f [x0 , x0 , x1 ] (x − x0 )2 +
+f [x0 , x0 , x1 , x1 ] (x − x0 )2 (x − x1 ) .
• Tres nodos. Los datos son
x
y
y0
x0
y0
y00
x1
y1
y10
x2
y2
y20
y el polinomio interpolador tiene la forma
H5 (x) = f [x0 ] + f [x0 , x0 ] (x − x0 ) + f [x0 , x0 , x1 ] (x − x0 )2 +
+f [x0 , x0 , x1 , x1 ] (x − x0 )2 (x − x1 ) +
+f [x0 , x0 , x1 , x1 , x2 ] (x − x0 )2 (x − x1 )2 +
+f [x0 , x0 , x1 , x1 , x2 , x2 ] (x − x0 )2 (x − x1 )2 (x − x2 ).
Ejemplo 10.2 Calcula el polinomio interpolador de la tabla
x
y
y0
0
1
1
1
3 .
−1
Los datos iniciales en la tabla de diferencias divididas son
x0
x0
x1
x1
=0
=0
=1
=1
f [x0 ] = 1
f [x0 ] = 1
f [x1 ] = 3
f [x1 ] = 3
f [x0 , x0 ] = 1
f [x0 , x1 ]
f [x1 , x1 ] = −1
f [x0 , x0 , x1 ]
f [x0 , x1 , x1 ]
f [x0 , x0 , x1 , x1 ]
A partir de ahí, obtenemos
x0
x0
x1
x1
=0
=0
=1
=1
f [x0 ] = 1
f [x0 ] = 1
f [x1 ] = 3
f [x1 ] = 3
f [x0 , x0 ] = 1
f [x0 , x1 ] = 2
f [x1 , x1 ] = −1
f [x0 , x0 , x1 ] = 1
f [x0 , x1 , x1 ] = −3
f [x0 , x0 , x1 , x1 ] = −4
Resumen y ejemplos
Tema 2: Aproximación e Interpolación. 22
Por lo tanto, el interpolador es
H3 (x) = f [x0 ] + f [x0 , x0 ] (x − x0 ) + f [x0 , x0 , x1 ] (x − x0 )2 +
+f [x0 , x0 , x1 , x1 ] (x − x0 )2 (x − x1 ) .
H3 (x) = 1 + x + x2 − 4x2 (x − 1) .
Si operamos, resulta
H3 (x) = 1 + x + 5x2 − 4x3 .
que coincide con el obtenido en el Ejemplo 10.1 ¤
10.3
Error del polinomio de Hermite
Sean
• (n + 1) nodos distintos x0 , x1 , . . . , xn .
• [a, b] = hx0 , x1 , . . . , xn i (el menor intervalo que contiene los nodos).
• f (x) función de clase C 2n+2 [a, b].
• H2n+1 (x) el polinomio interpolador de Hermite para f (x) en los nodos
x0 , x1 , . . . , xn .
Para cada x ∈ [a, b], el error de interpolación admite la siguiente expresión
¯
¯
¯
¯ f (2n+2) (t)
¯
¯
2
2
(x − x0 ) · · · (x − xn ) ¯ ,
|e2n+1 (x)| = |f (x) − H2n+1 (x)| = ¯
¯
¯ (2n + 2)!
t ∈ [a, b].
¯
¯
Si M2n+2 es una cota superior para ¯f (2n+2) (t)¯ , esto es
¯
¯
¯
¯
max ¯f (2n+2) (t)¯ ≤ M2n+2 ,
t∈[a,b]
obtenemos la siguiente cota superior para el error de interpolación
|e2n+1 (x)| = |f (x) − H2n+1 (x)| ≤
M2n+2
(x − x0 )2 · · · (x − xn )2 .
(2n + 2)!
Ejemplo 10.3 Calcula el polinomio de Hermite que interpola la función
sin(x) en x0 = 0 y x1 = π/4. Aproxima el valor de sin(0.5), calcula una cota
superior de error.
Resumen y ejemplos
Tema 2: Aproximación e Interpolación. 23
Tenemos
f 0 (x) = cos(x),
f (x) = sin(x),
f (0) = 0,
f 0 (0) = 1,
1
π
f ( ) = √ = 0. 70710 678,
4
2
La tabla de datos es
x
y
y0
x0 = 0
0
1
π
f 0 ( ) = 0.70710 678.
4
x1 = 0. 78539 816
0.70710 678
0.70710 678
la tabla de diferencias inicial es
x0
x0
x1
x1
=0
=0
= 0. 78539 816
= 0. 78539 816
f [x0 ] = 0
f [x0 ] = 0
f [x1 ] = 0.70710 678
f [x1 ] = 0.70710 678
f [x0 , x0 ] = 1.
f [x0 , x1 ]
f [x1 , x1 ] = 0.70710 678
de donde obtenemos
f [x0 , x0 ] = 1.
f [x0 , x1 ] = 0. 90031 632
f [x1 , x1 ] = 0.70710 678
f [x0 , x0 , x1 ] = −0. 12692 12
f [x0 , x1 , x1 ] = −0. 24600 203
f [x0 , x0 , x1 , x1 ] = −0. 15161 842
El cálculo detallado de algunas diferencias divididas es como sigue
f [x0 , x1 ] =
f [x0 , x0 , x1 ] =
f [x0 , x1 , x1 ] =
f [x1 ] − f [x0 ]
0.70710 678
= 0. 90031 632,
=
x1 − x0
0. 78539 816
f [x0 , x1 ] − f [x0 , x0 ]
0. 90031 632 − 1.
= −0. 12692 12,
=
x1 − x0
0. 78539 816
f [x1 , x1 ] − f [x0 , x1 ]
0.70710 678 − 0. 90031 632
=
= −0. 24600 203.
x1 − x0
0. 78539 816
Los valores relevantes para construir H3 (x) son
f [x0 ] = 0,
f [x0 , x0 , x1 ] = −0. 12692 12,
f [x0 , x0 ] = 1,
f [x0 , x0 , x1 , x1 ] = −0. 15161 842.
El polinomio interpolador tiene la forma
H3 (x) = f [x0 ] + f [x0 , x0 ] (x − x0 ) + f [x0 , x0 , x1 ] (x − x0 )2 +
+f [x0 , x0 , x1 , x1 ] (x − x0 )2 (x − x1 ) ,
Resumen y ejemplos
Tema 2: Aproximación e Interpolación. 24
es, por lo tanto
H3 (x) = x − 0. 12692 12 x2 − 0. 15161 842 x2 (x − 0. 78539 816).
El valor aproximado para x = 0.5 es
H3 (0.5) = 0.47908 76.
(10)
Cota de error. Tenemos
|e3 (x)| = |f (x) − H3 (x)| ≤
M4
(x − x0 )2 (x − x1 )2 .
4!
El intervalo de interpolación es [0, π/4]. En nuestro caso f (4) (x) = sin(x)
por lo tanto
¯
¯
1
¯
¯
M4 = max ¯f (4) (t)¯ = sin(π/4) = √ ,
t∈[0,π/4]
2
de donde resulta la cota de error
³ ´
|e3 (0.5)| ≤
√1
2
24
(0.5)2 (0.5 − π/4)2 = 0.59995 × 10−3 .
A la vista de la cota de error, sólo podemos asegurar 2 decimales exactos
en la aproximación, el valor que debemos tomar como resultado se obtiene
redondeando (10) a 2 decimales
sin(0.5) = 0.48.
Error exacto. El valor de sin(0.5) es
sin(0.5) = 0. 47942 554,
el error real es
|e3 (0.5)| = |sin(0.5) − H3 (0.5)| = 0.33794 × 10−3 . ¤
Descargar