You are on page 1of 14

Capı́tulo 3

Integración numérica

Contenidos del capı́tulo


3.1 Interpolación de Lagrange . . . . . . . . . . . . . . . . . . . . 32
3.2 Fórmulas de cuadratura numérica basadas en polinomios de
interpolación . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.3 Fórmulas de integración compuesta . . . . . . . . . . . . . . 35
3.3.1 ¿Qué es la integración numérica compuesta? . . . . . . . . . . . 35
3.3.2 La fórmula del trapecio compuesta . . . . . . . . . . . . . . . . 35
3.3.3 La regla de Simpson compuesta . . . . . . . . . . . . . . . . . . 36
3.4 Integración adaptativa . . . . . . . . . . . . . . . . . . . . . . 38
3.4.1 Concepto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.4.2 Reglas de cuadratura adaptativa en Matlab . . . . . . . . . . 38
3.4.3 Ejemplo de comparación de distintos métodos de integración . 40

La integración numérica es una operación frecuente en computación cientı́fica. Ob-


tener la primitiva de una función puede ser complicado, incluso imposible. De hecho
muchas funciones se definen a partir de integrales que no pueden calcularse de manera
exacta, como pueden ser la función de error, las funciones logaritmo y seno integral o la
función gamma de Euler, por citar algunos ejemplos. Por otro lado, cuando únicamente
conocemos el valor de la función en un conjunto de puntos (xi , fi ), como ocurre con los
resultados de un experimento o de simulaciones numéricas, sus integrales sólo se pueden
obtener numéricamente, lo cual motiva aún más la necesidad de poder obtener derivadas
e integrales a partir de conjuntos discretos de datos.
El término integración numérica cubre varios aspectos distintos en el campo del
cálculo numérico, como la evaluación de integrales o la solución de ecuaciones diferen-
ciales ordinarias, en este capı́tulo lo emplearemos para referirnos a la evaluación numérica
de integrales definidas, también conocido como cuadratura numérica. Este término de
cuadratura nos recuerda la técnica más elemental para hallar el área debajo de una fun-
ción: dibujar la misma en papel cuadriculado y contar el número de cuadrados bajo la
curva. Los algoritmos de cuadratura modernos son mucho más avanzados, modificando
adaptativamente el paso de integración durante la evaluación de la integral.

31

Versión del 23/1/2007


http://matematicas.uclm.es/ind-cr/metnum/index.html
32 Métodos Numéricos

Vamos a estudiar métodos para obtener aproximaciones a la integral de una función


de la forma
Z b n
X
f (x)dx ≈ Ak f (xk ).
a k=0

Para obtener los coeficientes Ak se puede proceder de diversas maneras

3.1 Interpolación de Lagrange


Se habla de interpolación cuando se desea construir una función f (x) que cumple de
manera exacta un número de condiciones suficientes para determinarla por completo
como puede ser que pase por una serie de puntos dados (x0 , f0 ), (x1 , f1 ), ..., (xn , fn ).
En este apartado nos centraremos en los aspectos de la interpolación elementales que
nos interesan de cara a su uso posterior en el desarrollo de métodos para aproximar
integrales.
El problema que pretendemos resolver es el de aproximar una función (o un conjunto
de datos discretos) por un polinomio utilizando los valores de la función fi = f (xi ) en
un conjunto de N + 1 puntos xi , i = 0, ..., N . Vamos a plantearnos cómo encontrar
un polinomio p(x) de orden N tal que fi = p(xi ). A este polinomio se le denomina
polinomio de interpolación de Lagrange de los datos (xi , f (xi )). Es posible aproximar
por otros tipos de funciones, por ejemplo las trigonométricas, pero en este capı́tulo nos
centraremos en la interpolación por polinomios, también denominada interpolación de
Lagrange.
Si x0 , x1 , ..., xN son N + 1 puntos diferentes, se pueden definir los N + 1 polinomios
de orden N de Lagrange ℓj (x), j = 0, .., N , asociados a estos puntos como:

N
Y x − xk (x − x0 )(x − x1 )...(x − xj−1 )(x − xj+1 )...(x − xN )
ℓj (x) = = .
xj − xk (xj − x0 )(xj − x1 )...(xj − xj−1 )(xj − xj+1 )...(xj − xN )
k=0,k6=j

Estos polinomios cumplen que


(
1, i = j
ℓj (xi ) =
0, i 6= j

Entonces, el producto ℓj (xi )fj es igual a 0 en todos los puntos xi , i = 0, ..., n, excepto
en xj donde es igual a fj . Por ello, el polinomio:

N
X
p(x) = ℓj (x)fj
j=0

satisface que p(xi ) = fi y es por tanto, el polinomio de interpolación que vamos buscando.
A esta forma de obtener el polinomio de interpolación se la denomina forma de Lagrange,
aunque el polinomio de interpolación de grado mı́nimo es único independientemente del
método que se utilice para construirlo.

Versión del 23/1/2007


http://matematicas.uclm.es/ind-cr/metnum/index.html
Integración numérica 33

Como ejemplo de aplicación de esta forma de obtener el polinomio de interpolación


vamos a construir el polinomio de Lagrange de una función f que cumpla f (−1) =
4, f (0) = 1 y f (1) = 0. Aplicando la fórmula anterior obtenemos

(x − 0)(x − 1) (x − (−1))(x − 1) (x − (−1)(x − 0)


p(x) = 4+ 1+ 0 = x2 − 2x + 1.
(−1 − 0)(−1 − 1) (0 − (−1))(0 − 1) (1 − (−1))(1 − 0)
Si el polinomio de interpolación de Lagrange se construye para aproximar una función
f (x) a partir de sus valores en unos pocos puntos tiene sentido plantearse si es posible
estimar a priori el error de dicha aproximació
Teorema. Si x0 , x1 , ..., xN son N + 1 puntos distintos contenidos en el intervalo [a, b]
y f (x) es una función derivable N + 1 veces en (a, b), entonces

(N +1) (x − x0 )(x − x1 ) · · · (x − xN )

E = |f (x) − p(x)| ≤ máx f (x)
x∈(a,b) (N + 1)!

Nosotros utilizaremos esta cota fundamentalmente en el desarrollo de otros métodos


numéricos.

3.2 Fórmulas de cuadratura numérica basadas en polino-


mios de interpolación
Supongamos que tenemos un conjunto de datos equiespaciados y que queremos calcular
la integral de la función definida por ellos sobre el intervalo de definición de los mismos.
Podemos construir el polinomio de interpolación de Lagrange que pasa por estos datos
e integrarlo, esto es
Z b Z b
f (x)dx = Ln (x)dx
a a
Integrando el término de error obtenemos una expresión para el error
Z b Z b
f (n+1) (z)
En (x)dx = (x − x0 )(x − x1 ) · · · (x − xn ) dx, x0 < z < xn
a a (n + 1)!
Si el dominio de integración [a, b] coincide con [x0 , xn ] se obtienen las llamadas fórmu-
las de Newton-Cotes cerradas, que son un conjunto de fórmulas de integración para di-
ferentes grados del polinomio de interpolación. Normalmente los polinomios con grados
bajos son los más utilizados.
Por ejemplo, si conocemos la función en dos puntos (x0 , f0 ) y (x1 , f1 ) el polinomio
de interpolación es P (x) = f0 + x−x h (f1 − f0 ) y entonces:
0

Z x1 Z x1  Z x1
f ′′ (z)

x − x0
f (x)dx = f0 + (f1 − f0 ) dx + (x − x0 )(x − x1 ) dx
x0 x0 h x0 2
h f ′′ (z) x1
Z
= f0 h + (f1 − f0 ) + (x − x0 )(x − x1 )dx
2 2 x0
h f ′′ (z)h3 h
= (f0 + f1 ) + = (f0 + f1 ) + O(h3 ).
2 12 2

Versión del 23/1/2007


http://matematicas.uclm.es/ind-cr/metnum/index.html
34 Métodos Numéricos

Regla de trapecios Regla de Simpson

Figura 3.1: Visión gráfica del modo de proceder de la regla de trapecios (interpolando
sobre el intervalo de integración linealmente con dos puntos para estimar el área) y la re-
gla de Simpson (interpolación cuadrática con tres puntos). El área estimada corresponde
a la zona sombreada.

donde se ha usado el teorema del valor medio para integrales. De la misma forma pueden
obtenerse las fórmulas de Newton-Cotes de grados superiores que se muestran tabla
siguiente

Fórmulas de Newton-Cotes

n=1 Regla del trapecio


x1
h 1
Z
f (x)dx = (f0 + f1 ) − h3 f (2) (z)
x0 2 12

n=2 Regla de Simpson


x2
h 1
Z
f (x)dx = (f0 + 4f1 + f2 ) − h5 f (4) (z)
x0 3 90

n=3 Regla de 3/8


x3
3h 3
Z
f (x)dx = (f0 + 3f1 + 3f2 + f3 ) − h5 f (4) (z)
x0 8 80

n=4 Fórmula de Milne


x4
2h 8 7 (6)
Z
f (x)dx = (7f0 + 32f1 + 12f2 + 32f3 + 7f4 ) − h f (z)
x0 45 945

R1
Como ejemplo si aplicamos las fórmulas anteriores al cálculo de 0 xex dx obtenemos

Versión del 23/1/2007


http://matematicas.uclm.es/ind-cr/metnum/index.html
Integración numérica 35

Fórmula Trapecios Simpson 3/8 Milne


Resultado 1.359141 1.002621 1.001170 1.000006

3.3 Fórmulas de integración compuesta


3.3.1 ¿Qué es la integración numérica compuesta?
Si la región donde se quiere calcular la integral es grande o la función tiene un com-
portamiento complicado, las aproximaciones obtenidas con las fórmulas anteriores son
malas. Para calcular la integral en esos casos es más conveniente subdividir el interva-
lo de integración en otros más pequeños e ir aplicando sucesivamente alguna de estas
fórmulas de integración que se denomina a veces integración compuesta.

3.3.2 La fórmula del trapecio compuesta


Por ejemplo, para evaluar la integral de una función en un intervalo [a, b] mediante la
regla del trapecio podemos dividir el intervalo en n subintervalos y aproximar la integral
en cada subintervalo por medio de la fórmula del trapecio. De esta forma la integral en
[a, b] es igual a la suma de todas las integrales parciales. El método es más sencillo si
todos los subintervalos tienen igual longitud h. Entonces, usando el conjunto de valores
(xi , fi ) en n + 1 puntos equiespaciados tenemos
Z xi+1
h
f (x)dx ≃ (fi + fi+1 )
xi 2

De este modo, la integral entre x1 = a y xn = b puede aproximarse por

xn n−1
h h
Z X
f (x)dx ≃ (fi + fi+1 ) = (f0 + 2f1 + 2f2 + · · · + 2fn−1 + fn )
x0 2 2
i=0

La expresión anterior se denomina fórmula del trapecio compuesta. Aplicando la fórmula


del trapecio compuesta para obtener la integral se aproxima la función por una recta
diferente definida en cada subintervalo.
El error cometido al aproximar la integral por medio de la fórmula del trapecio com-
puesta es la suma de los errores cometidos al aproximar la integral en cada subintervalo,
esto es
1 3  ′′ 1 b − a 2 ′′
h f (z1 ) + · · · + f ′′ (zn ) = − h3 nf ′′ (z) = −

Etrap = − h f (z)
12 12 12
donde z1 ∈ (x0 , x1 ), ..., zn ∈ (xn−1 , xn ), y z ∈ (x0 , xn ). Expresión esta última que puede
demostrarse a partir del teorema del valor intermedio.
El error local de cada subintervalo varı́a cúbicamente con h mientras que el global
varı́a de un modo cuadrático. La ecuación anterior nos permite acotar el error siempre
que se conozca f ′′ (x) mediante:

b−a 2
h máx f ′′ (z)

E≤
12 z∈(a,b)

Versión del 23/1/2007


http://matematicas.uclm.es/ind-cr/metnum/index.html
36 Métodos Numéricos

R1
Por ejemplo, si calculamos de nuevo 0 xex dx usando 10 subintervalos tendremos
       
1 1 2 9
I= f (0) + 2f + 2f + · · · + 2f + f (1) = 1.00369604,
20 10 10 10
que mejora la precisión de la regla del trapecio simple, pero que aún dista de conseguir la
precisión de las fórmulas de alto orden a pesar de tener un coste computacional superior
a ellas (nueve multiplicaciones y sumas mientras que la fórmula de Simpson requerı́a
tan sólo dos). En general es más conveniente y eficiente utilizar fórmulas de orden alto
que utilizar muchos puntos en las fórmulas sencillas.
El siguiente código Matlab implementa la regla del trapecio compuesta,

function I = trapecio(fun,x)
%
% I=trapecio(fun,x)
%
% Calcula la integral de fun sobre la malla definida por x
%
% Variables de entrada:
% fun: nombre de la funcion
% x: Malla sobre la que se realiza el calculo
%
% Variable de salida:
% I: valor de la integral
%
h=x(2)-x(1); M = length(x);
f=feval(fun,x);
I = (2*sum(f)-f(1)-f(M))*h/2;

Obsérvese como el manejo de las funciones vectoriales de Matlab (en este caso sum)
simplifica los códigos enormemente. Matlab incorpora una rutina para aproximar in-
tegrales mediante trapecios denominada trapz.

3.3.3 La regla de Simpson compuesta


Para obtener la integral usando la regla de Simpson compuesta se puede proceder del
mismo modo que en el apartado anterior pero calculando cada integral parcial con tres
puntos.
Dividamos el intervalo entre a y b en n subintervalos de longitud h. La integral cada
dos subintervalos se aproxima por medio de la fórmula de Simpson. De este modo si
conocemos el valor de la función en n + 1 puntos: x0 , ..., xn igualmente distanciados, el
valor de la integral cada dos intervalos está dado por la regla de Simpson simple. La
integral en el intervalo [a, b] = [x0 , xn ], será la suma de la integrales parciales obtenidas
cada 2 subintervalos:
Z b n−2
X h
f (x)dx = (fi + 4fi+1 + fi+2 )
a 3
i=0 (par)
h
= (f0 + 4f1 + 2f2 + 4f3 + · · · + 2fn−2 + 4fn−1 + fn )
3

Versión del 23/1/2007


http://matematicas.uclm.es/ind-cr/metnum/index.html
Integración numérica 37

h h h h

Regla de trapecios compuesta Regla de Simpson compuesta


(dos puntos) (dos puntos)

Figura 3.2: Funcionamiento de la regla de trapecios y de Simpson compuestas añadiendo


puntos en el interior del intervalo para aumentar la precisión de la integración (en la
figura se muestra sólo dos puntos).

Esta fórmula se denomina fórmula de Simpson compuesta y requiere que n sea un número
par (el número de puntos en los que se evalúa la función, que es igual a n + 1, es entonces
impar). El término de error es:
1 4 h (4) i 1 n b − a 4 (4)
Esimp = − h f (z1 ) + · · · + f (4) (zn ) = − h5 f (4) (z) = − h f (z)
90 90 2 180
donde z1 ∈ (x0 , x1 ), ..., zn ∈ (xn−1 , xn ), y z ∈ (a, b). Por tanto, una cota para el error, si
existe f (4) (x) en (a, b) viene dada por
b−a 4
E≤ h máx f (4) (z)

180 z∈(a,b)

R1
Apliquemos la regla de Simpson compuesta para aproximar la integral 0 xex dx = 1.

1
I= (f0 + 4f1 + 2f2 + 4f3 + 2f4 + · · · + 2f8 + 4f9 + f10 ) = 1.00000437,
30
que mejora bastante el resultado obtenido mediante la regla de Simpson simple. Como
f (4) (x) = (x + 4)ex el error se acota por
1 1
E≤ (0.1)4 máx |(z + 4)ez | ≤ (0.1)4 4e = 0.000006
180 z∈(0,1) 180
El siguiente código Matlab implementa la regla de Simpson compuesta,

function I = simpson(fun,x)
%
% I=simpson(fun,x)
%
% Calcula la integral de fun sobre la malla definida por x
%
% Variables de entrada:

Versión del 23/1/2007


http://matematicas.uclm.es/ind-cr/metnum/index.html
38 Métodos Numéricos

% fun: nombre de la funcion


% x: Malla sobre la que se realiza el calculo
%
% Variable de salida:
% I: valor de la integral
%
h=x(2)-x(1); M = length(x);
f=feval(fun,x);
I = (2*sum(f(2:2:length(f)-1))+2*sum(f)-f(1)-f(M))*h/3;

3.4 Integración adaptativa


3.4.1 Concepto
Tal y como hemos visto en las secciones anteriores, la forma más sencilla de evaluar
numéricamente una integral es dividir el intervalo de integración en pasos equiespaciados
de anchura h, evaluar la función en esos puntos y construir una suma de coeficientes por
valores de la función en los puntos para aproximar el valor de la integral. La cuadratura
adaptativa involucra la selección cuidadosa de los puntos donde la función va a ser
evaluada, de manera que podamos calcular la integral con una precisión especificada
realizando el mı́nimo número posible de evaluaciones de la función. La propiedad aditiva,
una de las propiedades fundamentales de las integrales definidas, es la base para la
cuadratura adaptativa. Si c es cualquier punto entre a y b, entonces
Z b Z c Z b
f (x)dx = f (x)dx + f (x)dx
a a c

La idea es que si podemos aproximar cada uno de los integrandos de la parte derecha
con una precisión dentro de una tolerancia especificada, la suma de ambos dará entonces
el resultado deseado. Si no, podemos aplicar recursivamente la propiedad aditiva a cada
uno de los intervalos [a, c] y [c, b]. De este modo, el algoritmo resultante se adapta
automáticamente al integrando, partiendo el intervalo en subintervalos con un espaciado
fino en las partes donde el integrando varı́a rápidamente y con espaciados mayores donde
el integrando varı́a lentamente.

3.4.2 Reglas de cuadratura adaptativa en Matlab


La función Matlab quad utiliza una regla de Simpson junto con una estrategia de
adaptación recursiva como la descrita anteriormente. En cambio, la función quadl usa
una cuadratura adaptativa basada en métodos de orden superior que la regla de Simpson,
por lo que a menudo quadl requiere un menor número de evaluaciones de la función
que quad para obtener una misma precisión especificada al integrar funciones suaves.
La “l” en el nombre de la función proviene de la cuadratura de Lobatto, que emplea
puntos no equiespaciados para ası́ conseguir un método de orden más elevado.
Para el cálculo de integrales múltiples se puede seguir la misma estrategia pero
integrando alternativamente sobre las distintas dimensiones que es lo que hacen las
funciones dblquad y triplequad.

Versión del 23/1/2007


http://matematicas.uclm.es/ind-cr/metnum/index.html
Integración numérica 39

Por ejemplo, para calcular


1
1
Z
√ dx
0 1 + x4
tendrı́amos que hacer

f = inline(’1./sqrt(1+x.ˆ4)’);
Q = quad(f,0,1)

Q =
0.9270

En el caso de manejar la versión 7 de Matlab, también podemos utilizar el comando


@ y definir la función como

f = @(x) 1./sqrt(1+x.ˆ4);

Por supuesto, también podemos crear un archivo .m en vez de emplear la llamada en


lı́nea. Nótese que, en todos los casos, la forma apropiada de definir la función a integrar
es en la forma vectorial de Matlab, es decir, con puntos antes de multiplicaciones,
potencias y divisiones para indicar de este modo que son operaciones componente a
componente entre vectores.
También son muy frecuentes las integrales que dependen de parámetros. Por ejemplo,
la función beta se define como
Z 1
β(z, w) = tz−1 (1 − t)w−1 dt.
0

Obsérvese que, a pesar de depender de más de un parámetro, la función viene definida


mediante una integral simple. Supongamos que queremos calcular β(8/3, 10/3) con una
tolerancia de 10−6 . Para ello bastarı́a con hacer

betaf = @(t,z,w) t.ˆ(z-1).*(1-t).ˆ(w-1)


z = 8/3; w = 10/3; tol = 1e-6; trace = [];
Q = quad(betaf,0,1,tol,trace,z,w)

Q =
0.0348

en donde puede observarse con facilidad el orden en el que se pasan los diferentes paráme-
tros a la función quad (y de igual modo a quadl). El argumento pasado después de
la tolerancia tol se llama trace; si su valor no es vacı́o o cero, la rutina muestra por
pantalla el avance de los cálculos que va realizando: número de evaluaciones de la fun-
ción, lı́mites y anchura de los subintervalos empleados y aportación de cada uno de ellos
al total de la integral calculada.

Versión del 23/1/2007


http://matematicas.uclm.es/ind-cr/metnum/index.html
40 Métodos Numéricos

100

80

60

40

20

0
0 0.2 0.4 0.6 0.8 1
x

Figura 3.3: Función humps.

3.4.3 Ejemplo de comparación de distintos métodos de integración


Vamos a comparar con un ejemplo las rutinas adaptativas de Matlab con los métodos
compuestos utilizando la función humps que ya viene predefinida en Matlab. La función
se define como
1 1
h(x) = + −6
(x − 0.3) + 0.01 (x − 0.9)2 + 0.04
2

y su gráfico para 0 ≤ x ≤ 1 puede verse en la figura 3.3. Como puede observarse, la


función presenta un pico relativamente fuerte cerca de x = 0.3 y otro de menor amplitud
alrededor de x = 0.9.
Con la toolbox de cálculo simbólico es posible integrar de forma analı́tica h(x). Por
ejemplo, haciendo
syms x
h = 1/((x-0.3)ˆ2+0.01) + 1/((x-0.9)ˆ2+0.04) - 6;
I = simple(int(h,0,1))
Qexact = double(I)

I =
5*atan(16/13)-6+10*pi
Qexact =
29.85832539549867

obtenemos tanto el valor exacto de la integral definida como su valor numérico en coma
flotante.
El esfuerzo requerido por una rutina de cuadratura para aproximar una integral
dentro de una precisión especificada puede medirse contando el número de veces que el
integrando es evaluado. A continuación se muestra un ejemplo involucrando las funcio-
nes humps y quadl.

Versión del 23/1/2007


http://matematicas.uclm.es/ind-cr/metnum/index.html
Integración numérica 41

for k = 1:12
tol = 10ˆ(-k);
[Q,fcount] = quadl(@humps,0,1,tol);
err = Q - Qexact;
fprintf(’ %8.0e %21.14f %7d %13.3e \n’,tol,Q,fcount,err)
end

tol Q fcount err


1e-01 29.85803034289291 48 -2.951e-04
1e-02 29.85832829257638 78 2.897e-06
1e-03 29.85832548167252 108 8.617e-08
1e-04 29.85832548167252 108 8.617e-08
1e-05 29.85832539547769 168 -2.099e-11
1e-06 29.85832539568428 198 1.856e-10
1e-07 29.85832539550114 348 2.466e-12
1e-08 29.85832539549867 438 -3.553e-15
1e-09 29.85832539549866 618 -1.066e-14
1e-10 29.85832539549867 768 -7.105e-15
1e-11 29.85832539549867 1008 -7.105e-15
1e-12 29.85832539549867 1608 0.000e+00

Utilizando métodos de paso fijo el número de evaluaciones de la función se dispara con


el paso de modo que tomando 1000 subintervalos en [0,1] ya tenemos 1000 evaluaciones
de la función y h = 0.001. En ese caso por ejemplo utilizando trapecios
x = 0:0.001:1; f = humps(x); It = trapz(f)*0.001

Claramente se observa que a medida que se disminuye la tolerancia el número de eva-


luaciones de la función se incrementa a la vez que se reduce el error. Véase también que
el error es siempre menor que la tolerancia, normalmente por un factor considerable.

Ejercicios

e −x
3.1 Calcular las integrales de las funciones f (x) = sen 4x en [0, π] y f (x) = 1+e x

en [−2, 2] para distintas particiones del intervalo mediante la regla de Simpson


compuesta. Comparar los resultados con los valores exactos.
3.2 Obtener las fórmulas de Newton-Cotes para n = 2 y n = 3.
3.3 Obtener una fórmula de integración para el caso de tres puntos no equiespacia-
dos x0 , x1 y x2 usando el polinomio de interpolación de Lagrange.
R1 2
3.4 Acotar el error que se comete al calcular la integral I = −1 e−x dx mediante
la regla de los trapecios usando diez divisiones del intervalo (n = 10). ¿Podrı́as
estimar el error que se comete en este cálculo utilizando la información de cual
es el resultado con n = 5?

Versión del 23/1/2007


http://matematicas.uclm.es/ind-cr/metnum/index.html
42 Métodos Numéricos

3.5 Demostrar que la regla de Simpson es exacta para polinomios de grado cúbico.
¿Qué ocurre con la regla de trapecios?
3.6 La regla de orden n = 8 utiliza la fórmula

x8
h
Z
f (x)dx = (3956f0 + 23552f1 − 3712f2 + 41984f3
x0 14175
−18160f4 + 41984f5 − 3712f6 + 23552f7 + 3956f8 )

Estudiar su funcionamiento aplicándola a las funciones del ejercicio 3.1


3.7 Supongamos que aproximamos
Z 1
f (x)dx = af (1/4) + bf (1/2) + cf (3/4).
0

Determinar quienes son a, b, c. Comparar esta fórmula con la regla de Simpson.


2
R x −x2
3.8 La función de error se define como erf(x) = π1/2 0 e dx. Tabular la función
de error usando la regla del trapecio con x = 0.0, 0.1, 0.2, 0.3, 0.4 y 0.5. Usar
20, 40 y 100 subintervalos y comparar los resultados con los valores exactos
(Matlab incorpora la función de error erf). Acotar el error que se comete en
cada caso.
e−x
3.9 Calcular la integral f (x) = 1+ex en [−2, 2] utilizando la regla del trapecio
compuesta con 10, 100 y 1000 subintervalos. Estudiar la disminución del error
con h. Comparar el resultado con el que se obtiene directamente utilizando la
fórmula de Milne.
3.10 ¿Para qué funciones proporciona el método de los trapecios compuesto un re-
sultado exacto? ¿Depende el resultado del número de puntos que se utilicen?
R5
3.11 Determinar el valor de h necesario para aproximar la integral: 0 e−x sen xdx
usando la regla de Simpson compuesta y la regla del trapecio compuesta con
precisión 10−5 .
3.12 Escribir una función Matlab que implemente la regla de Simpson compuesta.
3.13 Tabular la función de error en x = 0.0, 0.1, 0.2, 0.3, 0.4 y 0.5 usando la regla de
Simpson con n = 20 y n = 40 subintervalos y comparar los resultados con los
valores exactos.
e−x
3.14 Calcular la integral f (x) = 1+ex en [−2, 2] utilizando la regla de Simpson
compuesta con 10, 20 y 100 subintervalos. Estudiar la disminución del error
de truncación con h. Comparar el resultado con el que se obtiene directamente
utilizando la fórmula de Milne.
3.15 Derivar una regla de Simpson compuesta para el caso en que los puntos donde
se conoce la función no estén equiespaciados. ¿Es posible decir algo sobre el
error?.

Versión del 23/1/2007


http://matematicas.uclm.es/ind-cr/metnum/index.html
Integración numérica 43

3.16 La función de Bessel de orden cero puede definirse como

1 π
Z
J0 (x) = cos (x sen t) dt.
π 0

Utilizar esta definición de J0 (x) para calcular los siete primeros ceros positivos
de esta función r0 , r1 , ..., r6 . Comprobar gráficamente que si x no es demasiado
grande:
x2 x2 x2
    
J0 (x) ≃ 1 − 2 1 − 2 ··· 1 − 2
r0 r1 r6

3.17 Usa quad o quadl para intentar encontrar con la precision requerida el valor de
las integrales de cada una de las siguientes funciones en los intervalos pedidos.
¿Cuántas evaluaciones del integrando se requieren para cada problema, y dónde
se concentran los puntos de integración?

f (x) a b tol
humps(x) 0 1 10−4
humps(x) 0 1 10−6
humps(x) -1 2 10−4
sen(x) 0 π 10−8
cos(x) 0 (9/2)π 10−6

x 0 1 10−8

x log(x) eps 1 10−8
1/(2x − 1) 0 1 10−4
t8/3 (1 − t)10/3 0 1 10−8
t25 (1 − t)2 0 1 10−8

3.18 La función de error, erf(x), se define como la integral definida


Z x
2 2
erf(x) = √ e−x dx
π 0

Usa quad o quadl para tabular la función de error para x = 0.1:0.1:1.


Compara los resultados obtenidos con los devueltos por la función Matlab
erf(x).
3.19 Sea
f (x) = log(1 + x) log(1 − x)

a) Usa ezplot para representar f (x) en el intervalo −1 ≤ x ≤ 1.


R1
b) Usa la toolbox de cálculo simbólico para hallar el valor analı́tico de −1 f (x)dx
c) Encuentra el valor numérico de la expresión analı́tica obtenida en el apar-
tado anterior.
d) ¿Qué ocurre al intentar evaluar numéricamente esta integral? ¿Cómo pue-
des solventar esta dificultad?

Versión del 23/1/2007


http://matematicas.uclm.es/ind-cr/metnum/index.html
44 Métodos Numéricos

e) Usa quad o quadl y evalúa la integral con diferentes tolerancias. Re-


presenta el error y el número de evaluaciones de la función frente a la
tolerancia.

Versión del 23/1/2007


http://matematicas.uclm.es/ind-cr/metnum/index.html

You might also like