Documentos de Académico
Documentos de Profesional
Documentos de Cultura
40 Practicas LeccionH
40 Practicas LeccionH
on H
Diferenciaci
on e integraci
on num
erica
H.1.
Diferenciaci
on num
erica
Se nos plantea ahora el problema de calcular la derivada de una funcion de la que solo conocemos
un n
umero finito de datos. Dos metodos son los mas usuales a la hora de resolver tal problema:
Derivar un polinomio de interpolacion construido mediante alguno de los metodos estudiados
en el captulo anterior. La funcion h_deriv definida en el libro [7], pag. 249, permite el calculo
de las sucesivas derivadas en un punto dado del polinomio interpolante asociado a nuestros
datos.
Calcular directamente la derivada utilizando para ello aproximaciones de la funcion mediante
los polinomios de Taylor. Las formulas obtenidas de esta manera reciben el nombre de f
ormulas
de diferencias finitas.
Pr
actica a Sean x,y el conjunto de datos dados debajo. Queremos estimar las sucesivas derivadas en el punto a = 0.3 utilizando la funcion h_deriv citada anteriormente, lo que significa
calcular las sucesivas derivadas del polinomio interpolador asociado a x,y; para ello, ejecutamos:
x=[0
0.2
0.4
0.6
0.5672 0.6982 0.7941 0.8614
derivadas=h_deriv(x,y,a)
0.8
1
0.9053]; a=0.3;
]; y=[0.3927
f 0 (x) = lm
(H.1)
f (x + h) f (x)
con lo cual podemos decir que
es una aproximaci
on de f con tal de que h
h
sea suficientemente peque
no. De hecho usando el desarrollo de Taylor para la funcion f en el
punto x podemos poner
73
H. DIFERENCIACION
E INTEGRACION
NUMERICA
LECCION
74
(H.2)
f (x + h) f (x)
es de
h
h2 00
h2
f (x)+O(h3 )f (xh) = f (x)hf 0 (x)+ f 00 (x)+O(h3 ) (H.3)
2!
2!
f (x + h) f (x h)
y, por tanto, f 0 (x) =
+ O(h3 ). Y procediendo de forma analoga se puede
2h
obtener las siguientes formulas para las derivadas primera y segunda:
Derivada primera de f en x0
f1 f0
+ O(h)
h
f1 f1
+ O(h2 )
2h
f2 + 4f1 3f0
+ O(h2 )
2h
f2 + 8f1 8f1 + f2
+ O(h2 )
12h
Derivada segunda de f en x0
f2 2f1 + f0
+ O(h2 )
h2
f1 2f0 + f1
+ O(h2 )
h2
f3 + 4f2 5f1 + 2f0
+ O(h2 )
h2
f2 + 16f1 30f0 + 16f1 f2
+ O(h2 )
12h2
(H.4)
H.2.
Integraci
on num
erica
Los metodos de integracion numerica nos permiten integrar funciones que estan definidas analticamente o de las que solo conocemos su tabla en un n
umero finito de puntos.
NUMERICA
H.2. INTEGRACION
75
f (x) dx =
a
(f0 +
x x0
f0 + . . .
h
(x x0 )(x x1 ) (x xn1 ) n
f0 ) dx +
+
n!hn
Z
a
(H.5)
En (x) dx
f n+1) (zx )
,
(n + 1)!
x0 < zx < xn
(H.6)
de esto u
ltimo y utilizando el teorema de la media integral se deduce
Z
En (x) dx =
f n+1) (zx0 )
(n + 1)!
Z
(x x0 )(x x1 ) . . . (x xn ) dx,
(H.7)
x x0
f0
h
(H.8)
de donde
Z
x1
f (x) dx =
x0
R x1
x0
= hf0 +
Ahora teniendo en cuenta que
concluimos que
Z
x1
xx0
h f0 ] dx + x0 E(x) dx
f 00 (0,1 ) 3 h
h
(f1 f0 )
h = (f0
[f0 +
Rb
a
12
Z xn
x1
+ +
x0
xn1
(H.9)
f 00 (0,1 ) 3
h
2
12
Rx
y que h(f 00 (0,1 )) = x01 f 00 (x) dx + o(h)
+ f1 )
Z
h
h2 b 00
[(f0 + f1 ) + (f1 + f2 ) + + (fn1 + fn )] [
f (x) dx + o(h)]
(H.10)
2
12 a
a
h
= (f0 + 2f1 + + 2fn1 + fn ) + cT h2 + o(h2 )
(H.11)
2
Rb
La regla que aproxima a f mediante el n
umero T (f, h) = h2 (f0 + 2f1 + + 2fn1 + fn ) se
Z
h2 b 00
2
denomina regla de los trapecios y a la expresion cT h =
f (x) dx se la denomina parte
12 a
principal del error al aproximar la integral de f por la regla de los trapecios T (f, h).
b
f=
Nota: Para que todas las expresiones anteriores sean correctas es necesario exigir que f C 3 [a, b],
es decir, que f posea derivada de orden 3 continua.
Si en lugar de fragmentar el intervalo [a, b] en los subintervalos [xi , xi+1 ] utilizando aproximaciones lineales en cada uno de ellos hubieramos fragmentado en los subintervalos [x0 , x2 ],. . . ,[x2k2 , x2k=n ]
H. DIFERENCIACION
E INTEGRACION
NUMERICA
LECCION
76
y en cada uno de estos fragmentos hubiesemos utilizado un polinomio interpolador de orden dos
respecto a los datos (xi , fi ) entonces
(x x0 )
(x x0 )(x x1 ) 2
f0 +
f0
h
2h2
sera el polinomio interpolador en el primer fragmento y tendramos
P0,2 (x) = f0 +
x2
h
h5
(f0 + 4f1 + f2 ) f 4) (zx )
3
90
(H.13)
h
(f0 + 4f1 + 2f2 + + 2f2k2 + 4f2k1 + fn ) + cS h4 + o(h4 )
3
(H.14)
f=
Z
x0
b
f=
a
(H.12)
Rb
f mediante el n
umero S(f, h) = h3 (f0 +4f1 +2f2 + +4f2k1 +fn )
Z
1 b 4)
4
4
recibe el nombre de regla de Simpson y a la expresion cS h = h
f (x) dx se la denomina
90 a
parte principal del error al aproximar la integral de f por la regla de Simpson S(f, h).
La regla que nos aproxima
Nota: Analogamente a la nota anterior, las formulas relacionadas con la regla de Simpson son
ciertas a condicion de que f C 5 [a, b], es decir, de que f posea derivada de orden 5 continua.
Rb
Es importante ahora observar que el error cometido al aproximar I = a f por el n
umero
Ih = S(f, h) es facilmente computable ya que de las relaciones
I = Ih + cS h4 + o(h4 );
I = Ih/2 +
1
cS h4 + o(h4 )
16
(H.15)
se obtiene, restando,
y tambien cS (h/2)4 =
Ih/2 Ih
+ o(h4 )
15
(H.16)
z = zh + chk + o(hk )
(H.18)
zh/2 zh
+ o(hk )
2k 1
(H.19)
NUMERICA
H.2. INTEGRACION
77
deduciendose, como caso particular, que el error de la regla de los trapecios viene dado por la
relacion
I T (f, h/2) =
(H.20)
Para realizar la cuadratura o integral definida de una funcion f en el intervalo [a, b] por un
metodo adaptativo, Matlab cuenta con el comando quad. Su sintaxis es:
quad(nombre_f,a,b,tol,traza)
donde tol es la tolerancia global en la cuadratura y traza es un parametro opcional, al igual que
tol, que por omision toman los valores tol= 1e 6 y traza= 0. Si traza6= 0 entonces el programa
nos informa de las iteraciones y de la naturaleza de la convergencia del algoritmo.
Pr
actica c Matlab cuenta con la funcion trapz(x,y) que realiza la integraci
on de una funcion
f dada como tabla de datos mediante la regla de los trapecios. Como ejemplo consideramos
la funcion f que en el intervalo [0, 1] tiene la siguiente tabla
x
0.15
0.35
0.45
0.60
0.90
1.00
y = f (x)
0.1494
0.3429
0.4350
0.5646
0.7833
0.8415
(H.21)
0.4500
0.4350
0.6000
0.5646
0.9000
0.7833
1.0000];
0.8415];
Es tambien facil obtener una funcion propia, I=h_trapz(nombre_f,a,b,h) que nos calcule
la cuadratura de una funcion f de nombre nombre_f en un intervalo [a, b] por la regla de los
trapecios y a partir de un paso de integraci
on igual a h.
function I=h_trapz(nombre_f,a,b,h)
n=floor((b-a)/h); hh=(b-a)/n;
x=a+(0:n)*hh; y=feval(nombre_f,x);
I=trapz(y)*hh;
Pr
actica d Ejecutando el comando doc quad se nos explica la cuadratura de una funcion por el
metodo adaptativo de Simpson empleado por Matlab para el calculo numerico de integrales
definidas.
Comprobar que con el comando quad(sin,0,pi,1e-8) obtenemos la integral de la funcion
seno en [0, ] con una tolerancia de 1e 8.
Por u
ltimo, utilizar el comando quad para el calculo de las integrales en el intervalo [0, 1] de
las funciones h10 y h15 siguientes:
function f=h10(x)
f=sqrt(x);
function f=h15(x)
f=(x.^(0.7)).*cos(x);
H. DIFERENCIACION
E INTEGRACION
NUMERICA
LECCION
78
Pr
actica e Las funciones propias definidas en el libro de Nakamura, [7] pag. 2178, con los
nombres I=h_simpsv(y,h) y I =h_simpsn(nombre_f,a,b,n) permiten el calculo de la
integral definida de una funcion y = f (x) por la regla de Simpson en sus dos posibles formas:
h_simpsv lo hace cuando tenemos la funcion como una tabulacion de valores equiespaciados
a distancia h y h_simpsn lo hace a partir del nombre de f y del n
umero de nodos n + 1 en
que fragmentamos el intervalo [a, b]. Como ejemplo, consideramos la funcion tangente en el
intervalo [0, /4], su tabulacion con paso h = /24 es
x
0.1309
0.2618
0.3927
0.5236
0.6545
0.7854
f (x)
0.1317
0.2679
0.4142
0.5774
0.7673
1.0000
(H.22)
R /4
de modo que podemos obtener una aproximaci
on al valor 0 tg(x) dx ejecutando Int=
h_simpsn(tan,0,pi/4,6) o equivalentemente ejecutando el listado
y=[0
0.1317
0.2679
Int=h_simpsv(y,pi/24)
H.3.
0.4142
0.5774
0.7673
1.0000];
Integraci
on num
erica con lmites infinitos o singulares
I=
f (x) dx
(H.24)
NUMERICA
H.3. INTEGRACION
CON LIMITES INFINITOS O SINGULARES
79
1.000000
H.3.1.
Integraci
on num
erica con lmites singulares
Hasta ahora solo hemos considerado integrales de funciones en dominios infinitos. En el caso
de tener como dominio de integracion el intervalo (a, b) y que alguno de los extremos sea singular
para la funcion f entonces lo que hacemos es utilizar una transformacion de coordenadas x = x(z)
de modo que el intervalo(, ) se transforme en (a, b) con el fin de convertir nuestra integral
Z b
singular
f (x) dx en la integral infinita
a
Z
dx
f (x(z)) dz
(H.25)
dz
x = th( sh(z)),
2
de donde se deduce que
x (1, 1) cuando z (, )
(H.26)
a + b + (b a) th( 2 sh(z))
(H.27)
2
es una transformacion que convierte el intervalo (, ) en (a, b). Tal transformacion recibira el
nombre de doble exponencial
x=
H. DIFERENCIACION
E INTEGRACION
NUMERICA
LECCION
80
Pr
actica g Para hacernos un idea de la transformacion doble exponencial (H.26) proponemos
ejecutar el siguiente listado con el fin de obtener su representaci
on grafica
z=-2:0.001:2; x=tanh((pi/2)*sinh(z));
figure(1); plot(z,x);
xlabel(z);ylabel(x)
axis equal
figure(2),plot(x,z),
xlabel(x); ylabel(z),
title(trans. inversa),
axis equal
Es facil obtener el valor de la expresion
dx
cuando x = x(z) viene dado por (H.26), resultando
dz
dx
(b a) ch(z)
=
dz
4 ch2 ( 2 sh(z))
(H.28)
y llevando esta expresion a (H.25) tenemos que mediante la transformacion doble exponencial la
Z b
integral
f (x) dx se transforma en
a
Tf (z) dz,
donde Tf (z) =
(b a) ch(z)
f (x(z)) 2
4
ch ( 2 sh(z))
(H.29)
Pr
actica h
NUMERICA
H.4. INTEGRACION
EN UN DOMINIO BIDIMENSIONAL
81
function f=h40(x)
f=(exp(-x.^2))/sqrt(1-x.^2);
Como resultado del listado anterior obtenemos
K
0.800
1.200
1.800
2.700
4.050
6.075
una tolerancia de 1e 4.
exp(x2 )
0.800
1.200
1.800
2.700
4.050
6.075
H.4.
Integraci
on num
erica en un dominio bidimensional
El comando de Matlab dblquad permite calcular la integral doble de una funcion f (x, y) definida
sobre un rectangulo acotado [a, b] [c, d] simplemente escribiendo
dblquad(@nombre_f,a,b,c,d, tol)
H. DIFERENCIACION
E INTEGRACION
NUMERICA
LECCION
82
1 si (x, y)
(x, y) =
0 si (x, y) 6
entonces, la igualdad
ZZ
ZZ
f (x, y) dx dy =
[a,b][c,d]
(x, y) f (x, y) dx dy
nos permitira el calculo de integrales dobles en dominios acotados y limitados por curvas de las
que se conoce o se puede calcular, al menos aproximadamente, sus expresiones implcitas cartesianas
C2
C1
C3
la u
nica precaucion sera incluir en el fichero m que define la funcion a integrar las condiciones que
definen el recinto . Como ejemplo realizamos las siguientes practicas
Pr
actica j
Calcular la integral
ZZ
I=
sen(x + y) dy dx
(H.30)
C2 : x = 3;
C3 : y = 3 + ex/5 ;
C4 : y = ln x
Area()
=
dx dy
donde es el dominio definido por los puntos (x, y) que verifican x2 + y 2 2x, region que
es un circulo unitario de centro el punto (1, 0). Realizar la evaluaci
on numerica de la doble
integral anterior ejecutando
E INTEGRACION
SIMBOLICA
H.5. DERIVACION
83
I=dblquad(@(x,y) (x.^2+y.^2-2*x<=0),0,2,-1,1,tol)
y observar la exactitud del resultado para diferentes tolerancias tol.
Pr
actica l Calcular el volumen del solido situado en semiespacio z 0 y limitado por los cilindros
C1 : x2 + y 2 = 1, C2 : (x 1)2 + (y 1)2 = 1 y la superficie z = xy.
Ejecutamos
triplequad(@(x,y,z) (x.^2+y.^2<=1).*((x-1).^2+(y-1).^2<=1).*(z<=x.*y),0,1,0,1,0,1)
lo que da como respuesta ans=0.117884 lo que supone cometer un error superior a 8 diezmilesimas, lo que es esperable en el computo numerico de una integral triple.
H.5.
Derivaci
on e integraci
on simb
olica
Pr
actica m
f=3*x^3+4x^2-x-33
df=diff(f)
d2f=diff(f,2)
int_f=int(f)
int_def_f=int(f,0,2)
H.6.
%creaci
on
%derivada
%derivada
%integral
%integral
de una funci
on simb
olica
de f
segunda de f
de f
definida de f en [0,2]
Ejercicios
Pr
actica puntuable p
a la milesima
Z
dx
1 + (230x 30)2
1.
0
4.
(0.2 puntos) Evaluar las siguientes integrales con una tolerancia menor
Z
2.
sen(x) dx
7.
0
10.
dx
1 + sen2 (x)
Z
8.
13.
16.
0
14.
2
dx
2
x 4
Z
19.
0
Z
17.
xx dx
Z
x0.001 dx
/4
12.
tg(x) dx
0
0.35
9.
0
11.
ln(1 + x)
dx
x
Z
x exp(2x) dx
1.5
6.
x ln(x) dx
Z
dx
2 + cos(x)
Z
exp(2x) sen2 (x) dx
1
dx
2+x
/2
3.
/2
100
sen(10/x2 ) dx 15.
x2
exp(x) dx
1.6
x2
18.
Z
x2 (x 1)2 (x 3)2 (x 4)2 dx 20.
1
e2x sen(3x) dx
2
dx
4
cos(x2 ) dx
H. DIFERENCIACION
E INTEGRACION
NUMERICA
LECCION
84
Pr
actica puntuable q (0.2 puntos) Calcular las siguientes integrales impropias con una tolerancia menor a la milesima
Z
1.
Z
4.
ex
1+
/2
7.
0
x2
1/4
dx
13.
0
5.
11.
16.
0
cos 2x
dx
3
x
p
3
(x
14.
0
xex
1)2
exp(x)
1 x2
dx
1 + x2
ln(1 + ex ) dx 6.
8.
sen x dx
3.
tg(x)
dx
x0.7
2.
cos x
dx
x
10.
exp(x2 )
dx
1 + x2
dx
1 + x4
12.
1
ln x
dx
5
x1
cos x
dx
1 + x2
cos x
x3
15.
0
dx
x2 + 9
dx 17.
x3/2 sen(1/x) dx
e2x
dx
5
x2
ex
dx
1x
9.
18.
1
Pr
actica r De las funciones f y g conocemos sus expresiones tabulares en los puntos que se
detallan mas abajo. Se pide, calcular de la forma que se estime mejor, las integrales
Z
0.8
f (x) dx y
g(x) dx
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
f (x)
2.1220
3.0244
3.2568
3.1399
2.8579
2.5140
2.1639
1.8358
0.25
0.50
0.75
1.0
g(x)
0.9162
0.8109
0.6931
0.5596
0.4055
Pr
actica puntuable s (0.1 puntos) Calcular, cometiendo un error menor a la diezmilesima, las
siguientes integrales bidimensionales
Z
1.
dx
0
Z
3.
sen(x + y) dy
Z
2.
dx
0
dx
0
sen x
Z
2
exp(x y ) dy 4.
0
x + y dy
20.5x
x + y dy
dx
0
Pr
actica puntuable t (0.2 puntos) Se llama polinomio de Legendre de orden n al polinomio Pn
definido por la igualdad
Pn (x) =
1 dn 2
(x 1)n
n
n
2 n! dx
(H.31)
Una relacion importante que verifican los polinomios de Legendre es la formula en recurrencia
siguiente
H.6. EJERCICIOS
85
2n 1
n1
xPn1 (x)
Pn2 (x)
n
n
Pn (x) =
(H.32)
pk =
k = 1, 2, . . . , n
(H.33)
Pr
actica u 1) Considerar la funcion f (x) = 3x5 + 7x2 28x + 3 en el intervalo [1, 3]; los nodos
de Legendre de orden 3 de dicho intervalo, p1 < p2 < p3 ; y el polinomio interpolador de grado
3 asociado a los datos (pi , f (pi )). Comprobar que, al menos con una tolerancia de 1e 7, se
verifica la igualdad
Z
f (x) dx =
1
Pf (x) dx
(H.34)
H. DIFERENCIACION
E INTEGRACION
NUMERICA
LECCION
86
Pr
actica puntuable v
I=h_dblgau(nombre_f,nombre_c,nombre_d,a,b,m,n)
R b R d(x)
que permita aproximar la integral bidimensional a c(x) f (x, y) dy dx por el metodo de Gauss
Legendre a partir de un mallado de m n puntos de Legendre. Utilizar la funcion propia
definida para calcular las integrales 12 de la practica hs.