Professional Documents
Culture Documents
Integración numérica
31
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
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.
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
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
R1
Como ejemplo si aplicamos las fórmulas anteriores al cálculo de 0 xex dx obtenemos
xn n−1
h h
Z X
f (x)dx ≃ (fi + fi+1 ) = (f0 + 2f1 + 2f2 + · · · + 2fn−1 + fn )
x0 2 2
i=0
b−a 2
h máx f ′′ (z)
E≤
12 z∈(a,b)
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.
h h h h
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:
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.
f = inline(’1./sqrt(1+x.ˆ4)’);
Q = quad(f,0,1)
Q =
0.9270
f = @(x) 1./sqrt(1+x.ˆ4);
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.
100
80
60
40
20
0
0 0.2 0.4 0.6 0.8 1
x
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.
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
Ejercicios
e −x
3.1 Calcular las integrales de las funciones f (x) = sen 4x en [0, π] y f (x) = 1+e x
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 )
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