Está en la página 1de 10

PRCTICA

DERIVACIN E INTEGRACIN NUMRICA


Elaborada por: Programacin Avanzada y Mtodos Numricos
Ing. Laura Sandoval Montao
Viridiana del Carmen De Luna Bonilla
Virgilio Green Prez
Objetivos
El alumno conocer y aplicar diversas tcnicas de derivacin e integracin numrica.

Al final de esta prctica el alumno podr:

1. Resolver ejercicios que contengan derivadas e integrales, por medio de mtodos
numricos, tales como mtodo de Taylor y Simpson respectivamente.
2. Implementar dichos mtodos numricos en lenguaje orientado a objetos

Antecedentes
1. Haber elaborado programas orientados a objetos en lenguaje Java con
aplicacin numrica.
2. Manejar soluciones numricas de derivadas e integrales

Introduccin

Derivacin numrica
Para diferenciar numricamente funciones que estn definidas mediante datos tabulados o
mediante curvas determinadas en forma experimental se usan diferentes procedimientos.
Un mtodo consiste en aproximar la funcin en la vecindad del punto en que se desea la
derivada, mediante una parbola de segundo, tercer o mayor grado, y utilizar entonces la
derivada de la parbola en ese punto como la derivada aproximada de la funcin; este
mtodo podra ser el de la Serie de Taylor.
La serie de Taylor para una funcin y = f(x) en x x
i
+ , desarrollada con respecto al punto
i
x es
...
! 3
) ( ' ' '
! 2
) ( ' '
) ( ' ) (
3 2
+

+ + = +
x y x y
x y y x x y
i i
i i i
(1)
en donde
i
y es la ordenada que corresponde a
i
x y ) ( x x
i
+ se encuentra en la regin de
convergencia. La funcin para ) ( x x
i
est dada en forma similar por:
...
! 3
) ( ' ' '
! 2
) ( ' '
) ( ' ) (
3 2
+

+ =
x y x y
x y y x x y
i i
i i i
(2)
Utilizando solamente los tres primeros trminos de cada desarrollo, se obtiene una
expresin para
i
y restando la ec. (2) de la ec. (1),
x
x x y x x y
y
i i
i

+
=
2
) ( ) (
' (3)


PRCTICA
DERIVACIN E INTEGRACIN NUMRICA
Elaborada por: Programacin Avanzada y Mtodos Numricos
Ing. Laura Sandoval Montao
Viridiana del Carmen De Luna Bonilla
Virgilio Green Prez


Diferencias Centrales, Hacia Adelante y Hacia Atrs


Si se denotan los puntos uniformemente espaciados a la derecha de xi como xi+1, xi+2, y
los puntos a la izquierda de xi como xi-1, xi-2,...; y si se identifican las ordenadas
correspondientes como yi+1, yi+2, yi-1, yi-2, respectivamente, la ec. (3) se puede escribir:
x
y y
y
i i
i

=
+
2
'
1 1
(4)
La ec. (4) se denomina la primera aproximacin, por Diferencias Centrales de y, para x.
La aproximacin representa grficamente la pendiente de la recta discontinua mostrada en
la figura de arriba. La derivada real se representa mediante la lnea slida dibujada como
tangente a la curva en xi.
Si sumamos las ecuaciones (1) y (2), y utilizamos la notacin descrita previamente, se
puede escribir la siguiente expresin para la segunda derivada:
2
1 1
) (
2
' '
x
y y y
y
i i i
i

+
=
+
(5)
La ec. (5) es la primera aproximacin, por Diferencias Centrales, de la segunda derivada de
la funcin en xi. Esta expresin se puede interpretar grficamente como la pendiente de la
tangente a la curva en xi+1/2 menos la pendiente de la tangente a la curva en xi-1/2 dividida
entre x , cuando las pendientes de las tangentes estn aproximadas mediante las
expresiones:
x
y y
y
x
y y
y
i i
i
i i
i

+
+
1
1
2
1
2
1
'
'
(6)
PRCTICA
DERIVACIN E INTEGRACIN NUMRICA
Elaborada por: Programacin Avanzada y Mtodos Numricos
Ing. Laura Sandoval Montao
Viridiana del Carmen De Luna Bonilla
Virgilio Green Prez
es decir,


2
1 1
1 1
) (
2
' '
x
y y y
x
x
y y
x
y y
y
i i i
i i i i

+
=

=
+
+
(7)

Se ha demostrado que las expresiones de Diferencias Centrales para las diversas derivadas
encierran valores de la funcin en ambos lados del valor x en que se desea conocer la
derivada en cuestin. Se pueden obtener fcilmente expresiones para las derivadas,
totalmente en trminos de valores de la funcin en xi y puntos a la derecha de xi. stas se
conocen como expresiones de Diferencias Finitas Hacia Adelante. En forma similar, se
pueden obtener expresiones para las derivadas que estn solamente en trminos de valores
de la funcin en xi y puntos a la izquierda de xi. stas se conocen como expresiones de
Diferencias Finitas Hacia Atrs.

EJEMPLO

Usar aproximaciones de Diferencias Finitas Hacia Adelante, Hacia Atrs y Centradas para
estimar la primera derivada de:
2 . 1 25 . 0 5 . 0 15 . 0 1 . 0 ) (
2 3 4
+ = x x x x x f en x = 0.5
Utilizando un x de 0.5.
Repetir los clculos usando x = 0.25.

Ntese que la derivada se puede calcular directamente como:
f(x) = -0.4x
3
- 0.45x
2
- 1.0x - 0.25
y evaluando tenemos: f(0.5) = -0.9125

SOLUCIN:
Para x = 0.5 se usa la funcin para determinar:

Xi-1 = 0.0 Yi-1 = 1.200
Xi = 0.5 Yi = 0.925
Xi+1 = 1.0 Yi+1 = 0.200

Estos datos se utilizan para calcular:

la Diferencia Hacia Adelante:
45 . 1
5 . 0
925 . 0 2 . 0
) 5 . 0 ( ' =

y
la Diferencia Dividida Hacia Atrs:
55 . 0
5 . 0
2 . 1 925 . 0
) 5 . 0 ( ' =

y
PRCTICA
DERIVACIN E INTEGRACIN NUMRICA
Elaborada por: Programacin Avanzada y Mtodos Numricos
Ing. Laura Sandoval Montao
Viridiana del Carmen De Luna Bonilla
Virgilio Green Prez

y la Diferencia Dividida Central:
0 . 1
0 . 1
2 . 1 2 . 0
) 5 . 0 ( ' =

y
Para x = 0.25, los datos son:

Xi-1 = 0.25 Yi-1 = 1.10351563
Xi = 0.50 Yi = 0.92500000
Xi+1 = 0.75 Yi+1 = 0.63632813

Por lo que la Diferencia Dividida Hacia Adelante:
15468748 . 1
25 . 0
925 . 0 63632813 . 0
) 5 . 0 ( ' =

y
la Diferencia Dividida Hacia Atrs:
71406252 . 0
25 . 0
10351563 . 1 925 . 0
) 5 . 0 ( ' =

y
y la Diferencia Dividida Central:
934375 . 0
5 . 0
10351563 . 1 63632813 . 0
) 5 . 0 ( ' =

y

Para los dos x , las aproximaciones por Diferencias Centrales son ms exactas que las
Diferencias Divididas Hacia Adelante o las Diferencias Divididas Hacia Atrs.

Codificando este mtodo en Java, se tiene:
public class Derivacion{
double x;
double deltaX;
double haciaAdelante;
double haciaAtras;
double centradas;

public static void main(String args[]){
try{
Redondear r = new Redondear();
Derivacion d = new Derivacion();
d.x = Double.parseDouble(args[0]);
d.deltaX = Double.parseDouble(args[1]);
d.haciaAdelante = (d.funcion(r.redondeo(d.x+d.deltaX,2))-
d.funcion(d.x))/(d.deltaX);
System.out.println(La derivada de +d.x+ hacia adelante es:
+d.haciaAdelante);
d.haciaAtras = (d.funcion(d.x)-d.funcion(r.redondeo(d.x-
d.deltaX,2)))/d.deltaX;
System.out.println(La derivada de +d.x+ hacia atras es
:+d.haciaAtras);
PRCTICA
DERIVACIN E INTEGRACIN NUMRICA
Elaborada por: Programacin Avanzada y Mtodos Numricos
Ing. Laura Sandoval Montao
Viridiana del Carmen De Luna Bonilla
Virgilio Green Prez
d.centradas = (d.funcion(r.redondeo(d.x+d.deltaX,2))-
d.funcion(r.redondeo(d.x-d.deltaX,2)))/(2*d.deltaX);
System.out.println(La derivada de +d.x+ en diferencias centradas
es: +d.centradas);
}
catch(ArrayIndexOutOfBoundsException aioobe){
System.out.println(ERROR!!! Faltan parametros);
System.out.println(Sintaxis: java Derivacion valor_inicial
incremento);
}
}

public double funcion(double x){
double f;
f = -0.1*Math.pow(x,4)-0.15*Math.pow(x,3)-0.5*Math.pow(x,2)-0.25*x+1.2;
return f;
}

}

Como se puede observar, este cdigo implementa las ecuaciones para las diferencias hacia
adelante, hacia atrs, y centradas. Recibe como parmetros el punto en el que se desea
calcular la derivada, y el x deseado. Se tiene un mtodo que implementa la funcin de la
cual se desea obtener la derivada.
Una de las caractersticas principales de este cdigo es que se utiliza un objeto de la clase
Redondear, la cual es utilizada debido a que en Java, como en otros lenguajes, tiene
errores de redondeo y aritmtica de computadora. Por ejemplo, se puede dar el caso que si
se resta 15 a 15.1, el resultado es 0.0999999999999999999; de aqu el uso de dicha clase
ayuda a hacer redondeos para tener valores tiles en estos clculos.
El cdigo de Redondear es:
import java.math.*;
public class Redondear{
public double redondeo(double resultado, int redondeo){
BigDecimal bd=new BigDecimal(
Double.toString(resultado)).setScale(redondeo,BigDecimal.ROUND_HALF
_UP) ;
return bd.doubleValue();
}
}

Este cdigo crea un objeto de la clase BigDecimal, que ayuda a hacer el redondeo. Se
utiliza el mtodo setScale(), que recibe como parmetros el nmero de decimales a los que
se redondear, y un factor, que en este caso, para evitar equivocaciones, se usa
ROUND_HALF_UP.
PRCTICA
DERIVACIN E INTEGRACIN NUMRICA
Elaborada por: Programacin Avanzada y Mtodos Numricos
Ing. Laura Sandoval Montao
Viridiana del Carmen De Luna Bonilla
Virgilio Green Prez

Integracin numrica

El principio de los mtodos de integracin numrica consiste en ajustar un polinomio a un
conjunto de puntos y luego integrarlo. Al realizar dichas integrales obtenemos, entre otras,
las reglas de trapecio y de Simpson las cuales dan lugar a reglas de integracin compuestas
que buscan que el error sea cada vez menor.

Regla de Simpson de
3
1

La regla de Simpson de
3
1
o simplemente regla de Simpson, consiste en aproximar la curva
con polinomios de grado 2, es decir, con parbolas. Omitiendo la deduccin, el resultado es

+ + + =

=
1
,... 5 , 3 , 1
2
,.. 6 , 4 , 2
0
2 4
3
N
i
N
i
N i i N
y y y y
H
S
La primera sumatoria es para aquellas is que sean impares. La segunda es para las is que
sean pares. Dado que para obtener la ecuacin de una parbola se requieren 3 puntos, se
necesitan 2 particiones, por lo cual la N debe ser par.
Regla de Simpson de
8
3

La regla de Simpson de
8
3
consiste en aproximar la funcin mediante una cbica:

+ + + =

1
,.. 9 , 6 , 3
2
3
0
8
3
3 2
3
3
N
i
N
de mltiplos i
N i i
N
y y y y
H
S
Esta regla es ms complicada. La primera sumatoria slo incluye aquellas is que sean
mltiplos de 3. La segunda el resto, es decir, las is que no sean mltiplos de 3. Entre las 2
cubren desde 1 hasta N-1. Para una cbica se requieren 4 puntos, por lo cual se utilizan 3
intervalos. Por esta razn N debe ser un mltiplo de 3.


PRCTICA
DERIVACIN E INTEGRACIN NUMRICA
Elaborada por: Programacin Avanzada y Mtodos Numricos
Ing. Laura Sandoval Montao
Viridiana del Carmen De Luna Bonilla
Virgilio Green Prez

Ejemplo de regla de Simpson
Calcularla siguiente integral con las reglas anteriores.

=
+
1
0
2
1
4

x
dx

Para N=2
) 4 (
3
2 1 0 2
y y y
H
S + + =
H est dada por 5 . 0
2
0 1
=

=
N
a b
H
Sustituyendo
3
4 . 9
3
) 8 . 18 ( 5 . 0
)) 2 ( ) 2 . 3 ( 4 4 (
3
5 . 0
)) 1 ( ) 5 . 0 ( 4 ) 0 ( (
3
2
= = + + = + + = f f f
H
S
1333333 . 3
2
= S

Para N=4
( )
4 2 3 1 0 4
2
,.. 6 , 4 , 2
4
3
,... 5 , 3 , 1
0 4
2 ) ( 4
3
2 4
3
y y y y y
H
S
y y y y
H
S
i
i
i
i
+ + + + =

+ + + =

= =

H est dada por 25 . 0
4
0 1
=

=
N
a b
H
Sustituyendo
( )
141566 . 3
3
4247 . 9
3
) 6988 . 37 ( 25 . 0
)) 2 ( ) 2 . 3 ( 2 ) 56 . 2 7647 . 3 ( 4 4 (
3
25 . 0
) 1 ( ) 5 . 0 ( 2 ) 75 . 0 ( ) 25 . 0 ( 4 ) 0 ( (
3
4
4
=
= = + + + + =
= + + + + =
S
f f f f f
H
S


Regla de Simpson
8
3

Para N=3
( ) ( )
3 2 1 0
3
8
3
0
,.. 9 , 6 , 3
1
3
3 0
3
8
3
) 3
8
3
3 2
8
3
y y y y
H
S
y y y y
H
S
i de multiplos i
i i
+ + + =

+ + + =

=

H est dada por 33333 . 0
3
1
3
0 1
= =

=
N
a b
H
Sustituyendo
( ) ( )

+ +

= + + +

=
65
1632
24
3
) 2
13
36
5
18
3 4
24
3
) 1 ( ) ( ) ( 3 ) 0 (
3
1
8
3
3
2
3
1
3
8
3
f f f f S
133461 . 3
65
204
3
8
3
= = S
PRCTICA
DERIVACIN E INTEGRACIN NUMRICA
Elaborada por: Programacin Avanzada y Mtodos Numricos
Ing. Laura Sandoval Montao
Viridiana del Carmen De Luna Bonilla
Virgilio Green Prez
Para N=6
( ) ( ) ( )
6 5 4 2 1 3 0
6
8
3
3
,.. 9 , 6 , 3
4
3
6 0
6
8
3
3 2
8
3
3 2
8
3
y y y y y y y
H
S
y y y y
H
S
i de multiplos i
i i
+ + + + + + =

+ + + =

=


H est dada por 1666666 . 0
6
1
6
0 1
= =

=
N
a b
H
Sustituyendo
( ) ( ) ( )
( ) 141583375 . 3 265334 . 50
48
3
2
61
144
13
36
5
18
37
144
3
5
16
2 4
48
3
) 1 ( ) ( ) ( ) ( ) ( 3 ) ( 2 ) 0 (
6
1
8
3
6
5
6
4
6
2
6
1
6
3
6
8
3
=

+ + + +

=
+ + + + + +

= f f f f f f f S
141583375 . 3
6
8
3
= S
Codificando el mtodo de Simpson
3
1
, se tiene que:
public class SimpsonUnTercio{
double limInf;
double limSup;
int n;
double h;
double integral;

public static void main (String args[]){
LeeUnDouble lud = new LeeUnDouble();
SimpsonUnTercio sut=new SimpsonUnTercio();
//Empezamos a obtener datos:
//Obtenemos el limite inferior
System.out.println(Dame el valor del limite inferior: );
lud.leeNumero();
sut.limInf=lud.num;

//Obtenemos el limite superior
System.out.println(Dame el valor del limite superior: );
lud.leeNumero();
sut.limSup=lud.num;

//Obtenemos el valor de N
System.out.println(Dame el valor de N: );
lud.leeNumero();
sut.n=(int)lud.num; //cast

sut.h=(sut.limSup-sut.limInf)/sut.n;
sut.integral=(sut.h/3)*(sut.funcion(sut.limInf)+(4*sut.sumaImpares(
sut.limInf,sut.h,sut.n))+(2*sut.sumaPares(sut.limInf,sut.h,sut.n))+
sut.funcion(sut.limSup));
PRCTICA
DERIVACIN E INTEGRACIN NUMRICA
Elaborada por: Programacin Avanzada y Mtodos Numricos
Ing. Laura Sandoval Montao
Viridiana del Carmen De Luna Bonilla
Virgilio Green Prez
System.out.println(El resultado de la integral
es :+sut.integral);
}

public double sumaImpares(double inf, double H, double N){
double suma=0;
for(int i=1; i<=(N-1); i=i+2){
suma=suma+funcion(inf+H*i);
}
return suma;
}

public double sumaPares(double inf, double H, double N){
double suma=0;
for(int i=2; i<=(N-2); i=i+2){
suma=suma+funcion(inf+H*i);
}
return suma;
}

public double funcion(double x){
double fX;
fX=4/(1+x*x);
return fX;
}
}

Como se puede observar, se utiliza la clase LeeUnDouble, vista anteriormente, para
obtener los valores de los lmites y el valor de N, para realizar la integral de la funcin. Se
implementan los mtodos para las sumatorias de los elementos pares, y de los elementos
impares, as como la funcin a la cual se le desea obtener la integral.
PRCTICA
DERIVACIN E INTEGRACIN NUMRICA
Elaborada por: Programacin Avanzada y Mtodos Numricos
Ing. Laura Sandoval Montao
Viridiana del Carmen De Luna Bonilla
Virgilio Green Prez
Ejercicios Propuestos
1. Implementar en una clase las ecuaciones para obtener la segunda derivada por
medio de la serie de Taylor.
Utilice la misma ecuacin vista en el ejemplo, obtenga el valor terico de la segunda
derivada en el mismo punto y calcule los errores absoluto y relativo.
2. Realizar una clase que efecte la integracin numrica mediante el mtodo de
Simpson 3/8.

3. Utilice la funcin del ejemplo para obtener su integral y compare con los resultados
del ejemplo.

4. Obtenga la primera y segunda derivada de la siguiente funcin:
3
) (
2

=
x
e
x f
x


5. Obtenga por medio de la regla de Simpson de 1/3 la siguiente integral:

=
3
0
2
) ( dx x e x f
x

proponga un valor de N.

6. Obtenga por medio de la regla de Simpson de 3/8 la integral del ejercicio anterior y
compare ambos resultados para una misma N.

También podría gustarte