Sie sind auf Seite 1von 30

Métodos Numéricos en Ingenierı́a Mecánica / Ingenierı́a Quı́mica 21

TEMA 2.- Aproximación de funciones por polinomios.


Diferenciación e Integración numérica

Introducción.
Interpolación de Lagrange.
Diferenciación Numérica
Métodos cerrados de Newton-Côtes: Fórmulas del trapecio y de Simpson. Fórmulas compuestas.
Métodos Gauss-Legendre: Fórmulas de Gauss.

Aproximación de funciones por polinomios


Aproximación de funciones Los procedimientos de cálculo que usan los ordenadores para eval-
uar funciones, como la exponencial o el seno, involucran aproximación mediante polinomios.
En Cálculo Infinitesimal ya se ha estudiado la aproximación por el polinomio de Taylor, en los
cuales toda la información utilizada se concentra en un punto y su validez es local.

Ahora proponemos resolver el siguiente problema: dada una tabla de puntos


x x0 x1 · · · xn
y y0 y1 · · · yn
encontrar un polinomio P (x) con el menor grado posible tal que P (xi ) = yi , 0 ≤ i ≤ n.
Si planteamos un polinomio genérico de grado n y establecemos las n+1 condiciones anteriores,
entonces tendrı́amos que resolver un sistema lineal de n + 1 ecuaciones con n + 1 incógnitas,
coeficientes del polinomio. ¿Cómo encontrar el polinomio fácilmente?
Teorema Dados los puntos
x x0 x1 · · · xn
y y0 y1 · · · yn
con xi ∈ R distintos, existe un único polinomio Pn (x) de grado menor o igual que n verificando
Pn (xi ) = yi , 0≤i≤n

Demostración

Unicidad si existen dos polinomios pn (x), qn (x) distintos verificando


qn (xi ) = pn (xi ) = yi , 0≤i≤n
consideramos el polinomio Q(x) = pn (x) − qn (x) de grado a lo sumo n, este polinomio
verifica que Q(xi ) = 0, 0 ≤ i ≤ n , es decir, tiene n + 1 raı́ces o ceros. Por tanto,
Q(x) ≡ 0 =⇒ pn (x) = qn (x)
Métodos Numéricos en Ingenierı́a Mecánica / Ingenierı́a Quı́mica 22

Existencia → solución del sistema lineal Pn (xi ) = yi , 0≤i≤n


    
1 x0 x20 · · · xn0 a0 y0
 1 x1 x2 · · · xn1   a1   y1 
 1    
2 n 
Pn (x) = a0 + a1 x + a2 x2 + · · · + an xn =⇒  1 x2 x2
 · · · x2   a2 =
  y2 

 .. .. .. . . . ..   ..   .. 
 . . . .  .   . 
1 xn x2n · · · xnn an yn

este sistema tiene solución única ya que el determinante de la matriz de los coeficientes es

1 x0 x2 · · · xn
0 0
1 x1 x2 · · · xn
1 1
1 x2 x2 · · · xn Y
2 2 = (xj − xi ) 6= 0
.. .. .. . . .. 0≤i<j≤n
. . . . .
1 xn x2n · · · xnn

POLINOMIOS INTERPOLADORES DE LAGRANGE

x x0 x1 · · · xn
Dada la tabla con x0 < x1 < . . . < xn , notamos
y y0 y1 · · · yn
n
Y
A(x) = (x − x0 )(x − x1 ) · · · (x − xn ) = (x − xi )
i=0

n
Y
Ak (x) = (x − x0 ) · · · (x − xk−1 )(x − xk+1 ) · · · (x − xn ) = (x − xi )
i=0,i6=k

Se define el polinomio interpolador de Lagrange como


n 
X Ak (x) Ln,k (xk ) = 1
Pn (x) = yk · Ln,k (x) siendo Ln,k (x) = verificando
Ak (xk ) Ln,k (xi ) = 0 i 6= k
k=0

Definiciones

Los puntos (xi , yi ) reciben el nombre de nodos de la interpolación.


Cuando se utiliza el polinomio interpolador para aproximar una función f los nodos son
de la forma (xi , yi ) = (xi , f (xi )).
Los términos Ln,k se llaman polinomios coeficientes de Lagrange de grado n.
Cuando n = 1, P1 (x) se denomina polinomio de interpolación lineal.
Cuando n = 2, P2 (x) se denomina polinomio de interpolación cuadrática.
Cuando x0 < x < xn , la aproximación dada por pn (x) se llama valor interpolado.
Cuando x < x0 o xn < x, la aproximación dada por pn (x) se llama valor extrapolado.
Métodos Numéricos en Ingenierı́a Mecánica / Ingenierı́a Quı́mica 23

Ejemplos Construir los correspondientes polinomios de Lagrange, P3 (x), para las siguientes tablas
de puntos

(1)
x −2 −1 1 2
y −5 1 1 7
Polinomios coeficientes de Lagrange de grado 3

(x + 1)(x − 1)(x − 2) (x + 1)(x − 1)(x − 2)


L3,0 (x) = =−
(−2 + 1)(−2 − 1)(−2 − 2) 12
(x + 2)(x − 1)(x − 2) (x + 2)(x − 1)(x − 2)
L3,1 (x) = =
(−1 + 2)(−1 − 1)(−1 − 2) 6
(x + 2)(x + 1)(x − 2) (x + 2)(x + 1)(x − 2)
L3,2 (x) = =−
(1 + 2)(1 + 1)(1 − 2) 6
(x + 2)(x + 1)(x − 1) (x + 2)(x + 1)(x − 1)
L3,3 (x) = =
(2 + 2)(2 + 1)(2 − 1) 12
Polinomio interpolador de Lagrange

3  
X (x + 1)(x − 1)(x − 2) (x + 2)(x − 1)(x − 2)
P3 (x) = yk · L3,k (x) = (−5) · − +1· +
k=0
12 6
 
(x + 2)(x + 1)(x − 2) (x + 2)(x + 1)(x − 1)
+1 · − +7· = x3 − x + 1
6 12

(2)
x −2 −1 1 2

1 1 1 1 1
f (x) =
1 + x2 5 2 2 5
Los polinomios coeficientes de Lagrange, L3,k , son los mismos del ejemplo anterior ya que
coinciden los valores de xi . Luego el polinomio interpolador de Lagrange es
Métodos Numéricos en Ingenierı́a Mecánica / Ingenierı́a Quı́mica 24

3  
X 1 (x + 1)(x − 1)(x − 2) 1 (x + 2)(x − 1)(x − 2)
P3 (x) = f (xk ) · L3,k (x) = · − + · +
k=0
5 12 2 6

6 − x2
 
1 (x + 2)(x + 1)(x − 2) 1 (x + 2)(x + 1)(x − 1)
+ · − + · =
2 6 5 12 10

(3)
x −2 −1 1 2

Q(x) = x3 − 2x2 + 1 −15 −2 0 1

3  
X (x + 1)(x − 1)(x − 2) (x + 2)(x − 1)(x − 2)
P3 (x) = Q(xk )·L3,k (x) = (−15)· − +(−2)· +
k=0
12 6
 
(x + 2)(x + 1)(x − 2) (x + 2)(x + 1)(x − 1)
+0 · − +1· = x3 − 2x2 + 1
6 12

Consecuencia
El polinomio interpolador de Lagrange, Pm (x) m ≥ n, para un polinomio Q(x) de
grado n coincide con el propio polinomio, es decir

Pm (x) = Q(x) m ≥ n = grado(Q)

.
Métodos Numéricos en Ingenierı́a Mecánica / Ingenierı́a Quı́mica 25

(4)
x −1 0 1 2

f (x) = x4 − 2x3 − x2 + 4x − 3 −5 −3 −1 1
Polinomios coeficientes de Lagrange de grado 3
(x − 0)(x − 1)(x − 2) x(x − 1)(x − 2)
L3,0 (x) = =−
(−1 − 0)(−1 − 1)(−1 − 2) 6
(x + 1)(x − 1)(x − 2) (x + 1)(x − 1)(x − 2)
L3,1 (x) = =
(0 + 1)(0 − 1)(0 − 2) 2
(x + 1)(x − 0)(x − 2) (x + 1)x(x − 2)
L3,2 (x) = =−
(1 + 1)(1 − 0)(1 − 2) 2
(x + 1)(x − 0)(x − 1) (x + 1)x(x − 1)
L3,3 (x) = =
(2 + 1)(2 − 0)(2 − 1) 6
Polinomio interpolador de Lagrange
3  
X x(x − 1)(x − 2) (x + 1)(x − 1)(x − 2)
P3 (x) = f (xk ) · L3,k (x) = (−5) · − + (−3) · +
k=0
6 2
 
(x + 1)x(x − 2) (x + 1)x(x − 1)
+(−1) · − +1· = 2x − 3
2 6

Ejemplo Calcula el valor interpolado en x = 1.5 y el extrapolado en x = 2.5 con el polinomio


interpolador de la función f (x), P3 (x), del ejemplo (2). Calcula el valor absoluto y relativo
para cada uno de los puntos.
1 6 − x2
f (x) = , P3 (x) =
1 + x2 10
x f (x) P3 (x) ea = |f (x) − P3 (x)| er = ea /|f (x)|
1.5 0.3077 0.375 0.0673 0.2188
2.5 0.1379 −0.025 0.1629 1.1813

Veamos que el error que se comete cuando utilizamos un polinomio interpolador de Lagrange
para aproximar una función f se puede evaluar y acotar.
Teorema

Sea f ∈ C n+1 ([a, b]). Sean x0 < x1 < . . . < xn , n + 1 puntos distintos del intervalo [a, b].
Entonces para cada x ∈ [a, b] se verifica que existe αx ∈ [a, b] tal que

f (x) = Pn (x) + En (x)

donde Pn (x) es el polinomio interpolador de Lagrange para los nodos dados y En (x) es el
término del error cometido al aproximar f (x) por Pn (x) que se expresa como

A(x) (x − x0 )(x − x1 ) · · · (x − xn ) (n+1)


En (x) = · f (n+1) (αx ) = ·f (αx )
(n + 1)! (n + 1)!
Métodos Numéricos en Ingenierı́a Mecánica / Ingenierı́a Quı́mica 26

Demostración
Si x = xi el resultado es trivial. Para cada x 6= xi fijo, definimos la siguiente función

F (t) = A(x) (f (t) − Pn (t)) − A(t) (f (x) − Pn (x)) t ∈ [a, b]

Como F (x0 ) = F (x1 ) = . . . = F (xn ) = F (x) = 0 → F posee n + 2 ceros en el intervalo [a, b].
Por tanto aplicando el Tma. de Rolle, su derivada

F 0 (t) = A(x) (f 0 (t) − Pn0 (t)) − A0 (t) (f (x) − Pn (x)) t ∈ [a, b]

posee al menos n + 1 ceros en el intervalo [a, b]. Aplicamos nuevamente el Tma. de Rolle, la
derivada segunda

F 00 (t) = A(x) (f 00 (t) − Pn00 (t)) − A00 (t) (f (x) − Pn (x)) t ∈ [a, b]

posee al menos n ceros en el intervalo [a, b]. Y ası́ sucesivamente, luego la derivada de F de
orden n + 1

F (n+1) (t) = A(x) f (n+1) (t) − Pn(n+1) (t) − A(n+1) (t) (f (x) − Pn (x)) t ∈ [a, b]


posee al menos un cero, αx , en el intervalo [a, b]. Sabiendo además que

Pn(n+1) (t) = 0, A(n+1) (t) = (n + 1)!

sustituimos t por αx en la derivada de orden n + 1 de F y obtenemos


A(x)
0 = F (n+1) (αx ) = A(x)·f (n+1) (αx )−(n+1)!·(f (x) − Pn (x)) =⇒ En (x) = f (x)−Pn (x) = ·f (n+1) (αx )
(n + 1)!

Acotación del error



Sea f ∈ C n+1 ([a, b]) , f (n+1) (x) ≤ Mn+1 ∀ x ∈ [a, b] ⇒
(n+1)
f (αx ) Mn+1
|En (x)| = · A(x) ≤ |(x − x0 )(x − x1 ) · · · (x − xn )|
(n + 1)! (n + 1)!

Nodos equiespaciados Sean x0 , x1 , . . . , xn nodos distintos, pertenecientes a un intervalo [a, b],


se dice que son equiespaciados cuando se mantiene constante la distancia, h, entre dos nodos
consecutivos, es decir

x 0 < x 1 < . . . < xn → x k = x 0 + h · k k = 0, 1, 2, . . . , n


x − x0
En este caso, un punto del intervalo x ∈ [a, b] se expresa como x = x0 + t · h → t =
h
y las funciones antes definidas A y En se expresan
n
Y n
Y n
Y
n+1
A(x) → (x − xk ) = (x0 + t · h − (x0 + h · k)) = h (t − k)
k=0 k=0 k=0

n
t=
x−x0 Y f (n+1) (αx )
En (x) =h hn+1 (t − k) ·
k=0
(n + 1)!
Métodos Numéricos en Ingenierı́a Mecánica / Ingenierı́a Quı́mica 27

Teorema

Sea f una función definida en [a, b] que contiene a los nodos equiespaciados
x0 < x1 < . . . < xn → xk = x0 + h · k 0 ≤ k ≤ n . Si f ∈ C 4 ([a, b]), es decir las derivadas de
f hasta orden 4 son continuas en [a, b], por tanto acotadas en dicho intervalo. Sea

|f 00 (x)| ≤ M2 , |f 000 (x)| ≤ M3 , f iv (x) ≤ M4 ∀x ∈ [a, b]


Entonces los términos de error admiten cotas expresadas por


h2
n=1 → |E1 (x)| ≤ · M2 x ∈ [x0 , x1 ]
8
h3
n=2 → |E2 (x)| ≤ √ · M3 x ∈ [x0 , x2 ]
9 3
h4
n=3 → |E3 (x)| ≤ · M4 x ∈ [x0 , x3 ]
24
Demostración


1 00 h2
Y f (α )
x
(1) |E1 (x)| = h2 (t − k) · ≤ · M2 · |t(t − 1)|


k=0
2! 2
1
calculamos el valor máximo de g(t) = |t(t − 1)| t ∈ [0, 1], se alcanza en g(1/2) = .
4
Por tanto
h2 h2
|E1 (x)| ≤ · M2 · |t(t − 1)| ≤ · M2
2 8
Métodos Numéricos en Ingenierı́a Mecánica / Ingenierı́a Quı́mica 28


2
Y
3 f 000 (αx ) h3
(2) |E2 (x)| = h (t − k) · ≤ · M3 · |t(t − 1)(t − 2)|

k=0
3! 6
calculamos ! el valor máximo de g(t) = |t(t − 1)(t − 2)| t ∈ [0, 2], se alcanza en
√ √
3 2 3
g 1± = . Por tanto
3 9

h3 h3
|E2 (x)| ≤ · M3 · |t(t − 1)(t − 2)| ≤ √ · M3
6 9 3


3
Y
4 f (αx ) h4
iv
(3) |E3 (x)| = h (t − k) · ≤ · M4 · |t(t − 1)(t − 2)(t − 3)|

k=0
4! 24
calculamos !el valor máximo de g(t) = |t(t − 1)(t − 2)(t − 3)| t ∈ [0, 3], se alcanza en

3± 5
g = −1. Por tanto
2

h4 h4
|E3 (x)| ≤ · M4 · |t(t − 1)(t − 2)(t − 3)| ≤ · M4
24 24
Métodos Numéricos en Ingenierı́a Mecánica / Ingenierı́a Quı́mica 29

Diferenciación Numérica
La derivación numérica tiene importancia en el desarrollo de algoritmos para resolver ecuaciones
diferenciales tanto ordinarias como en derivadas parciales. También es útil para aproximar (’calcu-
lar’) derivadas de funciones empı́ricas. El comportamiento de las derivadas de funciones elementales
conocidas nos ayudará a comparar los resultados numéricos con los exactos, y poder ası́ evaluar
(’acotar’) los errores que se cometen.
El problema numérico se puede abordar utilizando: la definición de derivada en un punto, el
polinomio de Taylor y el polinomio de interpolación.
Si partimos de la definición de derivada de una función f : R → R en un punto x del dominio

f (x + h) − f (x) h pequeño 0 f (x + h) − f (x)


f 0 (x) = lı́m −→ f (x) ≈
h→0 h h
¿Serı́a aceptable esta aproximación? Observemos lo que sucede con las funciones

f (x) = sen x → f 0 (0) = cos 0 = 1 y g(x) = ex → g 0 (1) = e1 = e

cuando tomamos valores muy pequeños h = 10−k k = 1, 2, . . . , 15 :



e1+h −e e1+h −e
sen h
h = 10−k f 0 (0) ≈ sen h
− f 0 (0) g 0 (1) ≈ h − g 0 (1)

h h h

10−1 0.998334166468282 0.998334166468282 2.858841954873879 0.140560126414833


10−2 0.999983333416666 0.000016666583334 2.731918655787080 0.013636827328035
10−3 0.999999833333342 0.000000166666658 2.719641422532781 0.001359594073736
10−4 0.999999998333333 0.000000001666667 2.718417747078483 0.000135918619438
10−5 0.999999999983333 0.000000000016667 2.718295419912309 0.000013591453264
10−6 0.999999999999833 0.000000000000167 2.718283186986525 0.000001358527480
10−7 0.999999999999998 0.000000000000002 2.718281963964842 0.000000135505796
10−8 1.000000000000000 0 2.718281777447373 0.000000051011672
10−9 1.000000000000000 0 2.718281599811689 0.000000228647356
10−10 1.000000000000000 0 2.718278935276430 0.000002893182615
10−11 1.000000000000000 0 2.718270053492233 0.000011774966813
10−12 1.000000000000000 0 2.718270053492233 0.000011774966812
10−13 1.000000000000000 0 2.713385072183883 0.004896756275163
10−14 1.000000000000000 0 2.664535259100376 0.053746569358670
10−15 1.000000000000000 0 2.664535259100376 0.053746569358670

Tabla 1: Aproximación de la derivada a partir de la definición para las funciones f (x) = sen x y
g(x) = ex . Cálculos efectuados con MatLab.
Métodos Numéricos en Ingenierı́a Mecánica / Ingenierı́a Quı́mica 30

Podemos observar que a partir de h = 10−8 , la aproximación de la derivada de la función


f (x) = sen x en x = 0 nos da el valor exacto mientras que el valor de la aproximación de la derivada
de la función g(x) = ex en x = 1 cada vez se aleja más del valor exacto, es decir, el error que se comete
es cada vez mayor. Esto nos indica que los algoritmos de derivación numérica son inestables, debido
a que el error de truncamiento disminuye, si se reduce h, pero se incrementa el error de redondeo.
Fórmulas de dos puntos Sea f : [a, b] → R una función que posee derivadas hasta orden dos
continuas en el intervalo [a, b] ⊂ Domf , es decir, f es de clase dos: f ∈ C 2 ([a, b]).
Sea xi ∈ [a, b], y sea h > 0 el tamaño de paso, podemos definir puntos próximos a xi dentro
del intervalo [a, b], utilizando la siguiente notación:
xi+1 = xi + h, xi−1 = xi − h, xi+2 = xi + 2h, xi−2 = xi − 2h, · · ·

Realizamos el desarrollo de Taylor de la función f en xi de orden 1 con resto de orden dos:


f 00 (α)
f (x) = f (xi ) + f 0 (xi ) · (x − xi ) + · (x − xi )2 α ∈ (xi , x) o α ∈ (x, xi )
2!
Y evaluamos la función en xi+1 :
f 00 (α) 2
f (xi+1 ) =f (xi + h) = f (xi ) + f 0 (xi ) · h + · h =⇒
2!
f (xi+1 ) − f (xi ) f 00 (α)
=⇒f 0 (xi ) = − ·h α ∈ (xi , xi+1 )
h 2
f (xi+1 ) − f (xi )
Fórmula de la diferencia progresiva f 0 (xi ) ≈
h

Ahora evaluamos el desarrollo de Taylor en xi−1 :


f 00 (α)
f (xi−1 ) =f (xi − h) = f (xi ) + f 0 (xi ) · (−h) + · (−h)2 =⇒
2!
f (xi ) − f (xi−1 ) f 00 (α)
=⇒f 0 (xi ) = + ·h α ∈ (xi−1 , xi )
h 2
f (xi ) − f (xi−1 )
Fórmula de la diferencia regresiva f 0 (xi ) ≈
h

El error de truncamiento cometido será


f 00 (α)
E=± ·h α ∈ (xi , xi+1 ) o α ∈ (xi−1 , xi )
2
Por tanto, la cota del error cometido se puede evaluar mediante la cota de la derivada segunda
en el intervalo [a, b]. Obteniendo el siguiente resultado:
Acotación del error de truncamiento
00
00
f (α) h
Sea f de clase dos, |f (x)| ≤ M2 ∀ x ∈ [a, b] ⇒ |E| = ± · h ≤ M2
2 2
Ejemplo: Evaluamos las fórmulas anteriores en la función g(x) = ex para aproximar la deriva-
da en x = 1, consideramos h = 10−k k = 1, 2, . . . , 10 y calculamos los errores cometidos.
Nuevamente, podremos observar que los errores crecen a partir de un valor de h:
Métodos Numéricos en Ingenierı́a Mecánica / Ingenierı́a Quı́mica 31


−k g(xi+1 )−g(xi ) g(xi+1 )−g(xi ) 0 g(xi )−g(xi−1 ) g(xi )−g(xi−1 ) 0
h = 10 − g (1) − g (1)

h h h h

10−1 2.858841954873879 0.140560126414833 2.586787173020957 0.131494655438089


10−2 2.731918655787080 0.013636827328035 2.704735610978304 0.013546217480742
10−3 2.719641422532781 0.001359594073736 2.716923140478667 0.001358687980379
10−4 2.718417747078483 0.000135918619438 2.718145918900738 0.000135909558307
10−5 2.718295419912309 0.000013591453264 2.718268237122957 0.000013591336089
10−6 2.718283186986525 0.000001358527480 2.718280469604650 0.000001358854395
10−7 2.718281963964842 0.000000135505796 2.718281693070423 0.000000135388622
10−8 2.718281777447373 0.000000051011672 2.718281866265215 0.000000037806170
10−9 2.718281599811689 0.000000228647356 2.718282043900899 0.000000215441854
10−10 2.718278935276430 0.000002893182615 2.718283376168529 0.000001547709483

Tabla 2: Aproximación de la derivada de g(x) = ex en x = 1 mediante las fórmulas de las diferencias


progresiva y regresiva. Cálculo de errores.

Gráficamente estarı́amos aproximando la pendiente de la recta tangente a la gráfica de la


función en x = 1 por las pendientes de las rectas secantes que unen el punto (1, g(1)) con
los puntos (1 + h, g(1 + h)), (1 − h, g(1 − h)), como puede verse en las siguientes gráficas
Representación gráfica de la Fórmula de la diferencia progresiva h=0.5 Representación gráfica de la Fórmula de la diferencia regresiva h=0.5
8 8
x x
g(x)=e g(x)=e
7 t 7 t
g g
Recta secante Recta secante
6 Puntos de la recta Puntos de la recta
6

5
5
4
4
3
3
2

2
1

0 1

-1 0
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2

Si la función es de clase tres, f ∈ C 3 ([a, b]), podemos deducir una nueva fórmula de dos puntos
combinando los dos desarrollos de Taylor de la función f en xi de orden 2 y resto de orden 3
evaluados en los puntos xi−1 = xi − h, xi+1 = xi + h ∈ [a, b] con h > 0. El desarrollo de Taylor
de f en xi de orden 2 y resto de orden 3 queda:
f 00 (xi ) f 000 (α)
f (x) = f (xi ) + f 0 (xi ) · (x − xi ) + · (x − xi )2 + · (x − xi )3 α ∈ (xi , x) o α ∈ (x, xi )
2! 3!
Evaluamos el desarrollo en los puntos xi−1 = xi − h, xi+1 = xi + h
f 00 (xi ) 2 f 000 (α1 ) 3
f (xi+1 ) =f (xi + h) = f (xi ) + f 0 (xi ) · h ·h + ·h+ α1 ∈ (xi , xi+1 )
2! 3!
f 00 (xi ) f 000 (α2 )
f (xi−1 ) =f (xi − h) = f (xi ) + f 0 (xi ) · (−h) + · (−h)2 + · (−h)3 α2 ∈ (xi−1 , xi )
2! 3!
Métodos Numéricos en Ingenierı́a Mecánica / Ingenierı́a Quı́mica 32

Si restamos ambas expresiones quedarı́a

0 f 000 (α1 ) + f 000 (α2 ) 3


f (xi+1 ) − f (xi−1 ) = 2 · f (xi ) · h + ·h α1 ∈ (xi , xi+1 ) y α2 ∈ (xi−1 , xi )
3!
Al ser f de clase tres en el intervalo, es decir, f 000 es continua en [a,b], y despejando f 0 (xi )
obtenemos
2 · f 000 (c) 3
 
0 1
f (xi ) = f (xi+1 ) − f (xi−1 ) − ·h c ∈ (xi−1 , xi+1 )
2h 6
f (xi+1 ) − f (xi−1 )
Fórmula de diferencias centradas f 0 (xi ) ≈
2h

El error de truncamiento cometido será


f 000 (c) 2
E=− ·h c ∈ (xi−1 , xi+1 )
6
Por tanto, la cota del error cometido se puede estimar mediante la cota de la derivada tercera
en el intervalo [a, b]. Obteniendo el siguiente resultado:
Acotación del error de truncamiento
000
f (c) 2 h2

000
Sea f de clase tres, |f (x)| ≤ M3 ∀ x ∈ [a, b] ⇒ |E| = − · h ≤ M3
6 6
Ejemplo: Evaluamos la fórmula anterior en la función g(x) = ex para aproximar la derivada en
x = 1, consideramos h = 10−k k = 1, 2, . . . , 10 y calculamos los errores cometidos:

−k g(xi+1 )−g(xi−1 ) g(xi+1 )−g(xi−1 ) 0
h = 10 − g (1)

2h 2h

10−1 2.722814563947418 0.004532735488372


10−2 2.718327133382692 0.000045304923646
10−3 2.718282281505724 0.000000453046678
10−4 2.718281832989611 0.000000004530565
10−5 2.718281828517633 0.000000000058587
10−6 2.718281828295588 0.000000000163458
10−7 2.718281828517632 0.000000000058587
10−8 2.718281821856294 0.000000006602751
10−9 2.718281821856294 0.000000006602751
10−10 2.718281155722480 0.000000672736566

Tabla 3: Aproximación de la derivada de g(x) = ex en x = 1 mediante la fórmula de las diferencias


centradas. Cálculo de errores.
Métodos Numéricos en Ingenierı́a Mecánica / Ingenierı́a Quı́mica 33

Nuevamente, podemos observar que los errores vuelven a crecer a partir de un valor de h.
Gráficamente, estamos aproximando la pendiente de la recta tangente en x = 1 a la gráfica
de la función g(x) por la pendiente de la recta tangente en x = 1 a la gráfica del polinomio
interpolador de grado dos, P2 (x), de la función g que pasa por los puntos (1 − h, g(1 −
h)), (1, g(1)), (1 + h, g(1 + h)) como podemos ver en la gráfica
Representación gráfica de la Fórmula de las diferencias centradas h=0.5
8
x
g(x)=e
7 tg
P 2 (x)
6
tP

5 Puntos interpolación

-1
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2

(La justificación de esta interpretación se verá en el apartado de Fórmulas de tres puntos.)

A partir de las acotaciones anteriores se puede hallar el valor de h para que el error sea menor
o igual que cierta tolerancia δ establecida, pero el efecto de los errores de redondeo en la
aproximación de los valores f (xi+1 ) y f (xi−1 ) es grande, para ello analizaremos el error con
más detalle e intentaremos establecer un tamaño de paso h que haga mı́nimo el error.
Nos centramos en el análisis del error para la fórmula de diferencias centradas (fórmula de dos
puntos) para una función de clase tres en un intervalo [a, b], donde el error de truncamiento es
de orden dos, E = O(h2 ).
Sea f ∈ C 3 ([a, b]), hemos deducido que la derivada en un punto xi ∈ [a, b] serı́a:

f (xi+1 ) − f (xi−1 ) f 000 (c) 2


f 0 (xi ) = − ·h c ∈ (xi−1 , xi+1 )
| 2h
{z } | 6 {z }
↓ ↓
error de redondeo error de truncamiento

Sea M3 la cota de la derivada tercera de f en [a, b], y supongamos que el error de redondeo
está acotado por , es decir

|f 000 (x)| ≤ M3 ∀ x ∈ [a, b], |f (xi+1 ) − yi+1 | ≤ , |f (xi−1 ) − yi−1 | ≤ 

siendo yi+1 , yi−1 los valores computados para f (xi+1 ), f (xi−1 ) respectivamente, entonces el
error absoluto que se comete al calcular f 0 (xi ) serı́a:

f (xi+1 ) − f (xi−1 ) f 000 (c) 2 h2


 
yi+1 − yi−1 +
− ·h − ≤ + · M3
2h 6 2h | 2h
{z } |6 {z }
↓ ↓
∞ 0
error de redondeo si h → 0 error de truncamiento si h → 0
Métodos Numéricos en Ingenierı́a Mecánica / Ingenierı́a Quı́mica 34

por tanto, vemos que el error de redondeo crece cuando h tiende a cero, mientras que el error
de truncamiento tiende a cero cuando h tiende a cero. ¿Existe un valor de h que minimice el
error? Para ello, buscamos los posibles extremos de la función ef (h):

 h2  h
ef (h) = + · M3 → e0f (h) = − 2 + · M3
h 6 h 3
r
 h 3
C.N. :e0f (h)= 0 → − 2 + · M3 = 0 → h = 3
h 3 M3
r  r
00 2 M3 00 3 3 3
C.S. :ef (h) = 3 + → ef >0→h= 3 mı́nimo de ef (h)
h 3 M3 M3
Ejemplo: Siguiendo con el estudio de aproximar el valor de la derivada de la función g(x) = ex
en x = 1, g 0 (1) = e, utilizando MatLab podemos comprobar que el valor de h que minimiza
el error según la expresión anterior, y teniendo en cuenta que  = 10−15 y |g 000 (x)| ≤ M3 =
e1.5 ∀x ∈ [0.5, 1.5], es
r r
−15
3 3 3 · 10
h= 3
→H= ≈ 8.747685833488152 · 10−6
M3 e1.5
utilizando este valor de h, podemos aproximar el valor de la derivada mediante la fórmula de
diferencias centradas y el error cometido:

0 g(1 + H) − g(1 − H) g(1 + H) − g(1 − H)
g (1) ≈ = 2.718281828483576, − e ≈ 0.000000000024530
2H 2H

Fórmulas de tres puntos Utilizamos ahora los polinomios de interpolación para estudiar el pro-
blema de la diferenciación numérica y obtener fórmulas con tres puntos.
Sea f ∈ C 3 ([a, b]), y sean x0 , x1 , x2 ∈ [a, b], sabemos que el polinomio de interpolación de grado
dos que pasa por esos tres puntos es

(x − x1 )(x − x2 ) (x − x0 )(x − x2 ) (x − x0 )(x − x1 )


P2 (x) = · f (x0 ) + · f (x1 ) + · f (x2 )
(x0 − x1 )(x0 − x2 ) (x1 − x0 )(x1 − x2 ) (x2 − x0 )(x2 − x1 )
siendo
f 000 (cx )
f (x) =P2 (x) + · (x − x0 )(x − x1 )(x − x2 ) cx ∈ (a, b)
3!
Derivando f en la última igualdad obtenemos

f 000 (c)
f 0 (x) =P20 (x) + ((x − x1 )(x − x2 ) + (x − x0 )(x − x2 ) + (x − x0 )(x − x1 )) +
3!
d
+ (f 000 (cx )) · (x − x0 )(x − x1 )(x − x2 )
dx
siendo
(x − x2 ) + (x − x1 ) (x − x2 ) + (x − x0 ) (x − x1 ) + (x − x0 )
P20 (x) = · f (x0 ) + · f (x1 ) + · f (x2 )
(x0 − x1 )(x0 − x2 ) (x1 − x0 )(x1 − x2 ) (x2 − x0 )(x2 − x1 )
Métodos Numéricos en Ingenierı́a Mecánica / Ingenierı́a Quı́mica 35

Sustituyendo x por xj j = 0, 1, 2 obtenemos una aproximación de las derivadas de f en dichos


puntos

Fórmula de tres puntos (cualesquiera)


2xj − x1 − x2 2xj − x0 − x2 2xj − x0 − x1
f 0 (xj ) ≈ · f (x0 ) + · f (x1 ) + · f (x2 )
(x0 − x1 )(x0 − x2 ) (x1 − x0 )(x1 − x2 ) (x2 − x0 )(x2 − x1 )
j = 0, 1, 2 siendo el error cometido
k=2
f 000 (c) Y
E= · (xj − xk )
6 k=0,k6=j

Si |f 000 (x)| ≤ M3 ∀x ∈ [a, b], entonces


k=2
M3 Y
|E| ≤ · |xj − xk |
6 k=0,k6=j

Ejemplo: El agua transcurre por un canal que cruza por tres detectores separados entre sı́ 0.3 m.
Al medir el tiempo necesario para que el agua se desplace del detector (1) al (2) y del (2) al (3)
se obtuvieron 0.0550 s y 0.0554 s, respectivamente. Estima la velocidad del agua cuando cruza
por el detector (2).
Reflejamos los datos en la siguiente tabla
t (s) t0 = 0 t1 = 0.0550 t2 = 0.1104
s(t) (m) 0 0.3 0.6
Se pide la velocidad cuando el agua pasa
 por el segundo detector, es decir en t1 = 0.0550, por
tanto debemos estimar v(0.0550) = ds dt t1 =0.0550
. Utilizando la fórmula anterior

2 t1 − t1 − t2 2 t1 − t0 − t2 2 t1 − t0 − t1
v(0.0550) =s0 (t1 ) ≈ · s(t0 ) + · s(t1 ) + · s(t2 ) =
(t0 − t1 )(t0 − t2 ) (t1 − t0 )(t1 − t2 ) (t2 − t0 )(t2 − t1 )
0.0550 − 0.1104 2 · 0.0550 − 0 − 0.1104
= ·0+ · 0.3+
(0 − 0.0550)(0 − 0.1104) (0.0550 − t0 )(0.0550 − 0.1104)
0.0550 − 0
+ · 0.6 = 5.4349 m/s
(0.1104 − 0)(0.1104 − 0.0550)

Si los puntos son equidistantes con tamaño de paso h > 0, entonces sustituyendo:
(1) x0 = xi , x1 = xi+1 = xi + h, x2 = xi+2 = xi + 2h
−3h −2h −h
f 0 (x0 ) =f 0 (xi ) ≈ · f (xi ) + · f (xi+1 ) + · f (xi+2 ) =⇒
(−h)(−2h) (h)(−h) (2h)(h)
−3 2 1 −3f (xi ) + 4f (xi+1 ) − f (xi+2 )
f 0 (xi ) ≈ · f (xi ) + · f (xi+1 ) − · f (xi+2 ) =
2h h 2h 2h
siendo el error
f 000 (c0 ) 2
E= ·h
3
Métodos Numéricos en Ingenierı́a Mecánica / Ingenierı́a Quı́mica 36

(2) x2 = xi , x1 = xi−1 = xi − h, x0 = xi−2 = xi − 2h


1 2 3 f (xi−2 ) − 4f (xi−1 ) + 3f (xi )
f 0 (x2 ) = f 0 (xi ) ≈ · f (xi−2 ) − · f (xi−1 ) + · f (xi ) =
2h h 2h 2h
siendo el error
f 000 (c2 ) 2
E= ·h
3
Estas dos expresiones calculan la derivada en los extremos del intervalo, ambas expresiones
son análogas.
(3) x0 = xi−1 = xi − h, x1 = xi , x0 = xi+1 = xi + h
−1 1 f (xi+1 ) − f (xi−1 )
f 0 (x1 ) = f 0 (xi ) ≈ · f (xi−1 ) + · f (xi+1 ) =
2h 2h 2h
siendo el error
f 000 (c1 ) 2
E =− ·h coincide con la fórmula de las diferencias centradas
6
Haciendo desarrollos análogos a los descritos se pueden conseguir fórmulas de n + 1 puntos con
errores de orden hn .
Fórmula para la aproximación de la derivada segunda Sea f una función de clase cuatro,
f ∈ C 4 ([a, b]). Consideramos nuevamente los puntos xi−1 = xi − h, xi , xi+1 = xi + h ∈ [a, b],
siendo h > 0 el tamaño de paso, y realizamos el desarrollo de Taylor de f en xi de orden tres
y resto de orden cuatro:

f 00 (xi ) f 000 (xi ) f iv (α)


f (x) =f (xi ) + f 0 (xi ) · (x − xi ) + · (x − xi )2 + · (x − xi )3 + · (x − xi )4
2! 3! 4!
α ∈ (xi , x) o α ∈ (x, xi )

Evaluamos el desarrollo en los puntos xi−1 = xi − h, xi+1 = xi + h


f 00 (xi ) 2 f 000 (xi ) 3 f iv (α1 ) 4
f (xi+1 ) =f (xi + h) = f (xi ) + f 0 (xi ) · h + ·h + ·h + ·h
2! 3! 4!
α1 ∈ (xi , xi+1 )
f 00 (xi ) f 000 (xi ) iv
f (α2 )
f (xi−1 ) =f (xi − h) = f (xi ) + f 0 (xi ) · (−h) + · (−h)2 + · (−h)3 + · (−h)4
2! 3! 4!
α2 ∈ (xi−1 , xi )
Si sumamos ambas expresiones quedarı́a
f iv (α1 ) + f iv (α2 ) 4
f (xi+1 )+f (xi−1 ) = 2·f (xi )+f 00 (xi )·h2 + ·h α1 ∈ (xi , xi+1 ) y α2 ∈ (xi−1 , xi )
4!
Al ser f de clase cuatro en el intervalo, es decir, f iv es continua en [a,b], y despejando f 00 (xi )
obtenemos
f (xi+1 ) − 2f (xi ) + f (xi−1 ) 1 2 · f iv (c) 4
f 00 (xi ) = − · ·h c ∈ (xi−1 , xi+1 )
h2 h2 4!
f (xi+1 ) − 2f (xi ) + f (xi−1 )
Fórmula de la derivada segunda f 00 (xi ) ≈
h2
Métodos Numéricos en Ingenierı́a Mecánica / Ingenierı́a Quı́mica 37

El error de truncamiento cometido será


f iv (c) 2
E=− ·h c ∈ (xi−1 , xi+1 )
12
Por tanto, la cota del error cometido se puede estimar mediante la cota de la derivada cuarta
en el intervalo [a, b]. Obteniendo el siguiente resultado:
Acotación del error de truncamiento
iv
f (c) 2 h2

iv
Sea f de clase cuatro, f (x) ≤ M4 ∀ x ∈ [a, b] ⇒ |E| = − · h ≤ M4
12 12
Ejemplo: Aproximamos la derivada segunda de la función g(x) = ex en x = 1 cuyo valor
exacto es conocido, g 00 (x) = ex → g 00 (1) = e, para evaluar los errores cometidos según los
valores de h. Observamos como al disminuir el tamaño de paso h llega un momento en que los
errores se hacen muy grandes:

−k g(xi+1 )−2g(xi )+g(xi−1 ) g(xi+1 )−2g(xi )+g(xi−1 ) 00
h = 10 − g (1)

h2 h2

10−1 2.720547818529217 0.002265990070172


10−2 2.718304480877620 0.000022652418575
10−3 2.718282054114951 0.000000225655906
10−4 2.718281777447373 0.000000051011672
10−5 2.718278935276431 0.000002893182615
10−6 2.717381875072533 0.000899953386512
10−7 2.708944180085382 0.009337648373663
10−8 -8.88178419700125 11.60006602546029
10−9 -444.089209850063 446.8074916785216
10−10 -44408.9209850063 44411.63926683471

Tabla 4: Aproximación de la derivada segunda de g(x) = ex en x = 1. Cálculo de errores.

Intentaremos establecer un tamaño de paso h que haga mı́nimo el error siguiendo los pasos
realizados realizado en la fórmula de diferencias centradas de la aproximación de la derivada.
Sea f ∈ C 4 ([a, b]), hemos deducido que la derivada segunda en un punto xi ∈ [a, b] serı́a:

f (xi+1 ) − 2f (xi ) + f (xi−1 ) f iv (c) 2


f 00 (xi ) = 2
− ·h c ∈ (xi−1 , xi+1 )
| h
{z } | 12{z }
↓ ↓
error de redondeo error de truncamiento
Métodos Numéricos en Ingenierı́a Mecánica / Ingenierı́a Quı́mica 38

Sea M4 la cota de la derivada cuarta de f en [a, b], y supongamos que el error de redondeo
está acotado por , es decir

iv
f (x) ≤ M4 ∀ x ∈ [a, b], |f (xi+1 ) − yi+1 | ≤ , |f (xi ) − yi | ≤ , |f (xi−1 ) − yi−1 | ≤ 

siendo yi+1 , yi , yi−1 los valores computados para f (xi+1 ), f (xi ), f (xi−1 ) respectivamente, en-
tonces el error absoluto que se comete al calcular f 00 (xi ) serı́a:

f (xi+1 ) − 2f (xi ) + f (xi−1 ) f iv (c) 2 h2


 
y i+1 − 2y i + y i−1 4
− · h − ≤ + · M4
h2 12 h2 h2
|{z} |12 {z }
↓ ↓
∞ 0
si h → 0 si h → 0

error de redondeo error de truncamiento

por tanto, comprobamos de nuevo que el error de redondeo crece cuando h tiende a cero,
mientras que el error de truncamiento tiendo a cero cuando h tiende a cero. Buscamos un valor
de h que minimice el error, es decir, buscamos los posibles extremos de la función e(h):

4 h2 8 h
e(h) = 2
+ · M4 → e0 (h) = − 3 + · M4
h 12 h 6
r
0 8 h 48
C.N. :e (h) = 0 → − 3 + · M4 = 0 → h = 4
h 6 M4
r  r
00 24 M4 00 4 48 48
C.S. :e (h) = 4 + →e >0→h= 4 mı́nimo de e(h)
h 6 M4 M4

Ejemplo: Estudiamos el valor de h que minimiza el error, según la expresión anterior, para
aproximar el valor de la derivada segunda de la función g(x) = ex en x = 1, g 0 (1) = e. Teniendo
en cuenta que  = 10−15 y |g iv (x)| ≤ M4 = e1.1 ∀x ∈ [0.9, 1.1], utilizando MatLab podemos
comprobar que el valor de h es
r r
−15
48 4 48 · 10
h= 4 →H= ≈ 0.000355532516484
M4 e1.1
utilizando este valor de h, podemos aproximar el valor de la derivada segunda y evaluar el error
cometido:
g(1 + H) − 2g(1) + g(1 − H)
g 00 (1) ≈ = 2.718281852921268
H2
g(1 + H) − 2g(1) + g(1 − H)
− e ≈ 0.000000024462222
H2
Métodos Numéricos en Ingenierı́a Mecánica / Ingenierı́a Quı́mica 39

Integración Numérica Z b
En ingenierı́a ocurre muchas veces que o bien no es posible calcular la integral f (x) dx (por
Z a
2
ejemplo e−x dx no se puede expresar en términos de funciones elementales) o bien sólo se dispone
de una tabla de valores de f (por ejemplo cuando f es el resultado de mediciones empı́ricas). Es en
estas situaciones cuando se necesita de métodos numéricos para aproximar el valor de una integral
definida.
Z b
Supongamos que queremos aproximar f (x) dx donde f es una función real de variable real de
a
la que conocemos la siguiente tabla de valores:
x f (x)
x0 f0
x1 f1
.. ..
. .
xn fn
Los valores xi son llamados nodos y fi = f (xi ) para todo i = 0, 1, . . . , n. Empezamos con unas
definiciones previas:

Fórmula de cuadratura

Sea x0 < x1 < x2 < . . . < xn una discretización del intervalo [a, b], y f una función definida
sobre él, se denomina fórmula de integración numérica o de cuadratura a
n
X
Q[f ] = ωk f (xk )
k=0

de forma que Z b
f (x) dx = Q[f ] + E[f ]
a
A E[f ] se le llama error de truncamiento de la fórmula, a {xk / k = 0, . . . , n} se les llama nodos
de integración y a {ωk / k = 0, . . . , n} se les llama pesos de la fórmula.
Si a = x0 y b = xn , hablamos de métodos de integración numérica cerrados. En cambio, si los
extremos del intervalo sobre el que se integra no son nodos para los que se conoce el valor de
la función, se habla de métodos de integración numérica abiertos.
Grado de precisión o exactitud

El grado de precisión o exactitud de una fórmula de cuadratura (o más en general, de una


regla de integración numérica) es M si se verifican las siguientes condiciones:
(1) La fórmula es exacta para todos los polinomios de grado menor o igual que M .
E[Pi ] = 0 i = 0, 1, . . . , M ∀Pi (x) polinomio de grado i
Métodos Numéricos en Ingenierı́a Mecánica / Ingenierı́a Quı́mica 40

(2) Existe un polinomio de grado M + 1 para el cual la fórmula no es exacta.

E[PM +1 ] 6= 0 para algún polinomio PM +1 (x) de grado M + 1

Rb
Una posible estrategia para encontrar fórmulas de cuadratura es calcular a Pn (x) dx donde
Pn (x) es el polinomio interpolador (de Lagrange) de grado menor o igual que n de f en los
nodos x0 , x1 , . . . , xn . Ambas integrales se parecerán en función de lo que se parezcan función y
polinomio interpolador.
Una estrategia más fina puede ser aproximar la función por distintos polinomios interpoladores
y sumar las integrales de dichos polinomios. Por ejemplo, podrı́amos considerar la aproximación

Z x4 Z x1 Z x3 Z x4
f (x) dx ≈ P1x0 ,x1 (x) dx + P2x1 ,x2 ,x3 (x) dx + P1x3 ,x4 (x) dx,
x0 x0 x1 x3

donde Pkx0 ,x1 ,...,xk (x)


denota el polinomio interpolador de Lagrange de f de grado menor o igual
que k con nodos x0 , x1 , . . . , xk . En este ejemplo hemos combinado dos interpolaciones lineales
y una cuadrática.
Las fórmulas cerradas de Newton-Côtes de integración numérica se obtienen de esta manera
cuando se trata de nodos equiespaciados x0 , x1 = x0 + h, . . . , xn = x0 + nh y se usan polinomios
interpoladores de Lagrange del mismo grado. La distancia h entre dos nodos consecutivos se
llama tamaño de paso. Si sólo se usa un polinomio, la fórmula se dice simple. En caso contrario,
compuesta.

Fórmulas cerradas de cuadratura de Newton-Côtes

Fórmulas de Newton-Côtes simples Se interpola mediante un único polinomio de grado n.

Regla del trapecio con tamaño de paso h = x1 − x0 = b − a

interpolación mediante un segmento

x f (x)
x0 = a f0
x0 + h = x1 = b f1
Sea P1 (x) el polinomio interpolador de Lagrange de grado n ≤ 1 de f en los nodos x0 , x1 :
Z b Z x1 Z x1
h
f (x) dx = f (x) dx ≈ P1 (x) dx = (f0 + f1 )
a x0 x0 2

h3
f de clase dos, |f 00 (x)| ≤ M2 ∀ x ∈ [x0 , x1 ] ⇒ |E[f ]| ≤ M2
12
Métodos Numéricos en Ingenierı́a Mecánica / Ingenierı́a Quı́mica 41

Demostración
x1 x1 x1  
x − x1 x − x0
Z Z Z
f (x) dx ≈ P1 (x) dx = f0 + f1 dx =
x0 x0 x0 x0 − x1 x1 − x0
 
 x = x0 + t(x1 − x0 ) = x0 + h · t dx = h dt 
Hacemos el cambio de variable (∗) x = x0 → t = 0 x = x1 → t = 1
x − x0 = h · t x − x1 = h(t − 1)
 

1 1 1
(1 − t)2 t2
  
h(t − 1) h·t
Z Z
= f0 + f1 h·dt = h ((1 − t)f0 + t · f1 ) dt = h − f0 + f1 =
0 −h h 0 2 2 0
 
1 1 h
=h f0 + f1 = (f0 + f1 )
2 2 2
Si f de clase dos, |f 00 (x)| ≤ M2 ∀ x ∈ [x0 , x1 ]
Z x1 Z x1 Z x1
Z x1


|E[f ]| =
f (x) dx − P1 (x) dx = (f (x) − P1 (x)) dx = E1 (x) dx =
x0 x0 x0 x0

x1 1 prop.integral M2 h3 1
f 00 (αx ) (∗) 00
Z Z Z
2 f (α t )
= (x − x0 )(x − x1 ) dx = h · t(t − 1) h · dt
≤ |t(t − 1)| dt =
x0 2! 0 2! 2 0
1
M2 h3 1 M2 h3 t2 t3 M2 h3 1 1 h3
Z   
= t(1 − t) dt = − = − = M2
2 0 2 2 3 0 2 2 3 12
Ejemplo
Z 1  
2 2   x i1 1
f (x) = 2 , I= dx = arc tg = arc tg ≈ 0.4636476090
x +4 0 x2 + 4 2 0 2

x 0 1
h = 1,
f (x) 1/2 2/5
 
h 1 1 1 2
I ≈ (f0 + f1 ) = (f (0) + f (1)) = + = 0.45
2 2 2 2 5
Métodos Numéricos en Ingenierı́a Mecánica / Ingenierı́a Quı́mica 42

x2 − x0 b−a
Regla de Simpson con tamaño de paso h = =
2 2
interpolación mediante un arco de parábola

x f (x)
x0 = a f0
x0 + h = x1 = a+b
2
f1
x0 + 2h = x2 = b f2
Sea P2 (x) el polinomio interpolador de Lagrange de grado n ≤ 2 de f en los nodos equiespa-
ciados x0 , x1 , x2 :
Z b Z x2 Z x2
h
f (x) dx = f (x) dx ≈ P2 (x) dx = (f0 + 4f1 + f2 )
a x0 x0 3
h5
f de clase cuatro, f (iv) (x) ≤ M4 ∀ x ∈ [x0 , x2 ] ⇒ |E[f ]| ≤ M4
90
Demostración
Z x2 x2  
(x − x1 )(x − x2 ) (x − x0 )(x − x2 ) (x − x0 )(x − x1 )
Z
P2 (x) dx = f0 + f1 + f2 dx =
x0 x0 (x0 − x1 )(x0 − x2 ) (x1 − x0 )(x1 − x2 ) (x2 − x0 )(x2 − x1 )
 

 x = x 0 + t(x 1 − x 0 ) = x 0 + h · t dx = h dt 

x = x0 → t = 0 x = x2 → t = 2
 
Cambio de variable (∗∗)

 x − x0 = h · t x − x1 = h(t − 1) 

x − x2 = h(t − 2) x1 − x0 = h, x2 − x0 = 2h
 

2  
h(t − 1)h(t − 2) ht · h(t − 2) ht · h(t − 1)
Z
= f0 + f1 + f2 h · dt =
0 (−h)(−2h) h(−h) 2h · h
Z 2  
f0 f2
=h (t − 1)(t − 2) − t(t − 2) · f1 + t(t − 1) dt =
0 2 2
 3  2
t2
 3  3
t2 f2
 
t f0 t 2 t
=h − 3 + 2t − − t · f1 + − =
3 2 2 3 3 2 2 0
   
2 f0 4 2 f2 h
=h · − − · f1 + · = (f0 + 4f1 + f2 )
3 2 3 3 2 3

f de clase cuatro, f (iv) (x) ≤ M4 ∀ x ∈ [x0 , x2 ]
Z x2 Z x2 Z x2
h
E[f ] = f (x) dx − P2 (x) dx = f (x) dx − (f0 + 4f1 + f2 )
x0 x0 x0 3

Definimos la función ψ : [0, h] → R, r ∈ [0, h]


Z x1 +r
r
ψ(r) = f (x) dx − (f (x1 − r) + 4f (x1 ) + f (x1 + r))
x1 −r 3
Métodos Numéricos en Ingenierı́a Mecánica / Ingenierı́a Quı́mica 43

Derivamos, aplicando el 1er Tma. del cálculo integral, y utilizando el Tma. del valor medio
de Lagrange (1), y después integramos utilizando el Tma. del valor medio de la integral (2)
1 r
ψ 0 (r) = f (x1 +r)+f (x1 −r)− (f (x1 − r) + 4f (x1 ) + f (x1 + r))− (−f 0 (x1 − r) + f 0 (x1 + r)) =
3 3
2 4 r
= (f (x1 − r) + f (x1 + r)) − f (x1 ) − (−f 0 (x1 − r) + f 0 (x1 + r))
3 3 3
2 1 r
ψ 00 (r) = (−f 0 (x1 − r) + f 0 (x1 + r))− (−f 0 (x1 − r) + f 0 (x1 + r))− (f 00 (x1 − r) + f 00 (x1 + r)) =
3 3 3
1 0 r
= (f (x1 + r) − f 0 (x1 − r)) − (f 00 (x1 − r) + f 00 (x1 + r))
3 3
1 1 r
ψ 000 (r) = (f 00 (x1 + r) + f 00 (x1 − r))− (f 00 (x1 − r) + f 00 (x1 + r))− (−f 000 (x1 − r) + f 000 (x1 + r)) =
3 3 3
r (1) r 2
= − (f 000 (x1 + r) − f 000 (x1 − r)) = − · f (iv) (αr ) · 2r = − r2 f (iv) (αr )
3 3 3
Z r Z r  3 r
2 (2) 2 2 s 2
ψ 00 (r) = − s2 f (iv) (αs ) ds = − f (iv) (µr ) s2 ds = − f (iv) (µr ) = − r3 f (iv) (µr )
0 3 3 0 3 3 0 9
Z r Z r  4 r
2 (2) 2 2 s 2
ψ 0 (r) = − s3 f (iv) (µs ) ds = − f (iv) (νr ) s3 ds = − f (iv) (νr ) = − r4 f (iv) (νr )
0 9 9 0 9 4 0 36
Z r Z r  5 r
1 (2) 1 1 s 1
ψ(r) = − s4 f (iv) (νs ) ds = − f (iv) (r ) s4 ds = − f (iv) (r ) = − r5 f (iv) (r )
0 18 18 0 18 5 0 90
Z x2 Z x2
1 M4 5
ψ(h) = − h5 f (iv) (α) =⇒ |E[f ]| = f (x) dx − P2 (x) dx ≤ h
90 x0 x0 90
Proposición El grado de precisión de la regla de Simpson es 3.
Demostración
q(x) = a0 x3 + a1 x2 + a2 x + a3 es un polinomio de grado 3, sabemos que q 000 (x) = 6a0 , por
tanto, Z b Z b
q(x) dx = P3 (x) dx
a a
Z b Z b Z b Z b

(x − x0 )(x − x1 )(x − x2 ) 000
E[q(x)] =
q(x) dx − P2 (x) dx =
E2 (x) dx = q (α) dx =
a a a a 3!
Z b
(x − x0 )(x − x1 )(x − x2 ) (1)
= · 6a0 dx = 0
a 6
Z b
x = a + b−a t dx = b−a dt
(1) (x − a)(x − (a + b)/2)(x − b) · a0 dx = 2 2 =
a x=a→t=0 x=b→t=2
Z 2     4 Z 2
b−a b−a b−a b−a b−a
= a0 t (t − 1) (t − 2) dt = a0 t(t−1)(t−2) dt =
0 2 2 2 2 2 0
 4 Z 2  4  4 2  4  4 
b−a 3 2 b−a t 3 2 b−a 2 3 2
= a0 (t −3t +2t) dt = a0 −t +t = a0 −2 +2 =0
2 0 2 4 0 2 4
Métodos Numéricos en Ingenierı́a Mecánica / Ingenierı́a Quı́mica 44

Ejemplo
Z 1  
2 2   x i1 1
f (x) = 2 , I= dx = arc tg = arc tg ≈ 0.4636476090
x +4 0 x2 + 4 2 0 2

x 0 1/2 1
h = 1/2,
f (x) 1/2 8/17 2/5
 
h 1 1 1 8 2
I ≈ (f0 + 4f1 + f2 ) = (f (0) + 4f (1/2) + f (1)) = +4· + = 0.4637254901
3 6 6 2 17 5
Métodos Numéricos en Ingenierı́a Mecánica / Ingenierı́a Quı́mica 45

3 x3 − x0 b−a
Regla 8
de Simpson con tamaño de paso h = =
3 3
interpolación mediante un arco de cúbica

x f (x)
x0 = a f0
x0 + h = x1 f1
x0 + 2h = x2 f2
x0 + 3h = x3 = b f3
Sea P3 (x) el polinomio interpolador de Lagrange de grado n ≤ 3 de f en los nodos equiespa-
ciados x0 , x1 , x2 , x3 :
Z b Z x3 Z x3
3
f (x) dx = f (x) dx ≈ P3 (x) dx= h(f0 + 3f1 + 3f2 + f3 )
a x0 x0 8
(iv) 3h5
f de clase cuatro, f (x) ≤ M4 ∀ x ∈ [x0 , x3 ] ⇒ |E[f ]| ≤
M4
80
Ejemplo
Z 1  
2 2   x i1 1
f (x) = 2 , I= dx = arc tg = arc tg ≈ 0.4636476090
x +4 0 x2 + 4 2 0 2

x 0 1/3 2/3 1
h = 1/3,
f (x) 1/2 18/37 9/20 2/5

3h 1
I≈ (f0 + 3f1 + 3f2 + f3 ) = (f (0) + 3f (1/3) + 3f (2/3) + f (1)) =
8 8
 
1 1 18 9 2
= +3· +3· + = 0.4636824324
8 2 37 20 5
Métodos Numéricos en Ingenierı́a Mecánica / Ingenierı́a Quı́mica 46

Fórmulas de Newton-Côtes compuestas Se interpola mediante varios polinomios del mismo


grado:
xn − x0
Regla compuesta de los trapecios con tamaño de paso h =
n
interpolación mediante n segmentos

x f (x)
x0 = a f0
x0 + h = x1 f1
.. ..
. .
x0 + nh = xn = b fn
x ,x
Sea P1 i i+1 (x) el polinomio interpolador de Lagrange de grado ≤ 1 de f en los nodos xi , xi+1 ,
i = 0, . . . , n − 1.
Z xn Z x1 Z xn
x ,xn
f (x) dx ≈ Px10 ,x1 (x) dx + · · · + P1n−1 (x) dx =
x0 x0 xn−1
h
= (f0 + 2f1 + 2f2 + · · · + 2fn−1 + fn )
2

nh3 (b − a)h2
f de clase dos, |f 00 (x)| ≤ M2 ∀ x ∈ [x0 , xn ] ⇒ |E[f ]| ≤ M2 = M2
12 12
Ejemplo Regla compuesta del trapecio para aproximar
Z 2√ √
2−0 1
I= 1 + x5 dx con cuatro segmentos → h = = , f (x) = 1 + x5
0 4 2
Z 2√
x 0 √ 1/2 √1 √3/2 √2
I= 1 + x5 dx = 4.2218 (aprox.Derive)
0 f (x) 1 66/64 2 5 22/8 33

h 1
I≈ (f0 + 2f1 + 2f2 + 2f3 + f4 ) = (f (0) + 2f (1/4) + 2f (1/2) + 2f (3/4) + f (1)) =
2 4
√ √ !
1 66 √ 5 22 √
= 1+2· +2· 2+2· + 33 = 4.3668
4 64 8
Métodos Numéricos en Ingenierı́a Mecánica / Ingenierı́a Quı́mica 47

x2n − x0
Regla compuesta de Simpson con tamaño de paso h =
2n
interpolación mediante n arcos de parábola, número impar de nodos

x f (x)
x0 = a f0
x0 + h = x1 f1
.. ..
. .
x0 + 2nh = x2n = b f2n
x ,xi+1 ,xi+2
Para cada i = 0, 2, 4, . . . , 2n − 2 sea P2 i (x) el polinomio interpolador de Lagrange de
grado ≤ 2 de f en los nodos xi , xi+1 , xi+2
Z x2n Z x2 Z x2 n
x ,x2n−1 ,x2n
f (x) dx ≈ P2x0 ,x1 ,x2 (x) dx + · · · + P2 2n−2 (x) dx =
x0 x0 x2n−2
h
= (f0 + 4f1 + 2f2 + 4f3 + 2f4 + 4f5 + 2f6 + · · · + 2f2n−2 + 4f2n−1 + f2n )
3
nh5
f de clase cuatro, f iv (x) ≤ M4 ∀ x ∈ [x0 , x2n ] ⇒ |E[f ]| ≤ M4
90

Ejemplo Regla compuesta de Simpson para aproximar


Z 2√
2−0 1
I= 1 + x5 dx con dos arcos de parábola → h = =
0 2·2 2
√ Z 2 √
f (x) = 1 + x5 , I = 1 + x5 dx = 4.2218 (aprox.Derive)
0
x 0 √ 1/2 √1 √3/2 √2
f (x) 1 66/64 2 5 22/8 33

h 1
I≈ (f0 + 4f1 + 2f2 + 4f3 + f4 ) = (f (0) + 4f (1/4) + 2f (1/2) + 4f (3/4) + f (1)) =
3 6
√ √ !
1 66 √ 5 22 √
= 1+4· +2· 2+4· + 33 = 4.2268
6 64 8
Métodos Numéricos en Ingenierı́a Mecánica / Ingenierı́a Quı́mica 48

Otra estrategia para obtener fórmulas de cuadratura es encontrar nodos y pesos de forma que
el grado de precisión o exactitud de la fórmula sea el mayor posible, dando lugar a las fórmulas de
Gauss-Legendre.

Fórmulas de cuadratura de Gauss-Legendre

Nuestro objetivo es, por tanto, encontrar, para cada N ∈ IN, los nodos xi y los pesos ωi , i = 1, . . . , N ,
que hacen máximo el grado de precisión de la fórmula de integración numérica
N
X
Q[f ] = ωi f (xi ).
i=1

Se descubre lo siguiente :
(1) El grado de precisión máximo es 2N − 1.
(2) Unicidad de los xi y los ωi , i = 1, . . . , N .
(3) Todos los pesos ωi son mayores que cero.
(4) Los nodos xi , i = 1, . . . , N son distintos entre sı́ y pertenecen al intervalo (a, b).
Proposición: existencia y unicidad de nodos y pesos para N = 2

Existen únicos ω1 , ω2 , x1 , x2 ∈ R tales que


Z 1
f (x) dx = ω1 f (x1 ) + ω2 f (x2 )
−1

para cualquier polinomio f (x) = a + bx + cx2 + dx3 de grado menor o igual que tres. Además
dicha fórmula no es exacta para algún polinomio de grado cuatro.
Demostración

Z 1
(1) 2 = 1 = ω1 + ω2 =⇒ [A] 2 = ω1 + ω2 .
−1
Z 1
(2) 0 = x = ω1 x1 + ω2 x2 =⇒ [B] ω1 x1 = −ω2 x2 .
−1
Z 1
2
(3) = x2 = ω1 x21 + ω2 x22 =⇒ [C] 2
3
= ω1 x21 + ω2 x22 .
3 −1
Z 1
(4) 0 = x3 = ω1 x31 + ω2 x32 =⇒ [D] ω1 x31 = −ω2 x32 .
−1

x1 6=x2
Dividiendo [D] entre [B] se obtiene x21 = x22 =⇒ x2 = −x1
[A]
Por [C] 2/3 = ω1 x21 + ω2 x22 = x21 (ω1 + ω2 ) =⇒ 1/3 = x21 =⇒ x1 = √1 , x2 = − √13
3
[A]
Por [D] ω1 = ω2 =⇒ ω1 = ω2 = 1. En consecuencia, los valores han de ser
Z 1    
1 1 1 1
ω1 = ω2 = 1, x1 = + √ , x2 = − √ → f (x) dx = f √ + f −√
3 3 −1 3 3
Métodos Numéricos en Ingenierı́a Mecánica / Ingenierı́a Quı́mica 49

El grado de exactitud es 2N − 1 = 2 · 2 − 1 = 3, ya que si f (x) = a + bx + cx2 + dx3 , entonces


por linealidad
Z 1 Z 1 Z 1 Z 1 Z 1
2
f = a 1+b x+c x +d x3
−1 −1 −1 −1 −1
= a(ω1 + ω2 ) + b(ω1 x1 + ω2 x2 ) + c(ω1 x21 + ω2 x22 ) + d(ω1 x31 + ω2 x32 )
= ω1 [a + bx1 + cx21 + dx31 ] + ω2 [a + bx2 + cx22 + dx32 ] = ω1 f (x1 ) + ω2 f (x2 ).

Por último, la fórmula no es exacta para un polinomio de grado 4. En efecto, si


Z 1
2 2
q(x) = (x − x1 ) (x − x2 ) =⇒ q(x) dx > 0, pero ω1 q(x1 ) + ω2 q(x2 ) = ω1 · 0 + ω2 · 0 = 0.
−1

Tabla de nodos y pesos para la fórmula de Gauss-Legendre en el intervalo [−1, 1]


Z 1 N
X
f (x) dx = ωN,k f (xN,k ) + EN (f )
−1 k=1

con los siguientes valores para nodos y pesos, y estimación del error:
N Nodos xN,k Pesos ωN,k Error EN (f )
f (iv (c)
2 ± √13 = ±0.5773502692 1 135
q
5
± 35 = ±0.7745966692 9
= 0.5555555556 f (vi (c)
3 8 15750
0 9
= 0.8888888888
q √
± 15+35 120 = ±0.8611363116 0.3478548451 f (viii (c)
4 q √
3472875
± 15−35 120 = ±0.3399810436 0.6521451549
±0.9061798459 0.2369268851
f (x (c)
5 ±0.5384693101 0.4786286705 1237732650
0 0.5688888888
±0.9324695124 0.1713244924
f (xii (c)213 (6!)4
6 ±0.6612093865 0.3607615730 (12!)3 13!
±0.2386191861 0.4679139346
±0.9491079123 0.1294849662
±0.7415311856 0.2797053915 f (xiv (c)215 (7!)4
7 (14!)3 15!
±0.4058451514 0.3818300505
0 0.4179591837
±0.9602898565 0.1012285363
±0.7966664774 0.2223810345 f (xvi (c)217 (8!)4
8 (16!)3 17!
±0.5255324099 0.3137066459
±0.1834346425 0.3626837834

En esta tabla la última columna contiene una estimación del error. El valor c ∈ (−1, 1) depende
en cada caso de f y de N . De acuerdo con estas fórmulas del error la fórmula de Gauss-Legendre
con N nodos es exacta cuando el integrando es un polinomio de grado menor o igual que 2N −1
que es su grado de precisión o exactitud.
Métodos Numéricos en Ingenierı́a Mecánica / Ingenierı́a Quı́mica 50

Fórmula de Gauss-Legendre para intervalos arbitarios

Se obtiene la igualdad
b 1  
b−a a+b b−a
Z Z
f (t) dt = f + x dx
a 2 −1 2 2
mediante el cambio de variable
a+b b−a b−a
t= + x, dt = dx, t = a ↔ x = −1, t = b ↔ x = 1.
2 2 2
En consecuencia, la fórmula de Gauss-Legendre con N nodos para un intervalo arbitrario [a, b]
es
Z b N  
b−aX a+b b−a
f (t) dt ≈ ωN,i f + xN,i
a 2 i=1 2 2

Fórmula de cuadratura de Gauss con 3 nodos:


Z 1 r ! r !
5 3 8 5 3
f (x) dx ≈ G3 (f ) = f − + f (0) + f
−1 9 5 9 9 5
Z 1 “ √ ” r ! √3 r
5 − − 3 3 8 5 3
e−x sen2 x dx = e 5
sen2 − + e−0 sen2 0 + e− 5 sen2 ≈ 0.7149394252
−1 9 5 9 9 5

Aproximación con Derive de la integral 0.7117647452

Fórmula de cuadratura de Gauss con 2 nodos:


Z 1 r ! r !
1 1
f (x) dx ≈ G2 (f ) = f − +f
−1 3 3

x+1 2
1 1
1 −( )
Z Z
−t2 x = 2t − 1 dx = 2dt 2
e 2 dt = = e 2 dx ≈ G2
0 t = 0 → x = −1 t = 1 → x = 1
−1 2

√ !2 √ !2
− 1/3+1 1/3+1
− −
1 1 2 2

G2 = e 2 + e 2 ≈ 0.8553145616
2 2
Aproximación con Derive de la integral 0.8556243918

Das könnte Ihnen auch gefallen