Cuadratura y derivacion numerica

Anuncio
MÉTODOS MATEMÁTICOS (Curso 2012-2013)
Cuarto Curso de Ingeniero Industrial
Departamento de Matemática Aplicada II. Universidad de Sevilla
Lección 5: 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
f (x) dx,
I(f ) =
a
para ciertos valores a < b. La palabra integración se reserva para la resolución de ecuaciones
diferenciales. Por el contrario, por derivación se entiende el cálculo del valor de la derivada de
una función en un punto.
La idea básica de la cuadratura numérica es aproximar el valor de 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 en esta lección las técnicas de derivación numérica, esto es
procedimientos para aproximar
D(f ) = f 0 (x∗ ),
D2 (f ) = f 00 (x∗ ),
etc.,
en donde de nuevo la idea será aproximar mediante las derivadas de un polinomio interpolador p
adecuado,
D(f ) ≈ p0 (x∗ ),
D2 (f ) ≈ p00 (x∗ ),
etc.,
aunque, 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.
1
FÓRMULAS DE CUADRATURA BÁSICAS
Consideremos el 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),
donde los Lj son los correspondientes polinomios de Lagrange:
N
�
x − xl
Lj (x) =
,
xj − xl
l=1
j = 0, . . . , N.
l�=j
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
� 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.
Mediante el cambio de variable:
x = a + (b − a)s,
se tiene que
�
b
a
f (x) dx = (b − a)
�
(1)
1
0
f (a + (b − a)s) ds.
Por ello, es frecuente definir las fórmulas de cuadratura sólo para integrales definidas con
extremos 0 y 1. Tras este cambio, los pesos resultan ser
� 1
wj =
lj (s) ds,
0
donde los lj son los polinomios de Lagrange asociados a los nodos
ξj =
xj − a
,
b−a
j = 0, . . . , N.
Por ello, los pesos de las fórmulas de cuadratura no dependen del intervalo [a, b].
Las fórmulas de cuadratura más elementales tienen nombre propio que debe conocer:
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
). Por tanto:
2
�
�
a+b
I(f ) ≈ (b − a)f
.
2
El único peso es w0 = 1.
2
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
f (a) + x−a
f (b). Por tanto, la
b−a
b−a
fórmula de cuadratura resulta:
I(f ) ≈
b−a
(f (a) + f (b)).
2
Sus pesos son w0 = 12 y w1 = 12 . 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.
P. Medio
Trapecios
Simpson
Regla de Simpson. Se obtiene al integrar el interpolante cuadrático asociado a los
nodos x0 = a, x1 = a+b
y x2 = b. Es fácil ver que en este caso, se obtiene la siguiente
2
aproximación:
� �
b−a
I(f ) ≈
(f (a) + 4f a+b
+ f (b)).
2
6
Sus pesos son w0 = 16 , w1 = 46 y w2 = 16 .
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 aquellas 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órmula
resultante
para N = 3, para el intervalo [0, 1] tiene como nodos x0 = 0,
√
√
5− 5
5+ 5
x1 = 10 , x2 = 10 y x3 = 1 (para un intervalo [a, b] cualquiera, basta usar el cambio
1
5
5
1
de variable (1)), y los pesos son w0 = 12
, w1 = 12
, w2 = 12
y w3 = 12
.
Las fórmulas de Lobatto constituyen un caso particular de lo que se conoce como
cuadratura 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
3
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:
� b
yb − ya
yb + ya
p(x) = ya (b − a) + (b − a)
= (b − a)
,
2
2
a
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.
Respecto al error cometido
E(f ) = I(f ) − Q(f ) = I(f ) − (b − a)
N
�
wj f (xj ),
j=0
se tiene el siguiente resultado:
Teorema 1. 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) (ξ)� ,
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 ��
f (ξ),
24
(b−a)3 ��
E(f ) = − 12 f (ξ),
5
E(f ) = − (b−a)
f ���� (ξ).
90
Regla del punto medio: E(f ) =
Regla del trapecio:
Regla de Simpson:
La obtención de las expresiones anteriores (vea el Ejercicio 3) se basa en un teorema del
valor medio para integrales, que establece que para cualquier función α(x) ≥ 0 y toda función
�b
�b
f (x) continua, se cumple: a α(x)f (x) dx = f (ξ) a α(x) dx para cierto ξ ∈ [a, b].
4
CUADRATURA COMPUESTA
Consideremos una partición
∆ = {a = x0 < x1 < . . . < xJ = b} ,
del intervalo [a, b]. En el procedimiento de cuadratura compuesta, se expresa el valor de la
integral como
� b
� x1
� x2
� xJ
I(f ) =
f (x) dx =
f (x) dx +
f (x) dx + · · · +
f (x) dx,
a
x0
x1
xJ−1
� 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.
Respecto al error de la cuadratura compuesta, el error resultará ser la suma de los errores
cometidos en cada intervalo:
E(f ) = E1 (f ) + · · · + EJ (f ),
donde Ej (f ) es el error de la aproximación en el intervalo j-ésimo. Si, como es habitual,
denotamos la longitud de dicho intervalo como hj = xj − xj−1 , y si la fórmula de cuadratura
tiene grado de precisión r, en virtud del Teorema 1, tendremos que
�
�
|Ej (f )| ≤ C �f (r+1) (ξj )� hr+2
,
(2)
j
para algún ξj ∈ [xj−1 , xj ], siempre que la función f sea de clase C r+1 . Por tanto,
J
J
J
�
� (r+1)
� r+2
� (r+1) � �
� (r+1) � r+1 �
r+2
�
�
�
�
�
�
|E(f )| ≤ C
f
(ξj ) hj ≤ C máx f
(x)
hj ≤ C máx f
(x) h
hj .
j=1
x∈[a,b]
j=1
5
x∈[a,b]
j=1
Teniendo en cuenta que h1 + h2 + · · · + hJ = (b − a), concluimos que
�
�
|E(f )| ≤ C(b − a) máx �f (r+1) (x)� hr+1 ,
(3)
x∈[a,b]
donde h = máx1≤j≤J hj es el diámetro de la partición. La expresión anterior indica que el
error E(f ) decaerá como O(hr+1 ).
Ejemplo 1. Estudiemos los errores
relativos |E(f )| / |I(f )| para dos funciones: la función de
√
Bessel f (x) = J2 (x) y g(x) = x. La primera es una función de clase C ∞ en el intervalo [0, 15].
La segunda, en cambio, no es siquiera derivable en [0, 15] (no existe g � (0)). La siguiente tabla
muestra los correspondientes errores de la regla de Simpson compuesta (que tiene grado de
precisión r = 3):
h
|E(f )| / |I(f )|
|E(g)| / |I(f )|
3
9.00 × 10−3
3.85 × 10−3
3/2
4.52 × 10−4
1.36 × 10−3
3/4
2.69 × 10−5
4.81 × 10−4
3/8
1.66 × 10−6
1.70 × 10−4
3/16
1.04 × 10−7
6.01 × 10−5
Puede comprobarse que con f los errores decaen como h4 , mientras que con g sólo lo hacen
como h3/2 . Aunque es posible justificar con rigor este comportamiento, queda fuera del alcance
de este curso. Aquı́ bastará con saber que, si el integrando f no tiene r + 1 derivadas acotadas
en [a, b], el error E(f ) no decaerá como O(hr+1 ).
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.
La idea es comparar la aproximación que proporciona la correspondiente fórmula de
cuadratura en un subintervalo [xj−1 , xj ] de longitud hj : Qj (f ), con la suma de las
(1/2)
(1/2)
correspondientes aproximaciones Qj (f ) + Qj+1/2 (f ) en los intervalos de longitud hj /2:
[xj−1 , xj−1 + hj /2] y [xj−1 + hj /2, xj ]. Esta suma puede considerarse más precisa que la
aproximación en el subintervalo [xj−1 , xj ], ya que, según la expresión del error (2), si la fórmula
� r+2 �
�
�
h
�
es de grado de precisión r tendremos que Ej (f ) = O hr+2
,
mientras
que
E
(f
)
=
O
j
j
2r+1
(note que con ser r solamente 2, la segunda expresión es casi diez veces más pequeña que la
primera).
(1/2)
(1/2)
Abusando de la mencionada mayor precisión, la suma Qj (f ) + Qj+1/2 (f ) puede
considerarse como exacta al compararla con Qj (f ), y por tanto
�
�
(1/2)
(1/2)
Ej (f ) ≈ Qj (f ) − Qj (f ) + Qj+1/2 (f ) .
(4)
Si esta última cantidad es menor que una tolerancia prefijada, se considera que Qj (f ) es una
(1/2)
(1/2)
buena aproximación a Ij (f ), con lo que aún mejor será Qj (f ) + Qj+1/2 (f ), valor con el que
nos quedamos como aproximación Ij (f ).
6
Si por el contrario, la mencionada cantidad es mayor que la tolerancia prefijada, no podemos
(1/2)
(1/2)
considerar como válidos ninguno de los valores obtenidos: Qj (f ), Qj (f ) + Qj+1/2 (f ) y
tendremos que repetir el proceso que hemos seguido con el intervalo [xj−1 , xj ], con cada uno
de los intervalos de longitud hj /2: [xj−1 , xj−1 + hj /2] y [xj−1 + hj /2, xj ] (tras dividir la tolerancia
prefijada por 2, hemos multiplicado por 2 las cantidades a calcular).
�
�
La idea de fondo es que en la cota de error (2), el valor de �f (r+1) (ξj )� puede variar mucho
de unos subintervalos [xj−1 , xj ] a otros, con lo que en unos subintervalos la aproximación Qj
será válida mientras que otros se deberán subdividir para que las correspondientes
longitudes
� (r+1) �
�
�
de los mismos, al ser más pequeñas, compensen por el mayor tamaño de f
.
Veamos un esquema del procedimiento para el caso de la regla de los trapecios a la integral de
una función en el intervalo [0, 1]. Si comparamos las aproximaciones de la regla de los trapecios,
y la de la regla de los trapecios compuesta con dos subintervalos:
Q∆0 (f )
Q∆1 (f )
Q∆0 (f ) − Q∆1 (f )
podemos ver que, en el segundo caso, el error es más pequeño en el intervalo [1/2, 1] que en el
intervalo [0, 1/2], ya que el interpolante lineal a trozos en este último intervalo se ajusta mucho
peor a la función que en el otro intervalo, donde la función es casi una recta.
El ordenador no puede ver, por lo que simplemente resta las dos aproximaciones para tener
una estimación del error de la primera. La diferencia de ambas es excesivamente grande como
para considerar que se ha aproximado bien la integral, por lo que pasa a subdividir los dos
intervalos [0, 1/2] y [1/2, 1] y a calcular las correspondientes aproximaciones:
Q∆1 (f )
Q∆2 (f )
7
Q∆1 (f ) − Q∆2 (f )
Ahora el ordenador puede detectar que la aproximación que tenı́a en el intervalo [1/2, 1] era
lo suficientemente buena. En cambio, no es ası́ con la que tenı́a en [0, 1/2].
Puede darse por buena la última aproximación a la integral en [1/2, 1] calculada, por lo que
el ordenador ya no vuelve a preocuparse de ese intervalo, y pasa a subdividir en dos cada uno
de los intervalos [0, 1/4] y [1/4, 1/2] y a calcular las correspondientes aproximaciones:
Q∆2 (f )
Q∆3 (f )
Q∆2 (f ) − Q∆3 (f )
Ahora el ordenador detecta que la aproximación a la integral en el intervalo [1/4, 1/2] que
calculó en el paso anterior era buena, mientras que en el intervalo [0, 1/4] no ocurre lo mismo:
Por ello, se da por buena la aproximación calculada en este paso en el intervalo [1/4, 1/2], y se
procede a subdividir en dos cada uno de los intervalos [0, 1/8] y [1/8, 1/4]:
Q∆3 (f )
Q∆4 (f )
Q∆3 (f ) − Q∆4 (f )
Ahora se detecta que las aproximaciones a las integrales en los intervalos [0, 1/8] y [1/8, 1/4]
que se calcularon en el paso anterior eran lo suficientemente precisas, por lo que se dan como
válidas y se concluye la aproximación a la integral.
Observe entonces que la partición que se ha utilizado para aproximar la integral mediante la
regla de los trapecios compuesta es
�
�
1 1 3 1 3 1 3
∆4 = 0, , , , , , , , 1 .
16 8 16 4 8 2 2
Ha sido necesario llegar a intervalos de longitud 1/16, pero el número total de subintervalos
no ha sido 16 (como serı́a el caso de una partición uniforme) sino 8, porque sólo en aquellas
8
partes del intervalo [0, 1] donde ha sido necesario se han utilizado intervalos tan pequeños,
utilizándose intervalos más grandes allı́ donde ha sido posible. Note también que la partición
final era desconocida a priori.
Lo que hemos mostrado aquı́ es, en esencia, lo que hacen los paquetes de cuadratura
modernos. Por ejemplo, el comando quad de Matlab hace un proceso de cuadratura adaptado
como el descrito, utilizando la regla de Simpson en vez de la regla de los trapecios. El comando
quadl utiliza una fórmula de Lobatto de N + 1 nodos con N = 12, y por tanto de 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 aproximar
D(f ) = f � (x∗ ),
D2 (f ) = f �� (x∗ ),
etc.,
es aproximar mediante las derivadas de un polinomio interpolador p adecuado,
D(f ) ≈ p� (x∗ ),
D2 (f ) ≈ p�� (x∗ ),
etc.
Esto dará lugar a fórmulas de la forma
D(f ) ≈ DN (f ) = α0 f (x0 ) + α1 f (x1 ) + · · · + αN f (xN ),
2
D2 (f ) ≈ DN
(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 asociados a los nodos x0 < x1 < . . . < xN : αj = L�j (x∗ ), βj = L��j (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 .
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 � (x∗ ) − DN (f )| ≤ C1 hr máx �f (r+1) (x)� ,
donde h = máx (xj − xj−1 ),
1≤j≤N
x∈[x0 ,xN ]
donde la constante C1 depende de los cocientes (xj+1 − xj )/(xj − xj−1 ). De manera similar, si
una fórmula para aproximar D2 (f ) tiene grado de precisión r, entonces
� �� ∗
�
�
�
2
�f (x ) − DN
(f )� ≤ C2 hr−1 máx �f (r+1) (x)� ,
x∈[x0 ,xN ]
etc.
Si para aproximar la derivada N -ésima: DN (f ), utilizamos el polinomio de grado N basado
en N + 1 nodos:
pN (x) = f [x0 ] + f [x0 , x1 ](x − x0 ) + · · · + f [x0 , . . . , xN ](x − x0 ) . . . (x − xN −1 ),
9
obtenemos la fórmula de derivación numérica:
N
DN (f ) ≈ DN
(f ) = N !f [x0 , . . . , xN ].
Ya comentamos anteriormente que el grado de precisión será al menos N . Un sencillo cálculo
muestra que, para f (x) = xN +1 , se tiene que f [x0 , . . . , xN ] = x0 + x1 + · · · + xN .
Por tanto, la fórmula anterior para aproximar DN (f ) no tiene grado de precisión N +1, salvo
que el punto x∗ donde queremos aproximar la derivada sea justamente
x∗ =
x0 + x1 + · · · + xN
N +1
(5)
Por otro lado, por los mismos argumentos, si para aproximar una derivada de orden k, Dk (f ),
utilizamos un polinomio de grado N ≥ k, por los mismos argumentos antes utilizados, tendremos
que la fórmula tendrá grado de exactitud al menos N , pudiendo ser mayor para alguna elección
de x∗ , que, en general no podremos saber a priori.
Ejemplo 2. Fórmula de dos puntos para f � . Sea
p1 (x) = f [x0 ] + f [x0 , x1 ](x − x0 )
el polinomio interpolador de f de primer grado basado en x0 y x1 . Su derivada es una función
constante:
f (x1 ) − f (x0 )
f � (x∗ ) ≈ p�1 (x∗ ) ≡ f [x0 , x1 ] =
.
(6)
x1 − x0
Los pesos de esta fórmula son α0 = −α1 = −1/(x1 − x0 ) (que no dependen de x∗ ). El grado de
precisión es 1, excepto en x∗ = (x0 + x1 )/2.
Ejemplo 3. Fórmula de tres puntos para f �� . Si derivamos dos veces el polinomio
interpolador de f de segundo grado basado en x0 , x1 y x2 :
p2 (x) = f [x0 ] + f [x0 , x1 ](x − x0 ) + f [x0 , x1 , x2 ](x − x0 )(x − x1 ),
(7)
obtenemos una función constante:
f (x2 )−f (x1 )
(x2 −x1 )
−
f (x1 )−f (x0 )
(x1 −x0 )
2f (x2 )
2f (x1 )
2f (x0 )
−
+
,
x2 − x0
h2 (h1 + h2 ) h1 h2 h1 (h1 + h2 )
(8)
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 2, excepto para x∗ = (x0 + x1 + x2 )/3.
��
∗
f (x ) ≈
p��2 (x∗ )
≡ 2f [x0 , x1 , x2 ] = 2
=
Ejemplo 4. Fórmula de tres puntos para f � . Derivando el polinomio p2 (x) dado en (7), y
evaluando en x = x∗ , se obtiene:
f � (x∗ ) ≈ p�2 (x∗ ) = f [x0 , x1 ] + f [x0 , x1 , x2 ](2x∗ − (x0 + x1 )) =
�
f (x1 )−f (x0 ) � x1 +x2
(x1 ) � ∗
− x∗ + f (x2 )−f
x −
h1
2
h2
= 2
h1 + h2
10
x0 +x1
2
�
(9)
.
En esta fórmula de derivación numérica, se puede observar que los coeficientes de f (x0 ), f (x1 ),
f (x2 ) ya sı́ dependen de x∗ . La fórmula es de grado 2, excepto en dos puntos en los que es de
grado 3. Cuando h1 = h2 = h y x∗ = x1 , esta fórmula se reduce a
f � (x∗ ) ≈
f (x2 ) − f (x0 )
.
2h
(10)
Las fórmulas de derivación numérica que suelen utilizarse en la práctica se basan en nodos
equiespaciados. Las más frecuentes son:
1. La diferencia progresiva. No es nada más que (6) con nodos x0 = x∗ y x1 = x∗ + h:
f � (x∗ ) ≈
f (x∗ + h) − f (x∗ )
.
h
El error es f � (x∗ ) − (f (x∗ + h) − f (x∗ ))/h = f �� (ξ)h/2.
2. La diferencia central. Es un caso particular de (10). La expresión (5) sugiere tomar
como nodos x0 = x∗ − h, x1 = x∗ y x2 = x∗ + h. Dicha fórmula resulta ser:
f (x∗ + h) − f (x∗ − h)
f (x ) ≈
.
2h
�
∗
El error es f � (x∗ ) − (f (x∗ + h) − f (x∗ − h))/(2h) = f ��� (ξ)h2 /3.
3. Diferencia central para la derivada segunda. Esta fórmula se obtiene tomando de
nuevo como nodos x0 = x∗ − h, x1 = x∗ y x2 = x∗ + h en (8), esto es:
f �� (x∗ ) ≈
f (x∗ + h) − 2f (x∗ ) + f (x∗ − h)
.
h2
El grado de precisión de esta fórmula es 3 (véase (5)). De hecho, se tiene que el error es:
f �� (x∗ ) −
f (x∗ + h) − 2f (x∗ ) + f (x∗ − h)
h2
����
=
f
(ξ)
.
h2
12
4. Diferencia central para la derivada tercera. Esta fórmula se obtiene derivando el
polinomio p4 (x) basado en los nodos x0 = x∗ − 2h , x1 = x∗ − h , x2 = x∗ , x3 = x∗ + h y
x4 = x∗ + 2h:
f ��� (x∗ ) ≈
f (x∗ + 2h) − 4f (x∗ ) + 4f (x∗ − h) − f (x∗ − 2h)
.
2h2
�
�
Su grado de precisión es 4, y por tanto el error se acota como C3 h2 máx �f (v) �, con
C3 = 33/60.
La derivación numérica, un problema mal condicionado. Si consideramos una función
arbitraria f y un punto cualquiera x∗ en el que f sea derivable, podemos definir la función
f� (x) = f (x) + � sin((x − x∗ )/�2 ).
11
Observamos que los valores de f y de f� distan poco entre sı́. De hecho,
1
pero f � (x∗ ) − f�� (x∗ ) = ,
�
por lo que el error en la derivada es muy grande. Este mal condicionamiento hace que el uso en
los cálculos con ordenador de las fórmulas de derivación numérica anteriores den lugar a errores
que inicialmente se comportan como O(hp ), pero que posteriormente crecen con h en lugar de
decrecer, debido a la influencia de los errores de redondeo.
En la tabla siguiente mostramos los errores de la diferencia central para la derivada primera,
en caso de f (x) = ex con x∗ = 0, esto es,
� h
�
� e − e−h
�
�
�.
−
1
� 2h
�
|f (x) − f� (x)| ≤ �,
h
Error
10−1
1.66 × 10−3
10−3
1.66 × 10−7
10−5
1.21 × 10−11
10−7
5.26 × 10−10
10−9
2.72 × 10−8
10−13
2.44 × 10−4
Puede apreciarse cómo cambia el comportamiento de error para valores de h inferiores a 10−5 .
Finalmente, señalemos que 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 ].
CUESTIONES
Ejercicio 1. Obtenga los pesos de cuadratura de la fórmula para integrar en el intervalo [0, 1]
basada en nodos 0 y 2/3. ¿Qué grado de precisión tiene?
Ejercicio 2. Idem con la fórmula de nodos 0, 1/2 y 2/3.
Ejercicio 3. Obtener la expresión del error de las fórmulas de cuadratura de la regla del punto
medio y del trapecio que aparecen a continuación del Teorema 1. ¿Se animarı́a también con la
de Simpson?
Ejercicio 4. Estudiar según el valor de c ∈ R el grado de precision de la fórmula basada en
nodos 0 y c para
� 1
f (x) dx.
0
Ejercicio 5. Sabiendo que, para una determinada función f , la regla del trapecio para evaluar
la integral
� 2
f (x)dx ,
0
da el valor 5 y la del punto medio 4, ¿qué valor nos dará la regla de Simpson?
Ejercicio 6. Determine las constantes α, β, γ que hacen que la regla de cuadratura
� 2
f (x)dx � αf (0) + βf (1) + γf (2)
0
tenga el mayor grado de precisión posible ¿Cuál es ese grado?
12
Ejercicio 7. Compruebe, haciendo el desarrollo de Taylor, que:
Dh f (x) =
f (x + h) − f (x − h)
h2
h4 (v)
= f � (x) + f ��� (x) +
f (x) + . . . .
2h
6
120
Calcule el desarrollo de D2h f (x). Combinando linealmente Dh f (x) y D2h f (x), encuentre una
fórmula de cinco puntos basada en los puntos x, x ± h, x ± 2h que aproxime a f � (x) con el menor
error posible. ¿Qué orden tiene la fórmula de derivación numérica resultante? ¿Como podrı́amos
conseguir una fórmula de siete puntos más precisa?
Ejercicio 8. Probar que si f (x) = xN +1 , entonces f [x0 , . . . , xN ] = x0 + x1 + · · · + xN .
Ejercicio 9. Probar que la fórmula (9) es de grado 3 en dos puntos. Calcule dichos puntos.
PROBLEMAS
Problema 1. Este problema trata de mostrar las capacidades y limitaciones de las herramientas
para cuadratura que tenemos a nuestra disposición en Matlab: los comandos quad y quadl.
Lea la ayuda en lı́nea (help quad) de ambos comandos.
1. Aparte de la función que se desea integrar y los extremos de integración, entre los
argumentos de entrada está la tolerancia TOL (se desea que los errores absolutos estén por
debajo de este valor). Para integrar la función f (x) = cos(x) en el intervalo [−π/2, π/2],
elabore una tabla de errores para los valores de la tolerancia, 10−3 , 10−4 , . . . , 10−12 tanto
con el comando quad como con el comando quadl. ¿Son iguales los errores obtenidos, o
parecidos a las correspondientes tolerancias? Si no conociésemos el valor de la integral,
¿calcularlo con dos tolerancias distintas nos darı́a idea del error cometido con la más
grosera?
2. Tal vez en el apartado anterior la función que utilizamos fuese demasiado simple. Pruebe
ahora con
cos(x)
f (x) =
− sen(x) arctan(x),
(11)
1 + x2
(cuya primitiva es F (x) = cos(x) arctan(x)) en el intervalo [−5, 5]. Conteste a las preguntas
del apartado anterior. ¿Qué conclusión podemos sacar?
3. Para las tolerancias 10−3 y 10−12 , mida los tiempos de ejecución de los cálculos hechos en
el apartado anterior. ¿Qué observa? ¿Son mayores o menores estos tiempos de ejecución
que el tiempo de resolución de un sistema Ax = b con A de orden 1000? ¿Que conclusión
extraemos?
4. Para la función (11) de los apartados anteriores, y para xn = 10·2n , n = 1, . . . , 6, calcule el
error de aproximar la integral de f en los intervalos [−xn , xn ]. Utilice T OL = 10−8 para el
comando quad y T OL = 10−12 para quadl. ¿Qué observa? Repita los cálculos obteniendo,
además del valor de la integral, el número de evaluaciones de función que necesitó cada
comando. ¿Qué observa? ¿Dan algún aviso los comandos de Matlab? ¿Cómo podemos
calcular las integrales para los dos últimos valores de n?
13
Problema 2. Considere el interpolante por splines not-a-knot que interpola los valores de x e y
de la siguiente tabla.
xj
yj
0
10
2
10
3
10
5
10
6
10
8
10
9
10.5
11
15
12
50
14
60
15
85
1. ¿Cómo podemos calcular el área que queda entre dicho interpolante y el eje horizontal.
2. Calcule dicha área con un error inferior a 10−4 .
3. ¿Podemos disponer de la derivada de dicho interpolante en cada punto? ¿Cómo podemos
entonces calcular la longitud del mismo, sabiendo que la longitud de una curva (x, f (x)),
x ∈ [a, b] viene dada por
� b�
1 + |f � (x)|2 dx?
a
4. Calcule dicha longitud con un error inferior a 10−4 .
Problema 3. Considere la función
1+x
f (x) = √ .
x
1. Dibuje de manera esquemática la función en el intervalo [0, 3].
¿Cómo se comporta la función cerca del origen? ¿Y cerca de x = 1?
�3
¿Cree que la integral 0 f (x) dx puede dar un valor finito?
2. Calcule numéricamente el valor de la integral anterior en el intervalo [0, 3] con varios
valores de la tolerancia hasta conseguir 8 cifras decimales exactas.
√
Compare estos resultados con 4 3.
�3
A la vista de estos resultados, ¿cree que la integral 0 f (x) dx es convergente o divergente?
3. Calcule numéricamente la derivada de f en el punto x = 1 empleando un esquema de
diferencias centradas con h = 0.1, 0.05, 0.001, . . . , 0.5 10−6 . Escriba los resultados en forma
de tabla con dos columnas; h y f � (1).
4. La curvatura de una gráfica y = f (x) viene dada por la siguiente expresión
κ(x) =
f �� (x)
.
[1 + f � (x)](3/2)
Empleando de nuevo un esquema de diferencias centradas calcule la curvatura en x = 1 de
f recogiendo los datos en una tabla con tres columnas; h, κ(1) y el error cometido teniendo
en cuenta que el valor exacto es κexact (1) = 1/2.
Dibuje el error frente a h en doble escala logarı́tmica y explique el resultado obtenido.
A la vista de estos resultados ¿qué tipo de punto es x = 1?.
14
EJERCICIOS DE EXÁMENES DE CURSOS ANTERIORES
Segundo Parcial. Curso 2008-2009.
Ejercicio 1.
(a) Aproxime el valor de la integral
�
1
cos(πx) dx,
−1
mediante la regla de Simpson simple.
(b) Determine el valor de las constantes α y c que hacen que la regla de cuadratura
� 1
f (x)dx � α (f (−c) + f (0) + f (c)) ,
−1
tenga el mayor grado de precisión posible ¿Cuál es ese grado?
(c) Aproxime el valor de la integral del primer apartado mediante la regla anterior.
Examen Final. Curso 2008-2009.
Ejercicio 6. Calcule la integral
�
1
−1
|x|dx,
mediante la regla del trapecio compuesta y la regla de Simpson, tomando como nodos de
cuadratura en ambos casos: x0 = −1, x1 = 0 y x2 = 1. ¿Cuál de las dos aproximaciones es
más exacta? ¿Por qué?
Segundo Parcial. Curso 2009-2010.
Ejercicio 3. Queremos obtener aproximadamente el valor de la integral:
�
2
xf (x) dx.
0
Determine los valores de A, B y C que hacen que la fórmula de cuadratura
� 2
xf (x) dx ≈ Af (0) + Bf (1) + Cf (2)
0
tenga grado de precisión máximo. ¿Cuál es ese grado de precisión?
Usando esta fórmula de cuadratura, aproxime el valor de la integral
� 2
x cos(πx) dx.
0
15
Examen Final. Curso 2009-2010.
Ejercicio 7. Obtener el grado de precisión de la siguiente regla de cuadratura:
� � √ �
� √ ��
� 1
2
− 2
2
f (x) dx ≈
f
+ f (0) + f
.
3
2
2
−1
Evaluar aproximadamente la integral
�
1
arccos(x) dx,
−1
mediante la regla anterior, mediante la regla del trapecio y la de Simpson. ¿Qué regla serı́a la
mejor? ¿Y la peor? ¿Por qué?
Segundo Parcial. Curso 2010-2011.
Ejercicio 2.
1. Escriba la expresión de la fórmula de Simpson compuesta en el intervalo [0, 1] para una
1
partición uniforme de tamaño de paso h = 2N
: ∆ = {x0 = 0, x1 = 2h, x2 = 4h, . . . , xN =
1}.
2. Defina grado de precisión de una fórmula de cuadratura. Determine el grado de precisión
de la fórmula de Simpson compuesta en el intervalo [0, 1] con partición {0, 1/2, 1}.
3. �Determine el valor que asigna la fórmula de Simpson compuesta del apartado anterior a
1
sen(πx) dx.
0
Examen Final. Curso 2010-2011.
Ejercicio 5. Determine el valor de la constante α que hace que la regla de cuadratura
� �
�
�
��
� b
2a + b
a + 2b
f (x)dx � α f
+f
,
3
3
a
tenga el mayor grado de precisión posible ¿Cuál es ese grado?
�1
Escriba la correspondiente regla compuesta con dos subintervalos para obtener −1 f (x)dx.
Aplı́quela para aproximar
�
1
sen(πx)dx
−1
16
Descargar