Sie sind auf Seite 1von 65

Mecánica Computacional II

1
1

CAPITULO II

Derivación e integración numérica

Universidad Simón Bolívar

Capítulo II

2
2

Derivación e integración numérica

Introducción

• Derivación numérica

• Integración numérica

• Referencias

Introducción

3
3

En muchas ocasiones se dispone de data numérica a la cual se le debe calcular la derivada localmente o realizar la integración en cierto intervalo. Ello puede hacerse de diversas maneras. Una primera vía es utilizar la aproximación de la data por una función (polinomios o cualquier otra base) y luego derivar esta función. Esta opción conduce a buenos resultados, si la aproximación que se obtuvo es lo suficientemente “suave”.

Introducción

4
4

No obstante, en aplicaciones prácticas este procedimiento puede ser muy engorroso y de poca utilidad. Una segunda opción es la construcción de formulas especialmente adaptadas con estos fines. A este tópico se dedica este capítulo.

Capítulo II

5
5

Derivación e integración numérica

• Introducción

Derivación numérica

• Integración numérica

• Referencias

Derivación numérica

6
6

P

R

(

(

Dad la importancia que tiene el desarrollo en serie de Taylor de funciones, recordaremos el teorema de Taylor. Teorema de Taylor:

Supongamos que f œ C n [a,b], que f(n+1) existe en [a,b] y que x 0 œ [a,b]. Para toda x œ [a,b] habrá un número (x) entre x 0 y x tal que

f (x)= P(x)+ R(x)

donde

x

x

)

)

=

=

(

f x

0

f

(

n + 1

)

+

) (

f ( x )( x x ) + f 0 0 n + 1 x
f
(
x
)(
x
x
)
+
f
0
0
n + 1
x
x
0 )
( )) (
x
(
n
+ 1)!

(

x

0

) (

x

x

0

)

2

2!

+

Residuo

Polinomio de Taylor

+ f

(

n

)

(

x

( x x 0 ) 2 2! + Residuo Polinomio de Taylor + f ( n

0

) (

x

x

0

)

n

n !

=

n

k

= 0

f

(

k

)

(

x

0

) (

x

x

0

)

k

k

!

Derivación numérica

7
7

Las aproximaciones numérica a las derivadas parten del uso de desarrollos en serie de Taylor. Escribamos

f

(

x

+

x

)

=

m = 0

(

)

m

f

d

m

m

 

m

!

x

dx

t

Esta expresión se escribe como

f

(

x

+

x

)

=

n

m = 0

(

x

)

m

d

m

f

m

!

dx

m

+

t

(

x

)

n + 1

 

d

n + 1

f

(

n

+

1

)

!

dx

n + 1

c

con c [t,t+ t]. El segundo término representa el “error” cometido para la aproximación con n términos.

Derivación numérica

8
8

Supongamos que tenemos una secuencia de datos ordenados de manera creciente en x de manera que se expresan como (x i ,y i ), 0§i§k. Supongamos, para simplificar, que los puntos están espaciados de manera uniforme.

La primera derivada en los puntos de data conocida se calcula, en primer orden, a partir de

f

(

x

+

x

)

=

f

(

x

)

+

x

df

dx

+

x

O

(

2

x

)

Luego, al despejar obtenemos

df

=

f

(

x

+

x

)

f

(

x

)

dx

x

x

 

+

O

(

x

)

Derivación numérica

9
9

Si escribimos esta ecuación en términos de los valores conocidos, con

x

=

i

=

x

f

i

+

1

 

x

i

(

x

i

)

 

f

(

x

i

+

1

)

f

(

x

i

)

 

x

y

obtenemos

df

dx

x

=

+

O

(

x

)

Esta expresión corresponde a la fórmula de la primera derivada “hacia adelante”, en primer orden.

Derivación numérica

10
10

De manera similar podemos calcular la derivada hacia atrás

f

(

x

df

dx

x

=

)

=

x

f

(

x

)

x

df +

dx

x

f

(

x

i

)

f

(

x

i

1

)

 

x

 

+

O

(

O

x

(

)

Estas ecuaciones corresponden a las pendientes de rectas que unen a los distintos puntos.

2

x

)

y

x x i
x
x i

Derivación numérica

11
11

Expresiones con mayor precisión pueden ser construidas. Por ejemplo si escribimos nuevamente los desarrollos tenemos:

f

f

(

(

x

x

+

x

)

=

)

=

x

f

f

(

(

x

x

)

+

)

x

x

df

dx

df dx df + dx

df +

dx

+

x

x

x

2 d

2

f

2!

dx

2

+

x

x

2 d

2

f

+

2

dx

x

2!

O

O

(

(

x

3

x

3

)

)

Restando estas ecuaciones obtenemos

f

(

x

+

x

)

f

(

x

x

=

)

2

x

df +

dx

x

O

(

x

3

)

Derivación numérica

12
12

Al despejar

df

=

f

(

x

+

x

)

f

(

x

x

)

dx

x

2

x

+

O

(

2

x

)

Utilizando la notación indicial

df

dx

x

=

f

(

x

i

+

1

)

f

(

x

i

1

)

 

2

x

+

O

(

2

x

)

Esta ecuación es de un orden mayor de precisión y se interpreta como se muestra en la figura

y

x x i
x
x i

Derivación numérica

13
13

La expresión anterior nos permite hallar la derivada en el punto i a partir de los valores conocidos de f en (i+1) e (i-1). Gráficamente tenemos

x x i-1 x i x i+1
x
x i-1
x i
x i+1

df

dx

x

=

f

(

x

i

+

1

)

f

(

x

i

1

)

 

2

x

+

O

(

2

x

)

Esta ecuación permitirá entonces determinar los

valores de las derivadas en puntos internos en orden

Derivación numérica

14
14

En los bordes, si se quiere conservar el mismo orden tendremos que hacer los desarrollos como sigue.

f

f

(

(

x

x

+

+

2

x

)

=

x

)

=

f

(

x

f

(

(

x

)

 

df

 

+

 

1!

 

dx

x

(

2

x

)

df

 

1!

 

dx

)

+

)

+

x

(

 

)

2

d

2

f

x

 

2!

dx

2

+

x

+

x

(

2

x

)

2

d

2

f

2!

dx

2

O

(

+

x

x

O

3

(

)

3

x

)

Multiplicando la primera ecuación por 4 y restando la segunda

4

f

(

x

+

x

)

f

(

x

+

2

)

x

=

3

f

(

x

+

)

2

(

x

)

 

df

1!

dx

 

+

x

O

(

x

3

)

Derivación numérica

15
15

Simplificando obtenemos

df 3 f ( x ) + 4 f ( x + x ) f
df
3
f
(
x
)
+
4
f
(
x
+
x
)
f
(
+
x
2
x
)
=
+
O
(
dx
2
x
x
En notación indicial
df
3
f
(
x
)
+
4
f
(
x
)
f
(
x
)
i
i
+
1
i
+
2
2
=
+
O
(
x
)
dx
2
x
x

2

x

)

Similarmente, desarrollando hacia atrás

df

dx

x

=

3

f

(

x

i

)

4

f

(

x

i

1

)

+

f

(

x

i

2

)

2

x

+

O

(

2

x

)

Derivación numérica

16
16

Combinando desarrollos en serie de Taylor con más puntos, fórmulas de orden superior pueden ser halladas. De manera similar, fórmulas para segundas derivadas pueden ser construidas

d

2

f

dx

2

 

d

2

f

 

dx

2

 

d

2

f

dx

2

x

x

x

f

i

 

1

2

f

i

+

 

f

i

+

1

+

O

(

2

)

 

(

x

)

2

 

x

 
 

2

f

5

f

j

1

+

4

f

j

2

f

j

3

 

2

f

5

(

f

j

+

1

x

+

)

2

4

f

j

+

2

 

f

j

+

3

 

(

 

x

)

2

 

=

= j

= j

+

+

O

O

(

(

2

x

2

x

)

)

Derivación numérica

17
17

Aplicación. Se desea hallar la expresión aproximada de la primera y segundas derivadas de la función tabulada siguiente en los primeros dos puntos:

x

f(x)

1.8

10.88936544

1.9

12.70319944

2

14.7781122

a) Cálculo de la primera derivada en el extremo izquierdo

df x ( ) dx
df x
(
)
dx
df x ( ) dx
df x
(
)
dx

x = 1.8

x = 1.8

=

=

f

i

f

i

12.70319944

10.88936544

+ O ( x ) = 18.13834
+
O
(
x
)
= 18.13834

+ 1

O

(

+

4

)

=

+

3

x

f

x

f

(2.0)

0.1

( 2 ) + O x =
(
2
)
+
O
x
=

(1.8)

f

(1.9)

16.8329463

2*0.1

Derivación numérica

18
18

b) Cálculo de las derivadas en el nodo interior

(

df x

)

dx

( df x ) dx ( df x ) dx

(

df x

)

dx

x = 1.9

x = 1.9

(

df x

)

dx

x = 1.9

=

=

f

i

+ 1

f

i

f

i

x

f

i

1

x

+

+

O

O

(

(

=

f

i

+

1

f

i

1

2

x

+

O

(

x

x

)

)

=

=

2

x

)

f

(

2.0

)

f

(

1.9

)

 

0.1

 

f

(

1.9

)

f

(

1.8

)

0.1

+ O ( x ) = 20.7491276
+
O
(
x
)
= 20.7491276
+ O ( x ) = 18.13834
+
O
(
x
)
= 18.13834

=

f

(

2.1

)

f

(

1.9

)

2*0.1

+

O

(

x

2

)

= 19.4437338

A los fines de examinar la exactitud de las aproximaciones realizadas, la tabla siguiente presenta los resultados obtenidos así como la comparación con la función que generó la data.

Derivación numérica

19
19
   

Exacta

Adelante

Error (%)

x

f(x)

f´(x)

f´(x) [O(Dx)]

 

1.8

10.88936544

16.9390129

18.13834

7.08

1.9

12.70319944

19.38909388

20.7491276

7.01

2

14.7781122

22.1671683

   
   

Exacta

Atrás

Error (%)

x

f(x)

f´(x)

f´(x) [O(Dx)]

 

1.8

10.88936544

16.9390129

   

1.9

12.70319944

19.38909388

18.13834

-6.45

2

14.7781122

22.1671683

20.7491276

-6.40

x

f(x)

f´(x)

f´(x) [O(Dx2)]

 

1.8

10.88936544

16.9390129

16.8329463

-0.63

1.9

12.70319944

19.38909388

   

2

14.7781122

22.1671683

   
   

Exacta

Centrada

Error (%)

x

f(x)

f´(x)

f´(x) [O(Dx2)]

 

1.8

10.88936544

16.9390129

   

1.9

12.70319944

19.38909388

19.4437338

0.28

2

14.7781122

22.1671683

   

Hacia

adelante

Orden 1

Hacia atrás Orden 1

Hacia

adelante

Orden 2

Centrada Orden 2

Derivación numérica

20
20

Es claro que los mejores resultados se obtienen con las derivadas de orden superior, por lo que estas son utilizadas preferentemente. Analicemos la influencia del espaciamiento en la exactitud del cálculo, entre los datos, cuando se conoce la función y se desea calcular la derivada. Por ejemplo, para la misma función, con aritmética de cuatro dígitos tenemos

h

f(x+h)

f(x-h)

f´(x) [O(Dx2)]

Error (%)

 

1

52.705

2.2136

25.2457

30.2056721

0.1

14.7781

10.8894

19.4435

0.28060165

0.01

12.8984

12.5106

19.39

0.00467334

0.01 12.8984 12.5106 19.39 0.00467334

0.001

12.7226

12.6838

19.4

0.05624872

0.0001

12.7051

12.7013

19

-2.00676672

 

0.00001

12.7034

12.703

20

3.15077188

0.0000001

12.7032

12.7032

0

-100

0.00000001

12.7032

12.7032

0

-100

0.00000001 12.7032 12.7032 0 -100

0.000000001

12.7032

12.7032

0

-100

Error

empieza

a crecer

Error es máximo!

Derivación numérica

21
21

Dos inconvenientes se presentan. En primer lugar el error para valores muy pequeños de Dx se hace muy grande. Esto es debido a errores debido a la cantidad de cifras empleadas para la representación de las cantidades. Sin embargo, a partir de cierto valor de Dx (alrededor de 0.01 en nuestro ejemplo), el error comienza a crecer. Para examinar las razones del crecimiento del error consideremos la formula de tres puntos para diferencias centradas

(

df x

)

dx

x

=

(

f x

+

x

)

(

f x

x

)

 

2

x

+ O

(

2

x

)

Si escribimos de manera explícita el error de redondeo tenemos

(

df x

)

dx

x

=

(

f x

+

x

)

+

(

e x

+

x

)

[

f x

(

x

)

+

(

e x

x

)]

 

2

x

+

O

(

2

x

)

Derivación numérica

22
22

Luego, el error total de la aproximación es:

(

df x

)

dx

x

f

(

x

+

x

)

(

f x

)

2

x

x

=

(

e x

+

x

)

(

e x

x

)

2

x

+

O

(

2

x

)

Si suponemos el caso más desfavorable y consideramos que el error está acotado por algún número >0 tenemos

que

(

df x

)

dx

x

f

(

x

+

x

)

(

f x

)

2

x

x

+

O

(

x

2

x

)

=

Entonces, a medida que disminuye Dx, el error de truncamiento disminuye pero el error de redondeo se incrementa. Por esta razón, usualmente, cuando se conoce la función y se calcula la derivada utilizando las formulas antes descritas, el valor de Dx debe escogerse de manera que no sea tan pequeño que el error de redondeo sea apreciable.

Derivación numérica

23
23

Fórmulas para puntos espaciados de manera no uniforme pueden ser deducidas y se encuentran fácilmente en la literatura. Inclusive, en algunos casos, se construye el polinomio interpolante de Lagrange de segundo orden, que pasa por conjuntos de tres puntos irregularmente espaciados y se deriva el mismo obteniéndose

f

(

x

)

=

2

 

x

x

i

 

x

i + 1

 

(

x

i

1

x

2 x

i

)(

x

x

i

i

1

1

x

x

i

i

+

1

)

 

(

x

i

+

1

x

i

1

)(

x

i

+

1

x

i

)

(

f x

i

1

)

+

(

)

f x

i + 1

2 x

 

x

i

1

x

i

+

1

(

x

i

x

i

1

)(

x

i

x

i

+

1

)

(

f x

i

)

+

Derivación numérica

24
24

Con esta expresión es posible estimar la derivada en el interior del dominio [x i-1 ,x i+1 ]. No siempre es mas conveniente utilizar expresiones con mayor cantidad de puntos debido a la imposibilidad de reflejar de manera adecuada cambios abruptos (por ejemplo ondas de choque) o las condiciones de borde (necesidad de discretizar la malla de manera muy fina).

Capítulo II

25
25

Derivación e integración numérica

• Introducción

• Derivación numérica

Integración numérica

• Referencias

Integración numérica

26
26

Al igual que para el cálculo de derivadas, diferentes métodos están disponibles. En particular, si se puede trazar un polinomio interpolante, o splines, las integrales pueden ser calculadas. Nuevamente este procedimiento puede resultar muy engorroso por lo que es necesario desarrollar otros métodos. El método mas burdo se obtiene a partir de la definición de integración definida. Considere una secuencia de datos equiespaciados (por simplicidad)

Integración numérica

27
27

f(x)

f(x)

x

y

1

1.3

2

3.5

3

4.2

4

5

5

7

6

8.8

7

10.1

8

12.5

9

13

10

15.6

Si utilizamos la definición de integración

b

a

f

(

x

)

dx

=

lim

n

n

i = 1

f

(

x

)

x

INTEGRACION NUMERICA

12 10 8 6 4 2 0 0 2 4 6 8 10 12 x
12
10
8
6
4
2
0
0
2
4
6
8
10
12
x
INTEGRACION NUMERICA
12
10
8
6
4
2
0
0
2
4
6
8
10
12
x

Integración numérica

28
28

Se obtiene una primera fórmula para integración (regla del rectángulo)

b

(

)

a f x dx

=

n

1

i = 1

(

)

lim

n

f x dx

=

n

1

(

f x

i

i = 1

)

x

Si los puntos están espaciados de manera uniforme x=h

b

(

)

a f x dx

=

n

1

(

h

f x

i

i = 1

)

=

[

h f

0

+

f

1

+

f

2

+

f

n

2

+

f

n

1

]

Salvo por la acumulación de los errores de redondeo, mientras más puntos se escojan, más preciso será el cálculo de la integral.

Integración numérica

29
29

Aplicación: integre, en el intervalo [0,6] la función

(

)

f x =x

2

2

x+

8

Considere diferentes valores de h. Si hacemos tendremos

b

a

b

a

6

0

(

)

f x dx

=

n

1

(

h

f x

i

i = 0

x

e dx

=

n

1

(

h

a

+

)

ih

)

2

x

e dx

i = 0

n

1

(

)

2

h

ih

=

i = 0

(

2

= h

[(0

h

)

2

2(0

h

)

+

8

+

(

2

a

+

)

ih

+

)

ih

+

(1 )

h

2

8

=

2(1

h

)

8

+

8

+

+

((

n

1) )

h

2

2((

n

h =

b

a

n

1)

h

)

+

8]

Integración numérica

30
30

Si escogemos h=1 tendremos

x

f(x)

0

8

1

7

2

8

3

11

4

16

5

23

6

 

Luego,

b

(

)

a f x dx

=

n

1

(

h

f x

i

i = 0

)

=

1[8

+

7

+

8

+

11 16

+

+

23]

=

73

Para estimar el error, comparemos con la solución analítica

(

f

)

x dx=

3

x

3

2

x

+

8

x

+

C

Integración numérica

31
31

Entonces,

6

0

(

2

x

2

x

+

)

8

dx

=

x

3

3

2

x

+

8

x

+

C

6

0

= 84

y el error relativo es:

E =

84

73

84

*100

=

13 .1%

Para disminuir el error, escojamos valores de h mas pequeño. La tabla siguiente presenta algunos resultados.

n

h

Integral

Error

6

1

73.0000

-13.09524

60

0.1

82.8100

-1.41667

600

0.01

83.8801

-0.14274

6000

0.001

83.9880

-0.01428

60000

0.0001

83.9988

-0.00143

Integración numérica

32
32

Aplicación: integre, en el intervalo [0,6] la función

(

)

f x =e

x

Considere diferentes valores de h.

Si hacemos

h =

b

a

n

b

a

(

)

f x dx

=

n

1

(

h

f x

i

i = 0

)

b

a

6

0

x

e dx

x

e dx

=

=

n

1

a

e

h

+ ih

i = 0

n

1

e

h

ih

=

i = 0

[

he

0

h

+

h

e

tendremos

+

2

e

h

+

+

(

e

n

2

)

h

+

(

e

n

1

)

h

]

Integración numérica

33
33

La tabla siguiente presenta los valores obtenidos para distintos h.

n

h

Integral

Error

6

1

234.20418

-41.8023

60

0.1

382.64266

-4.9167

600

0.01

400.42000

-0.4992

6000

0.001

402.22761

-0.0500

60000

0.0001

402.40867

-0.0050

Nótese que a diferencia del ejemplo anterior, la disminución del error al disminuir el paso h es mas lenta en este caso. En algoritmos que requieran eficiencia, podría requerirse valores de h muy pequeños, lo que demandaría tiempos de cálculo muy grande. Esto lleva a la búsqueda de métodos mas eficientes.

Integración numérica

34
34

El siguiente programa fue utilizado para obtener los resultados anteriores

% programa integra

clear all

clc

% Integración de f(x) entre a y b para

% distintos valores de discretización

% Número de intervalos inicial

n=6;

% Número de discretizaciones a probar

num_disc = 5;

for k=1:num_disc

h=(b-a)/n;

sum=0;

for j=1:n

i=j-1;

% Definición de la función

f=inline('x^2-2*x+8');

% f=inline('exp(x)');

% Integral teórica

f_int=inline('x^3/3-x^2+8*x');

% f_int=inline('exp(x)');

% Limites de la integración

sum=sum+f(a+i*h); end int=h*sum; int_teo=f_int(b)-f_int(a);

error=(int-int_teo)/int_teo*100;

fprintf('%8d %12.5f %8.5f %8.5f\n',n, h, int, error)

n=n*10;

a=0; b=6;

% Grafica de la función

ezplot(f,[a,b])

end

Integración numérica

35
35

f(x)

Una nueva fórmula para integración es obtenida a partir de la regla del trapecio en la cual, rectas son trazadas entre los distintos puntos que constituyen la data.

12

10

8

6

4

2

0

INTEGRACION NUMERICA

0 2 4 6 8 10 12 x
0
2
4
6
8
10
12
x

En este caso, la fórmula para integración es

b

a

f

(

)

x dx

n

i = 0

  f

+ f

i

i + 1

2

x =

h

2

(

f

0

+

2

f

1

+

2

f

2

+

+

2

f

n

1

+

f

n

)

Integración numérica

36
36

Aplicación: integre, en el intervalo [0,6] la función

(

)

f x =e

x

Utilizando la regla del trapecio. Considere diferentes valores de h.

b

a

b

a

b

a

Si hacemos

 

h =

f

i

+

f

i + 1

2

n

 

 

i

+

f

i + 1

 

 
 

x

n

i = 0

f

2

=

tendremos

h

2

(

e

0

(

f

0

+

h

+

2<