Cap´ıtulo IV Integración Numérica

Anuncio
Capı́tulo IV
Integración Numérica
IV.1.
Cuadraturas: Reglas Simples
La fórmulas de cuadratura o reglas simples se obtienen por medio de interpolación polinomial: la función a integrar se “muestrea”, es decir, se toman puntos
de la función
(x0 , y0 ), (x1 , y1 ), . . . , (xn , yn )
donde yk = f (xk ) para k = 0, . . . , n, se determina el polinomio interpolante pn (x)
de grado a lo más n para esos puntos, y finalmente se integra. Intuitivamente,
si
Rb
pn (x) es una buena aproximación de f (x), entonces su integral a pn (x)dx debe
Rb
ser una buena aproximación de a f (x)dx.
Regla del Trapecio
Para comenzar, sólo dos puntos (a, f (a)) y (b, f (b)) e interpolación lineal resulta en
Z b
b−a
· (f (a) + f (b))
f (x)dx ≈
2
a
Esta es la regla del trapecio: aproxima la integral por medio del área bajo el
trapecio determinado por la interpolación lineal.
Caso General
Para el caso general, es conveniente usar el método de interpolación de Lagrange. Para los puntos (x0 , y0 ), . . . , (xn , yn ), con yk = f (xk ) el polinomio de
interpolación está dado por
pn (x) =
n
X
yk · Ln,k (x)
k=0
donde
Q
j6=k (x − xj )
Ln,k (x) = Q
j6=k (xk − xj )
IV.1
IV.2
CAPÍTULO IV. INTEGRACIÓN NUMÉRICA
De esta representación, integrando, obtenemos
Z b
Z b
f (x)dx ≈
pn (x)dx
a
a
n
X
b
Z
=
!
yk · Ln,k (x) dx
a
=
=
k=1
Z
n
b
X
k=0
n
X
Ln,k (x)dx yk
a
wk yk
k=0
donde
b
Z
Ln,k (x)dx.
wk =
a
Note que estos pesos wk dependen sólo de los nodos, no de la función. La suma
Q[f ] =
n
X
w k fk
k=0
se llama una fórmula de cuadratura.
Regla de Simpson
Consideremos el caso de interpolación cuadrática. Se tienen tres nodos x0 = a,
x1 = (a + b)/2 y x2 = b. Por conveniencia, sea h = (b − a)/2, de tal forma que
xk = a + kh, k = 0, 1, 2.
Entonces los tres pesos w0 , w1 , w2 están dados por
Z
x2
w0 =
x0
Z
x2
w1 =
x0
Z
x2
w2 =
x0
(x − x1 )(x − x2 )
dx =
(x0 − x1 )(x0 − x2 )
Z
(x − x0 )(x − x2 )
dx =
(x1 − x0 )(x1 − x2 )
Z
(x − x0 )(x − x1 )
dx =
(x2 − x0 )(x2 − x1 )
Z
2h
0
2h
0
0
2h
(x − h)(x − 2h)
dx
(−h)(−2h)
2h
1
1 x3 x2
− 3h + 2h2 x
= h
= 2
2h
3
2
3
0
3
2h
1 x
4
x(x − 2h)
dx = − 2
− x2 h
= h
(h)(−h)
h
3
3
0
3
2h
2
x(x − h)
1 x
x
1
dx = 2
− h
= h
(2h)(h)
2h
3
2 0
3
(las segundas integrales se han obtenido por medio de una translación). Una
forma alternativa de obtenerlos wk , que resulta más fácil de sistematizar para
obtener reglas de más alto orden, es la siguiente. Primero, como la translación
de la integral arriba lo demuestra, podemos asumir que el intervalo de interés
es [a, b] = [0, 2h] y xk = kh, k = 0, 1, 2. Como estamos usando interpolación
IV.1. CUADRATURAS: REGLAS SIMPLES
IV.3
cuadrática, la interpolación y por lo tanto la integral obtenida con la fórmula de
cuadratura deben ser exactas. Ası́ que para f (x) = xk , k = 0, 1, 2 se debe tener
que, para j = 0, 1, 2,
2
X
wk xjk
2h
Z
=
0
k=0
xj+1
x dx =
j+1
j
2h
=
0
(2h)j+1
j+1
Estas tres ecuaciones explı́citamente son
w0 +w1
+w2
= 2h
+w1 h +w2 (2h) = 2h2
+w1 h2 +w2 (2h)2 = 83 h3
y cancelando h’s
w0 +w1 +w2 = 2h
+w1 +2w2 = 2h
+w1 +4w2 = 83 h
La solución es w0 = h/3, w1 = 4h/3 y w2 = h/3, igual a lo obtenido por medio
de las integrales anteriormente. La cuadratura que se obtiene se llama la regla de
Simpson:
Z x2
h
f (x)dx ≈ (f0 + 4f1 + f2 )
3
x0
Solución General
Generalizando, con xk = kh, k = 0, 1, . . . , n, obtenemos, para j = 0, 1, . . . , n,
j+1 nh
Z nh
n
X
x
(nh)j+1
j
j
x dx =
w k xk =
=
j+1 0
j+1
0
k=0
y de aquı́,
n
X
wk (kh)j =
k=0
(nh)j+1
.
j+1
j
Cancelando h y con wk = wk /h, se obtiene el sitema de ecuaciones
n
X
wk kj =
k=0
que en forma expandida es

1 1 1
 0 1 2

 0 1 4

 .. .. ..
 . . .
0 1 2n
nj+1
,
j+1
···
···
···
...
1
n
n2
..
.
· · · nn
para j = 0, 1, . . . , n,







w0
w1
w2
..
.
wn


 
 
 
=
 
 
n
n2
2
n3
3
..
.
nn+1
n+1







IV.4
CAPÍTULO IV. INTEGRACIÓN NUMÉRICA
Note que la matriz de coeficientes es una matriz de Vandermonde. Podemos usar
Matlab para solucionar estos sistemas de ecuaciones. Con la siguiente función
function cuadratura(N)
for n=1:N
nn=(n+1):-1:1;
b=((n.^nn)./nn)’;
V= (vander(0:1:n))’;
c= (V\b)’
end
obtenemos
>> cuadratura(6)
c =
1/2
c =
1/3
c =
3/8
c =
14/45
c =
95/288
c =
41/140
1/2
4/3
1/3
9/8
9/8
3/8
64/45
8/15
64/45
14/45
125/96
125/144
125/144
125/96
54/35
27/140
68/35
27/140
95/288
54/35
Las dos primeras soluciones son las reglas del trapecio y de Simpson. Las dos
siguientes se llaman reglas de Simpson de 3/8 y de Boole:
Regla de Simpson-3/8
Z
x3
f (x)dx =
x0
3h
(f0 + 3f1 + 3f2 + f3 )
8
Regla de Boole
Z
x4
f (x)dx =
x0
2h
(7f0 + 32f1 + 12f2 + 32f3 + 7f4 )
45
Ejemplo.
R5
. Las
En este ejemplo deseamos aproximar ln 5 por medio de la integral 1 dx
x
gráficas muestran las interpolaciones de grados 1 a 4. Los resultados obtenidos
con Matlab muestran para cada valor de n, el valor de h y de la cuadratura, y una
tabla con los valores del ı́ndice k y xk , yk wk y wk yk . El valor de la cuadratura es,
para cada n, la suma de la última columna (valores wk yk ) multiplicada por h.
41/14
IV.1. CUADRATURAS: REGLAS SIMPLES
IV.5
Figura IV.1: Integración con las reglas del trapecio, Simpson, Simpson 3/8 y Boole.
>> cuadraturaf(8)
n =
1
h =
4
cuad =
12/5
[k x y w w*y] =
0
1
1
5
1
1/5
1/2
1/2
1/2
1/10
n =
2
h =
2
cuad =
76/45
[k x y w w*y] =
0
1
1
3
2
5
1
1/3
1/5
1/3
4/3
1/3
1/3
4/9
1/15
n =
3
h =
4/3
cuad =
636/385
[k x y w w*y] =
0
1
1
7/3
2
11/3
3
5
1
3/7
3/11
1/5
3/8
9/8
9/8
3/8
3/8
27/56
27/88
3/40
n =
4
h =
1
cuad =
364/225
[k x y w w*y] =
IV.6
CAPÍTULO IV. INTEGRACIÓN NUMÉRICA
0
1
2
3
4
1
2
3
4
5
1
1/2
1/3
1/4
1/5
14/45
64/45
8/15
64/45
14/45
14/45
32/45
8/45
16/45
14/225
n =
5
h =
4/5
cuad =
2083/1290
[k x y w w*y] =
0
1
1
9/5
2
13/5
3
17/5
4
21/5
5
5
1
5/9
5/13
5/17
5/21
1/5
95/288
125/96
125/144
125/144
125/96
95/288
95/288
625/864
625/1872
625/2448
625/2016
19/288
n =
6
h =
2/3
cuad =
662/411
[k x y w w*y] =
0
1
1
5/3
2
7/3
3
3
4
11/3
5
13/3
6
5
1
3/5
3/7
1/3
3/11
3/13
1/5
41/140
54/35
27/140
68/35
27/140
54/35
41/140
41/140
162/175
81/980
68/105
81/1540
162/455
41/700
n =
7
h =
4/7
cuad =
2752/1709
[k x y w w*y] =
0
1
1
11/7
2
15/7
3
19/7
4
23/7
5
27/7
6
31/7
7
5
1
7/11
7/15
7/19
7/23
7/27
7/31
1/5
1073/3527
810/559
343/640
649/536
649/536
343/640
810/559
1073/3527
1073/3527
509/552
600/2399
1113/2495
646/1753
467/3361
551/1684
193/3172
n =
8
h =
1/2
cuad =
433/269
[k x y w w*y] =
0
1
1
3/2
2
2
3
5/2
4
3
5
7/2
6
4
7
9/2
8
5
1
2/3
1/2
2/5
1/3
2/7
1/4
2/9
1/5
499/1788
1183/712
-353/1348
388/131
-1317/1028
388/131
-353/1348
1183/712
499/1788
499/1788
1183/1068
-353/2696
776/655
-439/1028
765/904
-353/5392
1183/3204
297/5321
Finalmente, la tabla siguiente muestra las cuadraturas y el error resultantes para
n = 1, 2, . . . , 12.
IV.2. ERROR DE LAS REGLAS SIMPLES
n
cuadratura
error
1
2
3
4
5
6
7
8
9
10
11
12
2.400000000000000
1.688888888888889
1.651948051948052
1.617777777777775
1.614728626493345
1.610704216419929
1.610298283118095
1.609665126452762
1.609598154738391
1.609482778174419
1.609467583016121
1.609424211461854
0.790562087565900
0.079450976454788
0.042510139513952
0.008339865343675
0.005290714059245
0.001266303985829
0.000860370683995
0.000227214018661
0.000160242304291
0.000044865740318
0.000029670582020
0.000013700972246
IV.2.
IV.7
Error de las Reglas Simples
Dada una cuadratura
Q[f ] =
M
X
wk f (xk ),
k=0
el error de truncamiento es
b
Z
f (x)dx − Q[f ]
E[f ] =
a
IV.2.1.
Grado de Precisión
El grado de precisión de una fórmula de cuadratura es el entero positivo n tal
que E[p] = 0 para todo polinomio p(x) de grado ≤ n pero E[pn+1 ] 6= 0 para algún
polinomio pn+1 (x) de grado n + 1. Veamos el grado de precisión de las reglas
simples antes derivadas. En cada caso, obviamente, el grado de precisión es al
menos el grado de la interpolación para el cual se derivó la regla.
Trapecio
Por una parte
Z
h
x2 dx =
0
h3
.
3
Por otra parte
QT [x2 ] =
h
h3
(0 + h2 ) =
2
2
Puesto que estos dos resultados son diferentes, el grado de precisión de la regla
del trapecio es 1.
IV.8
CAPÍTULO IV. INTEGRACIÓN NUMÉRICA
Simpson
Tenemos que
R 2h 3
x dx =
R02h 4
x dx =
0
(2h)4
4
(2h)5
5
QS [x3 ] = h3 (0 + 4h3 + (2h)3 ) = 4h4
QS [x4 ] = h3 (0 + 4h4 + (2h)4 ) = 20
h5
3
= 4h4
= 32
h5
5
Ası́ que el grado de la regla de Simpson es 3. Note que esto es uno más de lo que
podı́amos esperar dado que se obtuvo con interpolación cuadrática.
Simpson 3/8
Tenemos que
R 3h
0
(3h)5
5
x4 dx =
=
243 5
h;
5
QS3/8 [x4 ] =
3h
(0
8
+ 3h4 + 3(2h)4 + (3h)4 ) =
99 5
h
2
Ası́ que el grado de la regla de Simpson 3/8 es 3.
Boole
Tenemos que
R 4h
0
R 4h
0
x5 dx =
(4h)6
6
x6 dx =
(4h)7
7
2048 6
h;
3
QB [x5 ] =
=
16384 7
6
= 7 h ; QB [x ] =
=
=
2h
(7(0)
45
2048 6
h
3
2h
(7(0)
45
7040 7
h
3
+ 32h5 + 12(2h)5 + 32(3h)5 + 7(4h)5 )
+ 32h6 + 12(2h)6 + 32(3h)6 + 7(4h)6 )
Ası́ que el grado de la regla de Boole es 5. De nuevo uno más de lo que se podrı́a
esperar dado que el método se deriva de interpolación de grado 4.
IV.2.2.
Reglas Simples con Error
Se puede usar el error de interpolación para estimar el error de las reglas de
cuadratura anteriores. Sin embargo, procediendo de esta manera no se obtiene la
mejor estimación posible. Por ejemplo, para la regla de Simpson se obtendrı́a que
el error es proporcional a f (3) (c)h4 para algún c ∈ [x0 , x2 ]. Pero hemos obtenido
que esta regla es exacta para polinomios de grado 3, y consistente con esto se puede
derivar (aunque no lo hacemos aquı́) que el error es proporcional a f (4) (c)h5 para
algún c ∈ [x0 , x2 ], como se enuncia en esta sección.
Regla del Trapecio
Z
x1
f (x)dx =
x0
h
h3
(f0 + f1 ) − f (2) (c) para algún c ∈ [x0 , x1 ]
2
12
IV.2. ERROR DE LAS REGLAS SIMPLES
IV.9
Prueba: El error de interpolación lineal en x está dado por
1
E1 (x) = f (x) − p1 (x) = f 00 (ĉ(x))(x − x0 )(x − x1 )
2
para algún ĉ(x) ∈ [x0 , x1 ]. Entonces
Z x1
1 00
ET [f ] =
f (ĉ(x))(x − x0 )(x − x1 )dx
x0 2
Z x1
1 00
(x − x0 )(x − x1 )dx
=
f (c)
2
x0
Z h
1 00
=
x(x − h)dx
f (c)
2
0
h
1 00
1 3 1 2
=
f (c) x − x h
2
3
2
0
1 00
= − f (c)h3
12
donde en la segunda lı́nea se ha usado el teorema del valor medio para integrales
con una función de peso (la función f 00 (ĉ(x)) puede salir de la integral como f 00 (c)
donde c = ĉ(ξ) para algún ξ ∈ [x0 , x1 ]).
Regla de Simpson
Z
x2
f (x)dx =
x0
h5
h
(f0 + 4f1 + f2 ) − f (4) (c) para algún c ∈ [x0 , x2 ]
3
90
Regla de Simpson-3/8
Z
x3
f (x)dx =
x0
3h
3h5 (4)
(f0 + 3f1 + 3f2 + f3 ) −
f (c) para algún c ∈ [x0 , x3 ]
8
80
Regla de Boole
Z
x4
x0
2h
8h7 (6)
f (x)dx =
(7f0 +32f1 +12f2 +32f3 +7f4 )−
f (c) para algún c ∈ [x0 , x4 ]
45
945
Ejemplo.
R5
.
Consideramos de nuevo la aproximación de ln 5 por medio de la integral 1 dx
x
Se quiere determinar las cotas de error dadas teóricas de acuerdo a las fórmulas
anteriores. Tenemos
1
f (x) = ;
f 0 (x) = − x12 ; f 00 (x) = x23 ; f (3) (x) = − x64
x
f (4) (x) = x245 ; f (5) (x) = − 120
; f (6) (x) = 720
x6
x7
IV.10
CAPÍTULO IV. INTEGRACIÓN NUMÉRICA
Todas estas son decrecientes en valor absoluto y por lo tanto el máximo ocurre en
x = 1, en cada caso. Ası́ que
43
32
h3
máx |f (2) (x)| =
·2=
= 10,666666
12 x∈[1,5]
12
3
h5
25
384
|ES (1/x, [1, 5])| ≤
máx |f (4) (x)| =
· 24 =
= 8,533333
90 x∈[1,5]
90
45
3(4/3)5
512
3h5
(4)
máx |f (x)| =
· 24 =
= 3,792592
|ES3/8 (1/x, [1, 5])| ≤
80 x∈[1,5]
80
135
8h7
8
128
|EB (1/x, [1, 5])| ≤
máx |f (6) (x)| =
· 720 =
= 6,095238
945 x∈[1,5]
945
21
|ET (1/x, [1, 5])| ≤
Por otra parte, el valor exacto de la integral es ln 5 = 1,609437912434100 · · · y
el resultado de las reglas del trapecio, de Simpson y de Boole son: 2,4, 1,6888888 · · ·
y 1,61777777 · · ·. Ası́ que se observa que la cota de error está lejos del error real.
Esto se debe principalmente a que las derivadas decrecen rápidamente para x > 1
pero tomamos el máximo en x = 1 para la cota.
IV.3.
Reglas Simples Abiertas
Las reglas anteriores son cerradas porque incluyen los extremos del intervalo
como nodos. En las reglas abiertas se omiten los extremos. Las siguientes son las
primeras tales reglas, para n nodos, con n = 1, 2, 3, 4, donde en cada caso a = x−1 ,
b = xn , y x−1 , x0 , x1 , . . . , xn dividen [a, b] en intervalos iguales:
Z x1
1
f (x)dx = 2hf (x0 ) + f 00 (c)h3
3
x
Z −1
x2
3
3h
(f (x0 ) + f (x1 )) + f 00 (c)h3
f (x)dx =
2
4
x
Z −1
x3
4h
14
f (x)dx =
(2f (x0 ) − f (x1 ) + 2f (x2 )) + f (4) (c)
3
45
x
Z −1
x4
5h
95 (4)
f (x)dx =
(11f (x0 ) + f (x1 ) + f (x2 ) + 11f (x0 )) +
f (c)
24
144
x−1
IV.4.
Reglas Compuestas
Como ocurre en interpolación, en general se prefiere dividir el intervalo de
integración en un número de subintervalos y aplicar una regla simple de bajo orden
en cada uno de ellos. Las fórmulas resultantes se denominan reglas compuestas. Sea
[a, b] el intervalo de integración y M el número de subintervalos. Para las reglas
del trapecio, de Simpson y de Boole se obtienen las siguientes reglas compuestas.
Escribimos fk = f (xk ).
IV.4. REGLAS COMPUESTAS
IV.11
Trapecio
Sea h = (b − a)/M y xk = a + kh, k = 0, 1, . . . , M . Se aplica la regla simple
del trapecio en cada subintervalo [xk , xk+1 ] y se obtiene la regla compuesta
h
(f0 + 2f1 + 2f2 + 2f3 + · · · + 2fM −2 + 2fM −1 + fM )
2
!
M
−1
X
h
=
f0 +
fk + fM
2
k=1
T (f, h) =
ET (f, h) = −
(b − a)f (2) (c) 2
h = O(h2 ) para algún c ∈ [a, b]
12
Simpson (1/3)
Sea h = (b − a)/2M y xk = a + kh, k = 0, 1, . . . , 2M . Se aplica la regla simple
del trapecio en cada subintervalo [x2k , x2k+2 ] y se obtiene la regla compuesta
h
((f0 + 4f1 + f2 ) + (f2 + 4f3 + f4 ) + · · · + (f2M −2 + 4f2M −1 + f2M ))
3
h
=
(f0 + 4f1 + 2f2 + 4f3 + 2f4 + · · · + 2f2M −2 + 4f2M −1 + f2M )
3
!
M
−1
M
−1
X
X
h
f2k+1 + f2M
f2k + 4
f (x0 ) + 2
=
3
k=0
k=1
S(f, h) =
ES (f, h) = −
(b − a)f (4) (c) 4
h = O(h4 ) para algún c ∈ [a, b]
180
Boole
Sea h = (b − a)/4M y xk = a + kh, k = 0, 1, . . . , 4M . Se aplica la regla simple
del trapecio en cada subintervalo [x4k , x4k+4 ] y se obtiene la regla compuesta
M −1
2h X
B(f, h) =
(7f4k + 32f4k+1 + 12f4k+2 + 32f4k+3 + 7f4k+4 )
45 k=0
2h
=
45
7f0 + 14
M
−1
X
k=1
f4k + 32
M
−1
X
M
−1
X
k=0
k=0
(f4k+1 + f4k+3 ) + 12
!
f4k+2 + 7f4M
6
EB (f, h) = O(h )
Ejemplo.
R5
Se quiere aproximar la integral 0 exp(−x2 /2)dx por medio de (i) la regla
compuesta del trapecio con M = 10 y de (ii) la regla compuesta de Simpson con
IV.12
CAPÍTULO IV. INTEGRACIÓN NUMÉRICA
2M = 10. Para cada caso, (iii) cuál es la cota teórica de error ? (iv) cual debe ser
el mı́nimo valor de M para garantizar error no mayor que 5 × 10−9 ?
Sea f (x) = exp(−x2 /2).
(i) Con M = 10, tenemos xk = k/2, para k = 0, 1, . . . , 10. Tenemos la tabla de
valores
k
0
1
2
3
4
5
6
7
8
9
10
xk
0
0,5
1,0
1,5
2,0
2,5
3,0
3,5
4,0
4,5
5,0
fk
1,00000000
0,88249690
0,60653065
0,32465246
0,13533528
0,04393693
0,01110899
0,00218749
0,00033546
0,00004006
0,00000372
Entonces
0,5
(1 + 2 · 0,88249690 + 2 · 0,60653065 + 2 · 0,32465246
2
+2 · 0,13533528 + 2 · 0,04393693 + 2 · 0,01110899 + 2 · 0,00218749
+2 · 0,00033546 + 2 · 0,00004006 + 0,00000372)
= 0,25 · 5,01325225 = 1,25331306
T (f, 0,5) =
(ii) Usando la misma tabla de valores, tenemos
0,5
(1 + 4 · 0,88249690 + 2 · 0,60653065 + 4 · 0,32465246
3
+2 · 0,13533528 + 4 · 0,04393693 + 2 · 0,01110899 + 4 · 0,00218749
+2 · 0,00033546 + 4 · 0,00004006 + 0,00000372)
= 0,16666667 · 7,51987997 = 1,25331333
S(f, 0,5) =
(iii) Para usar las cotas teóricas, obtenemos las derivadas de f (x):
f (0) (x)
f (1) (x)
f (2) (x)
f (3) (x)
f (4) (x)
f (5) (x)
=
=
=
=
=
=
exp(−x2 /2)
(−x) exp(−x2 /2)
(−1 + x2 ) exp(−x2 /2)
(3x − x3 ) exp(−x2 /2)
(3 − 6x2 + x4 ) exp(−x2 /2)
(−15x + 10x3 − x5 ) exp(−x2 /2)
IV.4. REGLAS COMPUESTAS
IV.13
Para la regla del trapecio
|ET (f, h)| ≤
(b − a)h2
máx |f (2) (x)|
x∈[0,5]
12
Para determinar el max de |f (2) (x)| en [1, 5], encontramos los puntos crı́ticos
de f (2) (x) igualando a cero f (3) (x):
√
f (3) (x) = (3x − x3 ) exp(−x2 /2) = 0 ⇒ x = 0 ó x = 3.
√
Comparando entonces f (0), f ( 3) y f (5), se encuentra que el máximo (en
valor absoluto) está en x = 0. Ası́ que máxx∈[0,5] |f (2) (x)| = 1, y por lo tanto
|ET (f, 0,5)| ≤
5 · (0,5)2
· 1 = 0,1042
12
Para la regla de Simpson
|ES (f, h)| ≤
(b − a)h4
máx |f (4) (x)|
180 x∈[0,5]
Similarmente, determinamos los puntos crı́ticos
f (5) (x) = (−15x+10x3 −x5 ) exp(−x2 /2) = 0
⇒
√
x = 0 ó x2 = 5± 10.
En el segundo caso se tiene x ≈ 1,3556, x ≈ 2,8570. Comparando
f (4) (0) = 3
f (4) (1,3556) = −1,8549
f (4) (2,8570) = 0,3487
se encuentra que máxx∈[0,5] |f (4) (x)| = 3 y por lo tanto
|ES (f, h)| ≤
5(0,5)4
· 3 = 0,005208
180
(iv) Para la regla del trapecio M debe ser tal que
5(5/M )2
≤ 5 · 10−9
12
de donde
r
5 4
10 = 45643,54
6
Entonces se necesita M = 45644. Para la regla del trapecio 2M debe ser tal
que
(5/2M )4
≤ 5 · 10−9
12
de donde
5 100
M ≥ · 1/4 = 159,73
2 6
Entonces se necesita M = 160.
M ≥5
IV.14
CAPÍTULO IV. INTEGRACIÓN NUMÉRICA
Matlab
A continuación las rutinas que implementan las reglas del trapecio y de Simpson compuestas.
function s = traprl (f, a, b, M)
% Entrada - f es ei integrando introducido como cadena de caracteres
%
- a y b son los limites superior e inferior de integracion
%
- M es el numero de subintervalos
% Salida
- s es la suma de la regla trapezoidal (integral)
h = (b - a) / M;
s = 0;
for k = 1:(M-1)
x = a + h * k;
s = s + feval(f, x);
end
s = h *(feval(f, a) + feval(f, b)) / 2 + h * s;
function s = simprl (f, a, b, M)
% Entrada - f es el integrando introducido como cadena de caracteres
%
- a y b son los limites superior e inferior de integracion
%
- M es el numero de subintervalos
% Salida
- s es la suma de la regla de simpson
h = (b - a) / (2 * M);
s1 = 0;
s2 = 0;
for k = 1:M
x = a + h * (2 * k - 1);
s1 = s1 + feval(f, x);
end
for k = 1:(M-1)
x = a + h * 2 * k;
s2 = s2 + feval(f, x);
end
s = h * (feval(f, a) + feval(f, b) + 4 * s1 + 2 * s2) / 3;
’f’
’f’
IV.5.
Reglas Recursivas y Método de Romberg
IV.5.1.
Reglas Recursivas
Trapecio. Para k = 0, 1, 2, . . ., el intervalo [a, b] se subdivide en Mk = 2k subintervalos de longitud hk = (b − a)/2k , y T (k) es el valor de la regla del trapecio
compuesta para estos 2k subintervalos. Las abscisas para T (k) son
xk,j = a + jhk
para j = 0, 1, . . . , 2k ,
y los valores de la función son
fk,j = f (xk,j ).
Los valores de las reglas del trapecio T (k) se pueden evaluar iterativamente de la
siguiente manera:
h
T0 = (f (a) + f (b))
2
IV.5. REGLAS RECURSIVAS Y MÉTODO DE ROMBERG
IV.15
y para k ≥ 1
Mk−1
X
T (k − 1)
+ hk
fk,2j−1 .
Tk =
2
j=1
Prueba. Se verifica teniendo en cuenta que Mk = 2Mk−1 y que los nodos de Tk−1
son los nodos pares de Tk : es decir xk−1,j = xk,2j , y por lo tanto fk−1,j = fk,2j . Con
esto, podemos escribir
Tk =
hk
2
fk,0 + 2
!
fk,j + fk,Mk
j=1

=
M
k −1
X
hk 
fk,0 + 2
2
1 hk−1
=
2 2
Mk
2

−1
X

fk,2j + fk,Mk  + hk
j=1
Mk
2
X
fk,2j−1
j=1
Mk−1 −1
fk−1,0 + 2
X
Mk−1
!
fk−1,j + fk−1,Mk−1
+ hk
j=1
X
fk,2j−1
j=1
Mk−1
X
Tk−1
=
+ hk
fk,2j−1 .
2
j=1
Simpson. [a, b] se subdivide en 2k = 2M , k ≥ 1, subintervalos. Sk es el valor
de la regla de Simpson compuesta con 2k subintervalos y hk = (b − a)/2k . Con un
cálculo como el anterior, se obtiene la relación
Sk =
4Tk − Tk−1
para k = 1, 2, 3, . . .
3
Es decir, por medio de está fórmula se obtiene la cuadratura de Simpson con error
O(h4 ) a partir de la del trapecio con error O(h2 ).
Boole. [a, b] se subdivide en 2k = 4M , k ≥ 2, subintervalos. Bk es el valor de la
regla de Boole compuesta con 2k subintervalos y hk = (b − a)/2k . De nuevo, con
un cálculo como el anterior, se obtiene la relación
Bk =
16Sk − Sk−1
para k = 2, 3, . . .
15
Ası́, se obtiene la cuadratura de Boole con error O(h6 ) a partir de la de Simpson
con error O(h4 ).
Lo anterior es un ejemplo del método de Romberg el cual describimos a continuación.
IV.16
CAPÍTULO IV. INTEGRACIÓN NUMÉRICA
IV.5.2.
Método de Romberg
El método de Romberg se origina en la siguiente fórmula del error para la rega
del trapecio:
ET (f, h) = a1 h2 + a2 h4 + a3 h6 + · · ·
Ya habı́amos visto que este error es O(h2 ); lo crucial aquı́ es que cuando se derivan los términos de más alto orden no aparecen potencias impares, y que los
coeficientes ai son independientes de h. Ası́ que
b
Z
f (x)dx = T (f, h) + a1 h2 + a2 h4 + a3 h6 + · · ·
a
Escribiendo la misma relación para 2h se obtiene
Z
b
f (x)dx = T (f, 2h) + 4a1 h2 + 16a2 h4 + 64a3 h6 + · · ·
a
Multiplicando por 4 la primera ecuación y substrayendo la segunda se obtiene
Z
(4 − 1)
b
f (x)dx = 4T (f, h) − T (f, 2h) + (4 − 16)a2 h4 + (4 − 64)a3 h6 + · · ·
a
y
Z
b
f (x)dx =
a
4T (f, h) − T (f, 2h)
+ b2 h4 + b3 h6
4−1
con b2 = (4 − 16)/(4 − 1), b3 = (4 − 64)/(4 − 1), etc. De esta forma se ha obtenido
una nueva cuadratura con error O(h4 ). De acuerdo con las fórmulas recursivas
derivadas antes, esta nueva regla es simplemente la regla de Simpson, la cual
sabemos tiene error O(h4 ). Se puede continuar de la misma manera obteniendo
reglas de error cada vez menor (la siguiente es la regla de Boole).
Generalizando lo anterior, se obtiene el siguiente procedimiento iterativo para
calcular una secuencia de cuadraturas Rk,j , j ≥ 1 y k ≥ j: primero
Rk,1 = Tk−1 para k ≥ 1
y para j ≥ 2 y k ≥ j se tiene la relación
Rk,j =
4j−1 Rk,j−1 − Rk−1,j−1
4j−1 − 1
Esto corresponde a una tabla Rk,j calculada con las dependencias de la siguiente manera:
IV.5. REGLAS RECURSIVAS Y MÉTODO DE ROMBERG
Trapecio
O(h2 )
Simpson
Boole
O(h4 )
O(h6 )
← R2,2
← R3,2
← R4,2
← R5,2
← R6,2
← R3,3
← R4,3
← R5,3
← R6,3
IV.17
···
O(h8 )
O(h10 ) O(h12 )
← R4,4
← R5,4
← R6,4
..
.
← R5,5
← R6,5
···
R1,1
R2,1
R3,1
R4,1
R5,1
R6,1
← R6,6
Se tiene que
Rk,1 = Tk−1 para k ≥ 1
Rk,2 = Sk−1 para k ≥ 2
Rk,3 = Bk−1 para k ≥ 3
Prueba. Veamos como se deduce la regla recursiva para Rk,j en general. Supon2(j−1)
gamos que ya tenemos las reglas Rk,j−1 y Rk−1,j−1 las cuales tienen error O(hk
)
2(j−1)
y O(hk−1 ) respectivamente:
Z b
2(j−1)
f (x)dx = Rk,j−1 + aj−1 hk
+ aj h2j
k + ···
a
Z b
2(j−1)
f (x)dx = Rk−1,j−1 + aj−1 hk−1 + aj h2j
k−1 + · · ·
a
Usado hk−1 = 2hk , podemos reescribir la segunda ecuación como
Z b
2(j−1)
f (x)dx = Rk−1,j−1 + 22(j−1) aj−1 hk
+ 22j aj h2j
k ···
a
donde los puntos denotan términos de más alto orden. Multiplicando la primera
igualdad por 22(j−1) = 4j−1 y substrayendo la segunda se tiene que
Z b
j−1
(4 − 1)
f (x)dx = 4j−1 Rk,j−1 − Rk−1,j−1 + bj h2j
k + ···
a
donde bj = −3 · 4j−1 aj . Ası́ que
Z b
4j−1 Rk,j−1 − Rk−1,j−1
+ bj h2j
f (x)dx =
k + ···
j−1
4 −1
a
IV.18
CAPÍTULO IV. INTEGRACIÓN NUMÉRICA
y por lo tanto podemos definir la cuadratura
Rk,j =
4j−1 Rk,j−1 − Rk−1,j−1
4j−1 − 1
la cual tiene error O(h2j
k ).
Ejemplo. Consideramos de nuevo la función f (x) = exp(−x2 /2) en [0, 5].
>> [R Q err h]=romber(@(x) exp(-x.^2/2),0,5,4,5e-5)
R =
2.50000932
0
0
0
1.35984699
0.97979288
0
0
1.25331998
1.21781098
1.23367885
0
1.25331289
1.25331052
1.25567716
1.25602633
1.25331327
1.25331340
1.25331359
1.25327608
Q =
1.25326529
err =
0.00276105
h =
0.31250000
0
0
0
0
1.25326529
Matlab
function [R, quad, err, h] = romber (f, a, b, n, tol)
% Entrada - f es el integrando introducido como cadena de caracteres
%
- a y b son los limites superior e inferior de integracion
%
- n es el numero maximo de filas en la tabla
%
- tol es la tolerancia
% Salida
- R es la tabla de Romberg
%
- quad es el valor de la cuadratura (integral)
%
- err es el error estimado
%
- h es el tama~
no de paso mas peque~
no utilizado
M = 1;
h = b - a;
err = 1;
J = 0;
R = zeros(4, 4);
R(1, 1) = h * (feval(f, a) + feval(f, b)) / 2;
while ((err > tol) & (J < n)) | (J < 4)
J = J + 1;
h = h / 2;
s = 0;
for p = 1:M
x = a + h * (2 * p - 1);
s = s + feval(f, x);
end
R(J+1, 1) = R(J, 1) / 2 + h * s;
M = 2 * M;
for K = 1:J
R(J+1, K+1) = R(J+1, K) + (R(J+1, K) - R(J, K)) / (4 ^ K - 1);
end
err = abs(R(J, J) - R(J+1, K+1));
end
quad = R(J+1, J+1);
’f’
IV.6. CUADRATURA DE GAUSS-LEGENDRE
IV.6.
IV.19
Cuadratura de Gauss-Legendre
Las reglas que hemos estudiado hasta ahora tienen x0 = a y xn = b –por lo cual
se dice que son cerradas– y los nodos están distribuidos uniformemente. Existen
reglas en las cuales esto no es cierto. En la cuadratura de Gauss-Legendre, con n
nodos se logra grado de precisión 2n − 1. Los nodos que se usan son las raı́ces del
polinomio de Legendre de grado n.
Regla de Gauss-Legendre para dos Puntos. La regla de Gauss-Legendre
para dos puntos está dada por
Z 1
1
−1
+f √
f (x)dx ≈ G2 (f ) = f √
3
3
−1
con error
f (4) (c)
135
4
para algún c ∈ [−1, 1], asumiendo f ∈ C [−1, 1].
EG2 (f ) =
Esta fórmula se puede derivar a partir de la forma
G2 (f ) = w1 f (α1 ) + w2 f (α2 )
tratando de obtener una cuadratura con el mayor grado de precisión posible. Ası́,
procedemos con los cálculos:
R1
1dx = 2
G2 (1) = w1 + w2
R−1
1
xdx = 0
G2 (x) = w1 α1 + w2 α2
R−1
1
2
2
x dx = 3
G2 (x2 ) = w1 α12 + w2 α22
R−1
1
x3 dx = 0
G2 (x3 ) = w1 α13 + w2 α23
−1
De donde se obtienen las ecuaciones
w1 + w2 = 2
w 1 α1 + w 2 α2 = 0
2
w1 α12 + w2 α22 =
3
3
3
w 1 α1 + w 2 α2 = 0
De la segunda ecuación, se tiene w2 α2 = −w1 α1 . Reemplazando esto en la última
resulta en
w1 α1 (α12 − α22 ) = 0
No puede ser que w1 x1 = 0, por lo tanto α2 = −α1 . Esto en la segunda ecuación
da w1 = w2 , y por lo tanto la primera ecuación implica que
w1 = w2 = 1.
IV.20
CAPÍTULO IV. INTEGRACIÓN NUMÉRICA
Finalmente, la tercera ecuación implica que
1
α1 = −α2 = √ .
3
Los valores determinados corresponden a la expresión de G2 dada antes. El grado
de precisión es 3 porque
4 4
R1 4
1
2
4
√
G2 (x ) = − 3 + √13 = 29
x dx = 5
−1
R5
Ejemplo. Usamos la cuadratura G2 para aproximar ln 5 = 1 dx
. Primero debex
mos trasladar la integral al intervalo [−1, 1] con el cambio de variable x = 2u + 3:
Z 1
Z 5
2du
dx
=
.
x
−1 2u + 3
1
Entonces
Z 1
ln 5 =
−1
2
2
2·6
36
2du
√
√
≈
+
=
=
= 1,565217 · · ·
2u + 3
9 − 4/3
23
2(−1/ 3) + 3 2(1/ 3) + 3
mientras que el valor exacto es 1,609437912 · · ·
Regla de Gauss-Legendre para tres Puntos. La regla de Gauss-Legendre
para tres puntos está dada por
r !
r !!
Z 1
1
3
3
5f −
+ 8f (0) + 5f
f (x)dx ≈ G3 (f ) =
9
5
5
−1
con error
f (6) (c)
15750
6
para algún c ∈ [−1, 1], asumiendo f ∈ C [−1, 1].
EG3 (f ) =
Ejemplo. Usamos la cuadratura G3 para aproximar ln 5 =
Z 5
Z 1
dx
2du
ln 5 =
=
.
x
1
−1 2u + 3
R5
1
dx
.
x
Ya sabemos
Entonces
1
ln 5 ≈
9
2
2
2
5 p
+8
+5 p
2·0+3
−2 3/5 + 3
+2 3/5 + 3
!
2
(5 · 0,68927172 + 8 · 0,33333333 + 5 · 0,21981919)
5
2
=
(3,44635859 + 2,66666667 + 1,09909596)
9
= 1,60269360 · · ·
=
IV.6. CUADRATURA DE GAUSS-LEGENDRE
IV.6.1.
IV.21
Polinomios de Legendre
Se puede usar el método anterior (coeficientes indeterminados) para obtener
n nodos y coeficientes de tal manera que la cuadratura resultante tiene grado
de precisión 2n − 1. Alternativamente, esos mismos nodos resultan ser las raı́ces
de los llamados polinomios de Legendre. En el intervalo [−1, 1], el conjunto de
polinomios forma un espacio vectorial con producto interior
Z
+1
hP (x), Q(x)i =
P (x)Q(x)dx
−1
Se puede aplicar entonces el proceso de ortogonalización de Gram-Schmidt para
obtener una sucesión de polinomios ortogonales Pn (x), n = 0, 1, 2 . . .. Estos son
los llamados polinomios de Legendre. Enunciamos el resultado que se obtiene.
Teorema IV.1 Los polinomios mónicos de Legendre P0 (x), P1 (x), P2 (x), . . . definidos por la relación de recurrencia
P0 (x) = 1,
P1 (x) = x,
Pn+1 (x) = xPn (x) −
n2
Pn−1 (x)
4n2 − 1
satisfacen las siguientes propiedades: para cada n = 0, 1, 2, 3, . . .
(i) Pn (x) tiene n raı́ces reales diferentes en el intervalo [−1, 1]
(ii) cualquier polinomio P (x) de grado n se puede escribir como combinación
lineal de P0 (x), P1 (x), . . . , Pn (x), es decir, existen números reales c0 , . . . , cn
(únicos) tal que
n
X
P (x) =
ci Pi (x)
i=0
(iii) para todo m 6= n, Pn (x) y Pm (x) son ortogonales, es decir,
+1
Z
Pn (x)Pm (x)dx = 0
−1
(iv) si Q(x) es de grado menor que n entonces
Z
+1
Pn (x)Q(x)dx = 0.
−1
Como ejemplo, tenemos la siguiente tabla de los primeros polinomios y sus
raı́ces:
IV.22
CAPÍTULO IV. INTEGRACIÓN NUMÉRICA
n
0
1
Pn (x)
1
x
2
raı́ces
q 0 √
± 13 = ± 33
q
√
0, ± 35 = 515
r √
q √
525±70 30
± 17 3 ± 2 65 = ±
35
1
3
2
x −
3
x3 − 53 x
4
x4 − 67 x +
30
35
Note que las raı́ces de los polinomios de grado 2 y 3 son las mismas obtenidas
antes usando el método de coeficientes indeterminados.
IV.6.2.
Método de Gauss-Legendre
El método de Gauss-Legendre con n nodos para la integral
cuadratura
n
X
Gn [f ] =
wi f (xi )
R +1
−1
f (x)dx es la
i=1
donde x1 , x2 , . . . , xn son las n raı́ces de Pn (x), y los pesos wi son los correspondientes a la integral exacta del polinomio de interpolación para los datos (xi , f (xi )),
i = 1, 2, . . . , n. Más precisamente, recordemos que para estos datos la interpolación
de Lagrange (un polinomio de grado n − 1) está dada por
I(x) =
n
X
f (xi ) · Ln−1,i (x),
i=1
donde
Ln,i =
Entonces
Z
+1
I(x)dx =
−1
Y x − xj
.
x
i − xj
j6=i
n
X
Z
+1
f (xi )
i=1
Ln−1,i (x)dx,
−1
y por lo tanto
Z
+1
wi =
Ln−1,i (x)dx.
−1
Esto da un método para calcular los wi de la cuadratura. Equivalentemente, los
wi se pueden obtener con el método de coeficientes indeterminados para los nodos
x1 , . . . , xn y los polinomios 1, x, x2 , . . . , xn−1 , de tal manera que la cuadratura es
exacta para los polinomios 1, x, x2 , . . . , xn−1 . Se obtienen las n ecuaciones, para
k = 0, 1, 2, . . . , n − 1, con las n incógnitas w1 , w2 , . . . , wn :
Z +1
n
X
1 − (−1)k+1
k
wi · xi =
xk dx =
.
k
+
1
−1
i=1
IV.6. CUADRATURA DE GAUSS-LEGENDRE
IV.23
Este método se ha implementado en el programa Matlab que se incluye adelante.
Ahora justificamos el grado de precisión del método de Gauss-Legendre.
Teorema IV.2 El método de Gauss-Legendre es exacto para todo polinomio de
grado menor que 2n.
Prueba. Sea P (x) un polinomio de grado menor que 2n. Si el grado de P (x) es
menor que n entonces la cuadratura es exacta (por la construcción de los wi ). Si
P (x) tiene grado al menos n y menor que 2n, entonces tomando el cociente con
Pn (x) podemos escribir
P (x) = Q(x)Pn (x) + R(x)
donde los grados del cociente Q(x) y del residuo R(x) son menores que n. Por lo
tanto, por el caso ya considerado, la cuadratura para R es exacta, es decir
Z +1
R(x)dx = Gn [R].
−1
Por otra parte
Z
Z +1
P (x)dx =
+1
Z
Z
+1
R(x)dx
R(x)dx =
Q(x)Pn (x)dx +
−1
−1
−1
+1
−1
R +1
porque −1 Q(x)Pn (x)dx = 0 por la propiedad (iv) de los polinomios de Legendre
en el teorema anterior. Además puesto que x1 , x2 , . . . , xn son las raı́ces de Pn (x),
es decir Pn (xi ) = 0, se tiene que
P (xi ) = Q(x)Pn (xi ) + R(xi ) = R(xi ),
y por lo tanto las cuadraturas de P (x) y de R(x) son iguales, Gn [P ] = Gn [R].
Ası́ que
Z +1
Z +1
R(x)dx = Gn [R] = Gn [P ].
P (x)dx =
−1
−1
Hemos obtenido que la cuadratura es exacta para P (x) donde P (x) es cualquier
polinomio de grado menor que 2n.
Finalmente, en general la integral de interés es sobre un intervalos [a, b]. Para
su evaluación, se usa un cambio de variable
a(1 − t) + b(1 + t)
x=
2
Con esto,
Z b
Z
b − a +1
a(1 − t) + b(1 + t)
f (x)dx =
f
dt
2
2
a
−1
y por lo tanto la cuadratura de f en [a, b] con n nodos está dada por
n
b−a X
a(1 − xi ) + b(1 + xi )
Gn [f ] =
·
wi · f
2
2
i=1
donde los xi son las raı́ces en [−1, 1] como antes, y los coeficietes wi son los mismos
que antes.
IV.24
IV.6.3.
CAPÍTULO IV. INTEGRACIÓN NUMÉRICA
Programa Matlab
El siguiente programa Matlab cálcula las raı́ces del polinomio de Legendre
necesario y los coeficiente de la cuadratura. Por supuesto, si esta función se va
a usar repetidamente serı́a más eficiente precalcular estos, tenerlos disponibles y
simplemente usarlos. El cálculo de las raı́ces se basa en la observación de que el
polinomio de Legendre Pn (x) es igual al polinomio caracterı́stico de la siguiente
matriz, llamada matriz de Jacobi:











√
0
0
0
0√
1/ 3
√
1/ 3
0
2/
15
0
0
√
√
0
2/ 15
0
3/ 35
0
√
√
0
0
3/ 35
0
4/ 65
..
..
..
..
..
.
.
.
.
.
0
0
0
0
0
0
0
0
0
0
0
0
0
0
..
.
···
···
···
···
..
.
0 ···
0
0
0
0
..
.
√
0 ···
0
0
0
0
..
.
n−2
4(n−2)2 −1
0
0
√
0
0
0
0
..
.
n−1
4(n−1)2 −1
√
n−1
4(n−1)2 −1
0
Esto se puede comprobar de la ecuación de recurrecia de los polinomios. La evaluacı́on de los coeficientes se basa en el método de coeficientes indeterminados.
function [quad, raices, nodos, coefs] = GaussLegendre( f, a, b, N)
% Entrada
- f es el integrando introducido como una cadena de caracters
%
- a y b limites superior e inferior de integracion
%
- N es el numero de nodos en la cuadratura
% Salida
- quad es el valor de cuadratura
%
- raices es el vector de raices del polinomio de Legendre N
%
- nodos es el vector de nodos de la cuadratura e [a,b]
%
- coefs es el vector de pesos de la cuadratura
% evaluacion de las N raices del polinomio de Legendre P_N de grado N,
%
usando el hecho de que P_N es el polinomio caracteristico de la
%
matriz de Jacobi J
v = feval(@(n) n./sqrt(4*n.^2-1), 1:N-1);
J = diag(v,-1)+diag(v,+1);
raices = eig(J);
% evaluacion de los nodos por medio de transformacion lineal
nodos = (a*(1-raices)+b*(1+raices))/2;
% evaluacion de los coeficientes de la cuadratura por el metodo de
%
coeficientes indeterminados
V = (vander(raices))’;
z = (feval(@(k) (1-(-1).^k)./k, N:-1:1))’;
coefs = V\z;
% evaluacion de la cuadratura
quad = ((b-a)/2) * sum(coefs.*feval(f, nodos));
end
’f’











IV.6. CUADRATURA DE GAUSS-LEGENDRE
Ejemplo. Usamos la rutina para evaluar
R5
0
IV.25
exp(−x2 /2)dx con 8 nodos:
>> [quad, raices, nodos, coefs] = GaussLegendre(@(x) exp(-x.^2/2),0,5,8)
quad =
1.253315160546044
raices =
-0.960289856497536
-0.796666477413627
-0.525532409916329
-0.183434642495650
0.183434642495650
0.525532409916329
0.796666477413627
0.960289856497536
nodos =
0.099275358756159
0.508333806465933
1.186168975209178
2.041413393760875
2.958586606239126
3.813831024790822
4.491666193534066
4.900724641243841
coefs =
0.101228536290375
0.222381034453377
0.313706645877884
0.362683783378367
0.362683783378358
0.313706645877890
0.222381034453373
0.101228536290377
Descargar