Está en la página 1de 10

Semana 6 - Diferencias Finitas - Derivada

Aproximación Numérica de la Derivada

La diferenciación numérica, se utiliza para evaluar las derivadas por medio de valores
dados en los puntos de una retícula. En el trabajo científico son importantes ya que
facilitan la solución numérica de ecuaciones diferenciales ordinarias y parciales; por
ello, este capítulo trata de las técnicas para calcular derivadas empleando la
aproximación por diferencias.

Aproximación por diferencias

A fin de lograr la diferenciación de los polinomios de interpolación NGF, NGB y


ST, es necesario considerar inicialmente la derivada de los coeficientes binomiales,
definidos como:

 u  u (u − 1)(u − 2).......(u − t + 1)
  = (6.1)
t  t!

x − xk
Con: u=
∆x

Las primeras dos derivadas de la ecuación (6.1), respecto a u son:

d  u   u  t −1 1
  =  ∑ (6.2)
du  t   t  i =0 u − i

 0 para : t = 1
d2  u   u  t −1 t −1 1
  =   para : t ≥ 2
du 2   ∑∑
   t  i =0 j =0 (u − i )(u − j )
t
(6.3)

 j ≠i

En lo que sigue aplicaremos las ecuaciones (6.2) y (6.3) a los polinomios


interpolantes NGF, NGB y ST a fin de reproducir las fórmulas de recursión para la
primera y segunda derivada. La aplicación de las fórmulas de diferenciación no solo es
aplicable al caso de valores de función conocidos por evaluación, sino al caso de
valores tabulados.

Formula de Diferenciación DNGF y DDNGF

Empleando la ecuación (6.2) para la primera derivada del polinomio


interpolante NGF, es posible obtener la formula DNGF, la cual en su forma general
permite calcular la derivada sobre puntos de función previamente tabulados.
Esto es útil si se desconoce la función problema, y se logra evaluando puntos a
la derecha de algún xk, donde la primera derivada evaluada en x (punto arbitrario
perteneciente al dominio de valores igualmente espaciados) se desconoce, así:

1 m t  u  t −1 1
F ' m (u ) = ∑ ∆ f k  t ∑
∆x t =1
(6.4)
  i =0 u − i

Desarrollando la ecuación (6.4) para m = 2 y k = 0

1 (u 2 − u )  1 1 
F ' 2 (u ) = [( f1 − f 0 ) + ( f 2 − 2 f1 + f 0 )  + ]
∆x 2  u u −1

Si se conoce la función problema, es posible evaluar puntos equidistantes del


dominio los cuales sirven para aplicar la ecuación (6.4), pero en este caso se elige x =
xk por lo que u = 0 resultando una ecuación simplificada, es decir:

t −1 ∆ f k
t
1 m
F'm ( xk ) = ∑ (−1) t
∆x t =1
(6.5)

Desarrollando la ecuación (6.5) para m = 2 y k = 0

1 ∆2 f 0 1 1 3
F ' 2 ( x0 ) = [∆f 0 − ]= [ − f 2 + 2 f1 − f 0 ]
∆x 2 ∆x 2 2

La ecuación de diferenciación DDNGF se obtiene empleando la ecuación (6.3)


para la segunda derivada del polinomio NGF, su utilidad es la misma que la formula
(6.4); sin embargo, permite evaluar la segunda derivada sobre puntos de función
previamente tabulados.

1 m
 u  t −1 t −1 1
F ' ' m (u ) =
(∆x) 2
∑∆ f t
 t ∑∑ (u − i )(u − j )
k (6.6)
t =2   i =0 j =0
j ≠i

Desarrollando la ecuación (6.6) para m = 2 y k = 0

1
F ' ' 2 (u ) = [( f 2 − 2 f1 + f 0 )]
(∆x )2
Nuevamente si se conoce la función problema, es posible evaluar puntos equidistantes
del dominio y aplicar la ecuación (6.6), pero en este caso se elige x = xk por lo que u =
0 resultando:

2 m
∆t f k t −1
1
F' ' m ( x k ) =
(∆x) 2
∑ (−1) t
t =2 t
∑i
i =1
(6.7)
Desarrollando la ecuación (6.7) para m = 2 y k = 0

2 ∆2 f 0 1
F ' ' 2 ( x0 ) = = [ f 2 − 2 f1 + f 0 ]
(∆x) 2
2 (∆x) 2

Formula de Diferenciación DNGB y DDNGB

Empleando nuevamente la ecuación (6.2), pero esta vez para la primera


derivada del polinomio interpolante NGB, es posible obtener la formula DNGB, que al
igual que en el caso anterior permite calcular la derivada sobre puntos de función
previamente tabulados.

1 m t  u + t − 1 t −1 1
F ' m (u ) = ∑ ∇ f k  t ∑
∆x t =1
(6.8)
  i =0 u + i

Desarrollando la ecuación (6.8) para m = 2 y k = 0

1 (u 2 + u )  1 1 
F ' 2 (u ) = [( f 0 − f −1 ) + ( f 0 − 2 f −1 + f − 2 )  + ]
∆x 2  u u +1

Si se elige x = xk entonces u = 0, resultando el siguiente desarrollo en serie:

1 m ∇t fk
F' m ( x k ) = ∑
∆x t =1 t
(6.9)

Desarrollando la ecuación (6.9) para m = 2 y k = 0

1 ∇2 f0 1 3 1
F ' 2 ( x0 ) = [∇f 0 + ]= [ f 0 − 2 f −1 + f −2 ]
∆x 2 ∆x 2 2

La fórmula de diferenciación DDNGB se obtiene empleando la ecuación (6.3) para la


segunda derivada del polinomio NGB ó bien derivando la ecuación (6.8) respecto a u
para x como punto arbitrario en el dominio conocido con inicio en xk.

1 m
 u + t − 1 t −1 t −1 1
F ' ' m (u ) = ∑∇ t
f k  ∑∑ (6.10)
(∆x) 2 t =2  t  i =0 j =0 (u + i )(u + j )
j ≠i

Desarrollando la ecuación (6.10) para m = 2 y k = 0

1
F ' ' 2 (u ) = [( f 0 − 2 f −1 + f − 2 )]
(∆x )2
Nuevamente, si se elige x = xk con u = 0, tenemos que la fórmula recursiva resultante
es:
2 m
∇t fk t −1
1
F' ' m ( x k ) =
(∆x) 2

t =2 t
∑i
i =1
(6.11)

Desarrollando la ecuación (6.11) para m = 2 y k = 0, tenemos:

2 ∇2 f0 1
F ' ' 2 ( x0 ) = = [( f − 2 f −1 + f − 2 )]
(∆x) 2
2 (∆x )2 0

Formula de Diferenciación DST y DDST

Estas fórmulas de derivación parten de la ecuación para el polinomio


interpolante de Stirling con diferencias centrales; así, usando la ecuación (5.21) en
conjunto con la fórmula del promedio central para diferencias de orden impar y para el
caso de evaluar x como punto del dominio conocido, tenemos:

1 n  u + t - 1 u 2t 2 t −1
1 1
F ' 2 n (u ) = ∑ 
 

∆x t =1  2t - 1 
[( µδ 2 t −1
f k +
2t
δ f k ∑
)
i =1 u − t + i
+ δ 2t f k ]
2t
(6.12)

Desarrollando la ecuación (6.12) para n = 1 y k = 0

1 1
F ' 2 (1) (u ) = [ ( f 1 − f −1 ) + u ( f 1 − 2 f 0 + f −1 )]
∆x 2

Si desarrollamos (6.12) para x = xk, con xk como punto de inicio con u = 0, se obtiene:

1 1 1 1
F '2n ( xk ) = [ µδf k + µδ 3 f k + µδ 5 f k − µδ 7 k + .....]
∆x 6 30 140

La fórmula recursiva resultante es:

t −1 [(t − 1)!]
2
1 n
F' 2n ( x k ) = ∑
∆x t =1
µδ 2 t −1
f k ( −1)
(2t − 1)!
(6.13)

Desarrollando la ecuación (6.13) para n = 1 y k = 0

1
[ f − f −1 ]
1  [1!] 2  µδf 0 2 1 1 1 
F ' 2 ( x0 ) = µδ
 0 f  = = =  ( f1 − f −1 )
∆x  1!  ∆x ∆x ∆x  2 

La fórmula para diferenciación de segundo orden se obtiene usando la ecuación (6.13)


sobre la ecuación de interpolación ST. En este caso tomando x como punto del
dominio en evaluación, tenemos:
δ 2 fk 1 n  u + t - 1 u
F ' ' 2 n (u ) =
(∆x) 2
+ ∑  [( µδ 2t −1f k + δ 2t f k )
∆x t =1  2t - 1  2t
(6.14)
2 t −1 2 t −1
1 δ 2t f k 2 t −1
1
∑ ∑
i =1 j =1 (u − t + i )(u − t + j )
+
t

i =1 u − t + i
]
j ≠i

Desarrollando la ecuación (6.14) para n = 1 y k = 0

 1 1 
F ' ' 2 (1) (u ) =  + [( f 1 − 2 f 0 + f −1 )]
 (∆x)
2
∆x 

Si elegimos a xk como punto de inicio y evaluación, la ecuación (6.14) se transforma


en:

1 1 1 1 8
F ' ' 2n ( xk ) = [δ 2 f k − δ 4 f k + δ 6 f k − δ f k + .......]
(∆x) 2
12 90 560

Luego la formula recursiva es:

1 n
(−1) t −1 [(t − 1)!] 2
F ' '2n ( xk ) =
(∆x) 2
∑ δ 2t f k
t =1 t (2t − 1)!
(6.15)

Desarrollando la ecuación (6.15) para n = 1 y k = 0, se obtiene:

1
F ' ' 2 (1) ( x0 ) = ( f1 − 2 f 0 + f −1 )
(∆x) 2

Ejemplo a:

Para un móvil que se desplaza con MRUA, se sabe que ecuación de


movimiento está dada por:
x = 5.0 t + 5.0 t 2

Se desea encontrar la velocidad y la aceleración para t = 7.5 segundos.


Se evalúa la función dada para valores de t delante de t = 7.5 para un intervalo de
avance definido en este caso 0.5 unidades temporales, lo que resulta en la siguiente
tabla:
k xk Tiempo (s) Posición (m) fk
0 x0 7.5 318.75 f0
1 x1 8.0 360.00 f1
2 x2 8.5 403.75 f2

Ahora considerando que:


∆x = 0.5, k = 0, m = 2 y x0 = 7.5
Luego aplicando la ecuación (6.5) y reemplazando valores se tiene:

1 ∆2f 0
F'2 (7.5) = [∆f 0 − ]
0.5 2
1 1 3
= [− f 2 + 2f1 − f 0 ]
0.5 2 2
1 1 3
= [− (403.75) + 2(360) − (318.75)]
0.5 2 2
m
F'2 (7.5) = 80
s
Para la segunda derivada empleamos la ecuación (6.7) junto con los parámetros ya
considerados, así:
2 ∆2f 0
F' '2 (7.5) =
(0.5) 2 2
1
= [f 2 − 2f1 + f 0 ]
0.25
1
= [403.75 − 2(360) + 318.75]
0.25
m
F' '2 (7.5) = 10 2
s

Como se puede observar los resultados computacionales coinciden perfectamente con


los valores calculados analíticamente esto debido a que se empleó un intervalo de
avance pequeño y a que se evaluó la función hasta dos cifras decimales.

Ejemplo b:

Se conocen los valores de tiempo y posición para un móvil que se desplaza


con MRUA, en base a estos se desea conocer la velocidad para t = 7.7 seg.

Se observa que el tiempo en el cual se desea conocer la velocidad se ubica


entre los valores del dominio conocido, es decir: 7.5 < 7.7 < 8.5 En este caso
aplicaremos la ecuación (6.4), para lo cual es necesario calcular u, dado que x ≠ x0, y
siendo que seguimos tomando puntos a la derecha de x0 aplicamos:

x − x0
u=
∆x
Entonces considerando:
∆x =0.5, m = 2, x = 7.7, x0 = 7.5, k = 0

Se tiene que:
7.7 − 7.5
u= = 0.4
0.5
Con estos datos la ecuación (6.4) se escribirá como:

1 2 t  0.4  t −1 1
F'2 (7.7) = ∑ ∆ f 0  t ∑
0.5 t =1   i = 0 0.4 − i

Desarrollando la sumatoria:

1   0.4   1  2  0.4   1 1 
F'2 (7.7) = ∆f 0     + ∆ f 0    + 
0.5   1   0.4   2   0.4 0.4 − 1 

Desarrollando las diferencias hacia adelante:

1   0.4   1   0.4   1 1 
F'2 (7.7) = (f1 − f 0 )    + (f 2 − 2f1 + f 0 )   + 
0.5   1   0.4   2   0.4 0.4 − 1 

Solucionando los coeficientes binomiales y reemplazando valores:

1   1   1 1 
F'2 (7.7) =  (360 − 318.75)(0.4)   + (403.75 − 720 + 318.75)(−0.12)  + 
0.5   0.4   0.4 0.4 − 1 

Finalmente:
m
F'2 (7.7) = 82.0002
s
Ejemplo c:

Solucionar la ecuación (6.12) para la tabla de valores de tiempo y posición de


un móvil con MRUA.

k xk Tiempo (s) Posición (m) fk


-1 x-1 7.5 318.75 f-1
0 x0 8.0 360.00 f0
1 x1 8.5 403.75 f1

Calcular la velocidad para t = 8.0 seg.

En este caso x = x0; luego, considerando los siguientes valores iniciales: ∆x = 0.5, k =
0, x0 = 8.0 y n = 1, se tiene que:

t −1 [(t − 1)!]
2
1 1
F '2 (8.0) = ∑
0.5 t =1
µδ 2 t −1
f 0 ( −1)
(2t − 1)!
1  [1!]2  µδf 0
= µδ =
0.5  1!  0.5
f 0

Aplicando el promedio central:


1
µδf 0 = [ f1 − f −1 ]
2
Reemplazando:
0.5 * [403.75 − 318.75] m
F '2 (8.0) = = 85
0.5 s

Como se puede observar en este caso la diferencia con el valor analítico es


considerable esto se debe a que la diferencia central actúa sobre dos puntos
equidistantes ver figura (6.1); por lo cual, es necesario disminuir el intervalo de avance
para incrementar la precisión.

Figura (6.1). Explicación geométrica de las aproximaciones por diferencias para f’(x0).
Comparación de los tres tipos de aproximación para la primera derivada

El valor de h debe ser del orden de 10-2 o 10-3 para conservar la estabilidad de la
formula y disminuir el error por redondeo.

Los resultados computacionales para los datos de la tabla usada en los ejemplos a, b
y c, generados con la función y = 5.0t + 5.0t 2 son los siguientes:

DIFERENCIACION DST,DDST,DNGB,DDNGB,DNGF Y DDNGF


PARA N=1 Y M=2

INGRESE PUNTO A EVALUAR XP Y ANCHO DE AVANCE H


7.5 0.5

RESULTADOS

PUNTO A EVALUAR: 7.50


DELTA DE X: 0.5

PRIMERA DERIVADA DST


80.00000
SEGUNDA DERIVADA DDST
10.00000
PRIMERA DERIVADA DNGF
80.00000
SEGUNDA DERIVADA DDNGF
10.00000
PRIMERA DERIVADA DNGB
80.00000
SEGUNDA DERIVADA DDNGB
10.00000
DIFERENCIACION DST,DDST,DNGB,DDNGB,DNGF Y DDNGF
PARA N=1 Y M=2

INGRESE PUNTO A EVALUAR XP Y ANCHO DE AVANCE H


8.0 0.5

RESULTADOS

PUNTO A EVALUAR: 8.0


DELTA DE X: 0.5

PRIMERA DERIVADA DST


85.00000
SEGUNDA DERIVADA DDST
10.00000
PRIMERA DERIVADA DNGF
85.00000
SEGUNDA DERIVADA DDNGF
10.00000
PRIMERA DERIVADA DNGB
85.00000
SEGUNDA DERIVADA DDNGB
10.00000

Codificación:

La codificación que genera los resultados mostrados se presenta a


continuación:

PROGRAM APROXIMACION_DERIVADA_ST_NGF_NGB

REAL(4) XP,H

WRITE(*,*)' DIFERENCIACION DST,DDST,DNGB,DDNGB,DNGF Y DDNGF'


WRITE(*,*)' PARA N=1 Y M=2'
WRITE(*,*)''
WRITE(*,*)'INGRESE PUNTO A EVALUAR XP Y ANCHO DE AVANCE H'
READ(*,*)XP,H
!DNGF Y DDNGF
DNGF=(1.0/H)*(-0.5*F(XP+2.0*H)+2.0*F(XP+H)-1.5*F(XP))
DDNGF=(1.0/(H**2))*(F(XP+2.0*H)-2.0*F(XP+H)+F(XP))
!DNGB Y DDNGB
DNGB=(1.0/H)*(1.5*F(XP)-2.0*F(XP-H)+0.5*F(XP-2.0*H))
DDNGB=(1.0/(H**2))*(F(XP)-2.0*F(XP-H)+F(XP-2.0*H))
!DST Y DDST
DST=(1.0/H)*(0.5*(F(XP+H)-F(XP-H)))
DDST=(1.0/(H**2))*(F(XP+H)-2.0*F(XP)+F(XP-H))
WRITE(*,*)'RESULTADOS'
WRITE(*,*)'PUNTO A EVALUAR : ', XP
WRITE(*,*)'DELTA DE X: ',H
WRITE(*,*)'PRIMERA DERIVADA DST'
WRITE(*,10)DST
WRITE(*,*)'SEGUNDA DERIVADA DDST'
WRITE(*,10)DDST
WRITE(*,*)'PRIMERA DERIVADA DNGF'
WRITE(*,10)DNGF
WRITE(*,*)'SEGUNDA DERIVADA DDNGF'
WRITE(*,10)DDNGF
WRITE(*,*)' PRIMERA DERIVADA DNGB'
WRITE(*,10)DNGB
WRITE(*,*)'SEGUNDA DERIVADA DDNGB'
WRITE(*,10)DDNGB
10 FORMAT(1X,F9.5)
END

FUNCTION F(X)
F=5*x+5*X**2
RETURN
END

También podría gustarte