Вы находитесь на странице: 1из 7

MÉTODOS MATEMÁTICOS (Curso 2015-2016)

Segundo Curso del Grado en Ingenierı́a de Tecnologı́as Industriales


Departamento de Matemática Aplicada II. Universidad de Sevilla

Lección 4: Cuadratura y Derivación Numéricas


Introducción. Se entiende por cuadratura el cálculo de integrales definidas de funciones de una
variable, esto es, el cálculo del valor
Z b
I(f ) = f (x) dx,
a

para ciertos valores a < b. La palabra integración se reserva para la resolución de ecuaciones
diferenciales. La idea básica de la cuadratura numérica es aproximar el valor de la integral I(f )
por la integral de un interpolante:
Z b
I(f ) ≈ p(x) dx,
a

bien sea este el polinomio interpolador de f asociado a ciertos nodos, bien un interpolante a
trozos asociado a una partición ∆ de [a, b]. En el primer caso, la aproximación da lugar a lo
que se conoce como fórmulas de cuadratura; en el segundo caso a las fórmulas de cuadratura
compuesta.
También estudiaremos técnicas de derivación numérica, es decir, procedimientos para aprox-
imar el valor de la derivada de una función en un punto:

D(f ) = f 0 (x∗ ), D2 (f ) = f 00 (x∗ ), . . .

De nuevo, la idea será aproximar estos valores mediante las derivadas de un polinomio interpo-
lador p adecuado,
D(f ) ≈ p0 (x∗ ), D2 (f ) ≈ p00 (x∗ ), . . .
Como veremos, este proceso se puede interpretar como tomar cocientes incrementales, si acaso
con el cuidado suficiente para obtener resultados más precisos sin esfuerzo extra alguno.
Ambos problemas, cuadratura y derivación, están numéricamente bien resueltos hoy dı́a,
con procedimientos casi óptimos para obtener resultados precisos a bajo costo. Debe tenerse
muy presente sin embargo que, mientras la cuadratura es un problema bien condicionado, la
derivación numérica no lo es.

FÓRMULAS DE CUADRATURA BÁSICAS

Consideremos la forma de Lagrange del polinomio interpolador de f asociado a los nodos


x0 < x1 < · · · < xN :

pN (x) = f (x0 )L0 (x) + f (x1 )L1 (x) + · · · + f (xN )LN (x),

1
donde los Lj son los correspondientes polinomios de Lagrange. Usando la expresión anterior del
polinomio interpolante, se obtienen fácilmente las reglas de cuadratura de la forma:

I(f ) ≈ Q(f ) = (b − a) (w0 f (x0 ) + w1 f (x1 ) + · · · + wN f (xN )) ,

donde los valores Z b


1
wj = Lj (x) dx, j = 0, . . . , N,
b−a a
reciben el nombre de pesos de cuadratura. En el contexto de la cuadratura numérica, a los nodos
de interpolación x0 , . . . , xN , se les conoce con el nombre de nodos de cuadratura.

Las fórmulas de cuadratura más elementales son las siguientes:

Regla del punto medio. Resulta de integrar el interpolante de grado 0 asociado al punto
medio del intervalo [a, b] (esto es, al nodo x0 = (a + b)/2). Dicho interpolante no es otra
cosa que la función constante cuyo valor es f ( a+b
2
). Por tanto:
µ ¶
a+b
I(f ) ≈ (b − a)f .
2

El único peso es w0 = 1.

Regla del trapecio. Es la que se obtiene al integrar el interpolante lineal basado en los
nodos x0 = a y x1 = b. Dicho interpolante es p1 (x) = b−x
b−a
f (a) + x−a
b−a
f (b). Por tanto, la
fórmula de cuadratura resulta:
b−a
I(f ) ≈ (f (a) + f (b)).
2
Sus pesos son w0 = 21 y w1 = 21 . Recibe su nombre debido a que el valor obtenido es el del
área de la figura trapezoidal que queda entre el interpolante lineal y el eje horizontal.

Regla de Simpson. Se obtiene al integrar el interpolante cuadrático asociado a los no-


dos x0 = a, x1 = a+b 2
y x2 = b. Es fácil ver que en este caso, se obtiene la siguiente
aproximación:
b−a ¡ ¢
I(f ) ≈ (f (a) + 4f a+b
2
+ f (b)).
6
Sus pesos son w0 = 16 , w1 = 64 y w2 = 16 .

2.5 2.5 2.5

2 2 2

1.5 1.5 1.5

1 1 1

0.5 0.5 0.5

0 0 0

−0.5 −0.5 −0.5


−0.5 0 0.5 1 1.5 2 −0.5 0 0.5 1 1.5 2 −0.5 0 0.5 1 1.5 2

P. Medio Trapecios Simpson

2
Fórmulas de Newton-Cotes. Reciben este nombre las fórmulas que se obtienen al
integrar el interpolante pN basado en N + 1 nodos equidistribuidos en [a, b]: xj = a + j b−a
N
.
Las fórmulas correspondientes a N = 2 y N = 3 son la regla de los trapecios y la regla de
Simpson, respectivamente.

Fórmulas de Lobatto. Son aquéllas que se obtienen al integrar el interpolante de grado


N basado en los nodos x0 = a < x1 < · · · < xN = b, donde los nodos interiores x1 , . . . , xN −1
son los N − 1 ceros de la derivada del polinomio de Legendre de grado N .
Las fórmulas de Lobatto constituyen un caso particular de lo que se conoce como cuadratu-
ra gaussiana, cuyo contenido queda fuera del alcance de este curso.

Grado de precisión y error de una fórmula de cuadratura. Se denomina grado de precisión


al grado máximo de los polinomios que una fórmula de cuadratura integra exactamente. Es
decir, una fórmula de cuadratura tiene grado de precisión r si integra exactamente todos los
polinomios de grado menor o igual que r, pero hay algún polinomio de grado r + 1 que no
integra exactamente.
Puesto que el interpolante pN de grado N basado en N + 1 nodos es único, una fórmula de
cuadratura de N + 1 nodos tiene al menos grado N , aunque podrı́a tener un grado mayor. Tal
es el caso de la regla del punto medio: cualquier polinomio de grado 1 puede expresarse en la
forma
yb − ya
p(x) = ya + (x − a),
b−a
(donde hemos escrito la correspondiente recta en la forma punto-pendiente). Su integral en [a, b]
es: Z b
yb − ya yb + ya
p(x) = ya (b − a) + (b − a) = (b − a) ,
a 2 2
que coincide con la aproximación dada por la regla del trapecio. Los grados de precisión r de
las fórmulas descritas anteriormente son los siguientes:
Regla del punto medio: r = 1.
Regla del trapecio: r = 1.
Regla de Simpson: r = 3.
Fórmulas de Newton-Cotes: En general, r = N .
Fórmulas de Lobatto: r = 2N − 1.
La importancia del grado de precisión radica en el siguiente resultado, que se refiere al error
cometido en el procedimiento de cuadratura numérica:
Z b N
X
E(f ) = I(f ) − Q(f ) = f (x) dx − (b − a) wj f (xj ).
a j=0

Teorema. Consideremos una fórmula de cuadratura con grado de precisión r. Entonces, para
cualquier a < b y para toda función f de clase C r+1 ([a, b]), existe una constante C tal que
¯ ¯
|E(f )| ≤ C(b − a)r+2 ¯f (r+1) (ξ)¯ ,

3
donde ξ ∈ [a, b].

En el caso de algunas fórmulas de cuadratura, se puede obtener explı́citamente el valor de


la constante C. Ası́, por ejemplo, se tiene:
(b−a)3 00
Regla del punto medio: E(f ) = 24
f (ξ),
3
Regla del trapecio: E(f ) = − (b−a)
12
f 00 (ξ),
5
Regla de Simpson: E(f ) = − (b−a)
90
f 0000 (ξ).

CUADRATURA COMPUESTA

Consideremos una partición del intervalo [a, b]:

∆ = {a = x0 < x1 < · · · < xJ = b} .

En el procedimiento de cuadratura compuesta, se expresa el valor de la integral como


Z b Z x1 Z x2 Z xJ
I(f ) = f (x) dx = f (x) dx + f (x) dx + · · · + f (x) dx,
a x0 x1 xJ−1
R xj
y se aproxima el valor de cada integral Ij (f ) = xj−1 f (x) dx mediante una misma fórmula
de cuadratura. En los siguientes gráficos podemos apreciar la diferencia entre la regla de los
trapecios y la regla de los trapecios compuesta.

R. Trapecios R. Trapecios compuesta

Vemos también cómo en el segundo caso, el valor calculado (la parte sombreada) es más
exacto que en el primero (el valor exacto es el área que queda entre la curva y el eje horizontal).
Esta mejora de la precisión no es sólo particular de este ejemplo sino que es general.

CUADRATURA ADAPTATIVA

Es una variedad de la cuadratura compuesta en la que la partición ∆ no se elige a priori,


sino que se va determinando en función de las estimaciones de error que se van obteniendo en
cada subintervalo.

4
Supongamos que estamos trabajando con una fórmula de cuadratura con grado de precisión r.
Según vimos anteriormente, tendremos que el error de la fórmula es E(f ) = O (hr+2 ) siendo h
la longitud del intervalo de integración.
La idea de la cuadratura adaptativa es comparar la aproximación Qj (f ) que proporciona
la fórmula de cuadratura en un subintervalo [xj−1 , xj ] (de longitud hj ), con la suma de las
(1) (1) h
correspondientes aproximaciones Qj 2 (f )+Qj+2 1 (f ) en los intervalos de longitud 2j : [xj−1 , xj−1 +
2
hj h
2
]y [xj−1 + 2j , xj ].
Esta suma puede considerarse más³precisa ´ que la aproximación en el subintervalo [xj−1 , xj ]:
0 hr+2
la suma produce un error Ej (f ) = O 2r+1 , mientras que la aproximación inicial produce un
¡ ¢
error Ej (f ) = O hr+2
j (observemos que, con ser r solamente 2, la segunda expresión es casi diez
veces más pequeña que la primera).
(1) (1)
Abusando de la mencionada mayor precisión, la suma Qj 2 (f ) + Qj+2 1 (f ) puede considerarse
2
como exacta al compararla con Qj (f ) y, por tanto, tenemos una forma de aproximar el error en
el subintervalo [xj−1 , xj ]:
µ 1 ¶
(2) ( 12 )
Ej (f ) ≈ Qj (f ) − Qj (f ) + Qj+ 1 (f ) . (1)
2

Si esta última cantidad es menor que una tolerancia prefijada, se considera que Qj (f ) es una
(1) (1)
buena aproximación a Ij (f ) (en realidad, tomaremos Qj 2 (f ) + Qj+2 1 (f ) como aproximación de
2
Ij (f ), que será más preciso).
Si por el contrario, la mencionada cantidad es mayor que la tolerancia prefijada, no podemos
(1) (1)
considerar como válidos ninguno de los valores obtenidos: Qj (f ), Qj 2 (f )+Qj+2 1 (f ) y tendremos
2
que repetir el proceso que hemos seguido con el intervalo [xj−1 , xj ], con cada uno de los intervalos
h h h
de longitud 2j : [xj−1 , xj−1 + 2j ] y [xj−1 + 2j , xj ] (tras dividir la tolerancia prefijada por 2, hemos
multiplicado por 2 las cantidades a calcular).
Esto es, en esencia, lo que hacen los paquetes de cuadratura implementados en Matlab. Por
ejemplo, el comando quad hace un proceso de cuadratura adaptado como el descrito, utilizando la
regla de Simpson. El comando quadl utiliza una fórmula de Lobatto de N + 1 nodos con N = 12
(tiene grado de precisión r = 23). Precisamente por su alto grado de precisión, el comando quadl
suele ser el más eficiente con funciones muy regulares.

DERIVACIÓN NUMÉRICA

Como mencionamos al principio de la lección, la idea básica para calcular numéricamente


las derivadas de una función en un punto:

D(f ) = f 0 (x∗ ), D2 (f ) = f 00 (x∗ ), . . . ,

es obtener un polinomio interpolador p adecuado, y aproximar

D(f ) ≈ p0 (x∗ ), D2 (f ) ≈ p00 (x∗ ), etc.

5
Si usamos los nodos x0 < x1 < · · · < xN , esto dará lugar a fórmulas de la forma

D(f ) ≈ DN (f ) = α0 f (x0 ) + α1 f (x1 ) + · · · + αN f (xN ),


D2 (f ) ≈ DN
2
(f ) = β0 f (x0 ) + β1 f (x1 ) + · · · + βN f (xN ), . . .

donde, obviamente, los coeficientes serán los valores en x∗ de las correspondientes derivadas de
los polinomios de Lagrange: αj = L0j (x∗ ), βj = L00j (x∗ ), etc.
Igual que en el caso de la cuadratura, el grado de precisión es el grado r más alto para el
cual la fórmula de derivación es exacta para todos los polinomios de grado menor o igual que r,
siendo inexacta para alguno de grado r + 1. Obviamente, siempre que usemos N + 1 nodos, el
grado de precisión será al menos N .
Con respecto al error que se comete al aproximar las derivadas de la forma descrita anteri-
ormente, utilizando el desarrollo de Taylor en torno al punto x∗ se prueba sin dificultad que, si
una fórmula para aproximar D(f ) tiene grado de precisión r, entonces
¯ ¯
|f 0 (x∗ ) − DN (f )| ≤ C1 hr máx ¯f (r+1) (x)¯ , donde h = máx (xj − xj−1 ),
x∈[x0 ,xN ] 1≤j≤N

x −x
donde la constante C1 depende de los cocientes xjj+1
−xj−1
j
. De manera similar, si una fórmula para
2
aproximar D (f ) tiene grado de precisión r, entonces
¯ 00 ∗ ¯ ¯ ¯
¯f (x ) − DN2
(f )¯ ≤ C2 hr−1 máx ¯f (r+1) (x)¯ , etc.
x∈[x0 ,xN ]

Las fórmulas de derivación numérica más utilizadas son las siguientes:

Fórmula de dos puntos para f 0 . Si consideramos el polinomio interpolador de f de primer


grado basado en dos nodos x0 y x1 : p1 (x) = f [x0 ] + f [x0 , x1 ](x − x0 ), obtenemos la fórmula:
f (x1 ) − f (x0 )
f 0 (x∗ ) ≈ p01 (x∗ ) ≡ f [x0 , x1 ] = .
x1 − x0
Los pesos de esta fórmula son α0 = −α1 = −1/(x1 − x0 ) (que no dependen de x∗ ), siendo su
grado de precisión r = 1, excepto en x∗ = (x0 + x1 )/2 donde vale r = 2.
Dado un punto x∗ , seleccionando adecuadamente los nodos x0 y x1 , tenemos las siguientes
fórmulas de dos puntos:
La diferencia progresiva. Tomando x0 = x∗ y x1 = x∗ + h, obtenemos:
f (x∗ + h) − f (x∗ )
f 0 (x∗ ) ≈ .
h
El error es f 0 (x∗ ) − (f (x∗ + h) − f (x∗ ))/h = f 00 (ξ)h/2.

La diferencia central. Tomando x0 = x∗ − h y x1 = x∗ + h, obtenemos:


f (x∗ + h) − f (x∗ − h)
f 0 (x∗ ) ≈ .
2h
El error es f 0 (x∗ ) − (f (x∗ + h) − f (x∗ − h))/(2h) = f 000 (ξ)h2 /3.

6
Fórmula de tres puntos para f 00 . Si derivamos dos veces el polinomio interpolador de f de
segundo grado basado en tres nodos x0 , x1 y x2 :

p2 (x) = f [x0 ] + f [x0 , x1 ](x − x0 ) + f [x0 , x1 , x2 ](x − x0 )(x − x1 ),

obtenemos:
f (x2 )−f (x1 ) f (x1 )−f (x0 )
00 ∗ (x2 −x1 )
− (x1 −x0 ) 2f (x2 ) 2f (x1 ) 2f (x0 )
f (x ) ≈ p002 (x∗ ) ≡ 2f [x0 , x1 , x2 ] = 2 = − + ,
x2 − x0 h2 (h1 + h2 ) h1 h2 h1 (h1 + h2 )

donde, como es habitual, hj = xj − xj−1 , para j = 1, 2. De nuevo, los coeficientes no dependen


de x∗ . El grado de precisión de la fórmula es r = 2, excepto para x∗ = (x0 + x1 + x2 )/3, donde
vale r = 3.
Dado un punto x∗ , seleccionando adecuadamente los nodos como x0 = x∗ − h, x1 = x∗ y
x2 = x∗ + h, obtenemos la siguiente fórmula con grado de precisión r = 3:

Diferencia central para la derivada segunda.

f (x∗ + h) − 2f (x∗ ) + f (x∗ − h)


f 00 (x∗ ) ≈ .
h2
f (x∗ +h)−2f (x∗ )+f (x∗ −h) 2
El error es: f 00 (x∗ ) − h2
= f 0000 (ξ) h12 .

Finalmente, señalemos que las fórmulas presentadas anteriormente presentan problemas de can-
celación numérica. Ası́, en la práctica puede observarse que el error disminuye inicialmente con
h, pero cuando éste se hace inferior a un cierto umbral los errores de redondeo hacen que el
error crezca a medida que se disminuye el paso de la fórmula. De hecho, el único comando de
Matlab que de algún modo se puede considerar relacionado con la derivación numérica es el
comando diff, que, dado un vector v = [v1 , . . . , vn ], devuelve el vector [v2 − v1 , . . . , vn − vn−1 ].

Вам также может понравиться