Métodos de derivación numérica:
El problema de la derivación numérica consiste en la evaluación de
la derivada de la función en un punto, cuando únicamente conocemos
los valores de la función en una colección de puntos x0, x1,... xn.
Aunque, en apariencia se trata de un problema similar al de la
integración numérica; de hecho la derivación es más complicada ya que,
en la integración los errores tienden a cancelarse, y, como vimos, no
necesitamos que la aproximación describa con fidelidad la función
localmente.
Sin embargo, la derivada es una propiedad esencialmente local, por lo
cuál deberemos aproximar la función lo más fielmente posible en el
entorno inmediato del punto en el que la queramos calcular.
8
7
6
5
4
3
2
1
0
-2
0
2
4
6
8
10
12
8
7
6
5
4
3
2
1
0
-2
0
2
4
6
8
10
12
b

a
b
f ( x ) dx 

df ( x )
pn ( x ) dx
dx
a
dp n ( x )

dx
x  x0
xx0
f(x)
8
7
6
pn(x)
5
4
3
2
1
x0
a
0
-2
0
2
4
6
8
b
10
12
Como ya vimos en el caso de interpolación por rectas teníamos que:
No están definidas las derivadas en los puntos xi; sí, en cambio, en
los puntos intermedios xi<x<xi+1, para los cuales la primera derivada
es constante y las derivadas superiores se anulan:
y'  x  
yi  1  yi
xi  1  x i
para
x i  x  x i 1
 y'  x i 

Aunque no están definidas las derivadas en los puntos xi; sí que
se pueden definir las derivadas por la derecha y por la izquierda que,
en el caso, general, serán diferentes:
y'
y'
xi  
yi  1  yi
xi  
yi  yi  1
( )
( )
xi  1  x i
xi  x i  1
 derivada
por
 derivada
por la izquierda
la derecha
Mientras que, para el caso de interpolación por parábolas veíamos que:
Las primeras derivadas en los puntos intermedios x, xn-1<x<xn+1
ahora no son constantes:
y'  x  
yn  1  y n  1

yn  1  yn  1  2 yn
2h
h
2
( x  xn ) ; x n  h  x  xn  h
Sí es constante la 2ª derivada y, por tanto, nulas todas las demás
derivadas de orden superior:
y' '  x  
y
(n )
yn  1  yn  1  2 yn
h
2
para
x n  h  x  xn  h
 x   0 ; (con n  3 ) para x n  h  x  x n  h
Si quisiéramos evaluar el valor de la primera derivada en el punto xn,
que es un punto de la tabla de datos de la que disponemos, vemos que,
mediante la interpolación por rectas no existe tal derivada, mientras que,
con la interpolación parabólica sería:
y'  x  
y'  x n  
yn  1  y n  1

2h
yn  1  yn  1  2 yn
h
2
( x  xn ) ; x n  h  x  xn  h
yn  1  yn  1
2h
que es exactamente el mismo valor que obtenemos si promediamos las
derivadas por la izquierda y por la derecha de la interpolación por rectas:
y n  1  y n 
y'  x n  


1
y
 yn  1
h
  y' (  )  x n   y' (  )  x n   n  1
y  y n  1 
2
2h
y' (  )  x n   n


h
( )
En cuanto a la segunda derivada:
y' '  x n  
yn  1  y n  1  2 yn
h
2
podríamos re-escribirla del modo siguiente:
y' '  x n  
yn  1  y n  1  2 yn
h
y'
y' '  x n  
n
1
 y'
2
2
n
yn  1  y n


y n  y n 1
h
h
h
1
2
h
lo cuál es acorde con la definición de derivada:
f ' ( x 0 )  lim
h 0
f ( x 0  h)  f ( x 0 )
h
 lim
h0
f ( x0 
h
2
)  f ( x0 
h
h
2
)
Si quisiéramos calcular la 3ª derivada tendríamos que recurrir al
polinomio de interpolación de orden 3, o bien podríamos hacer lo
siguiente:
y' ' '  x n  
y' ' n  1  y' ' n  1
2h
Basándonos en el hecho de que:
f ' ' ' (x 0 )  lim
h 0
f ' ' ( x 0  h)  f ' ' ( x 0  h)
2h
Si quisiéramos calcular el orden del error cometido al tomar estas
aproximaciones:
para la 1ª derivada:
y'  x n  
yn  1  yn  1
2h
Tomando esta fórmula estaríamos haciendo la siguiente aproximación:
f ' (x0 ) 
f ( x 0  h)  f ( x 0  h)
2h
Sabemos que ambas magnitudes son iguales en el límite de h tendiendo
a cero. Sin embargo, numéricamente, nosotros, estamos usando usando
unos h que, aunque pequeños, no son infinitesimalmente tendentes a cero.
Cuanto mayores sean los h, mayor será el error cometido. La relación
Entre el error y el valor de h se puede encontrar desarrollando en serie la
aproximación:
Desarrollando en serie la aproximación:
f ( x0  h )  f ( x 0  h )
2h

1
2h
{ f ( x 0 )  f ' (x 0 )h 
2h
 f ' ( x0 ) 
h 
2
2
h 
2
2
f ' ' ' ( x0 )
6
lim
h 0
2h
f ' ' ' (x 0 )
3!
h 
2
Y vemos que, efectivamente:
f ( x 0  h)  f ( x 0  h)
f' ' ' ( x 0)
h3 
3!
f ' ' ( x0 )
 [ f ( x 0 )  f ' ( x 0) h 
f ( x0  h )  f ( x 0  h )
f' ' ( x0 )
 f ' ( x0 )
h 
3
]}
para la 2ª derivada:
y' '  x n  
yn  1  y n  1  2 yn
h
2
Tomando esta fórmula estaríamos haciendo la siguiente aproximación:
f ' ' ( x0 ) 
f ( x 0  h)  f ( x 0  h)  2 f ( x 0 )
h
Desarrollando en serie:
2
f ( x 0  h )  f (x 0  h )  2 f ( x 0 )
h

1
h
2

2
{ f ( x 0 )  f ' ( x 0 )h 
 [ f ( x 0 )  f ' ( x 0) h 
f' ' ( x0 )
2
f ' ' ( x0 )
 2 f ( x 0 )}  f ' ' (x ) 
0
h 
2
12
3!
f ' ' ' ( x0 )
h 
2
2
f ' v (x0 )
f ' ' ' ( x0 )
3!
h 
2
v
h 
3
h 
3
f ' ( x0 )
4!
f' v ( x0 )
4!
h 
4
h 
4
Ejercicios:
- Justificar las siguientes aproximaciones:
y' ' '  x n  
y'  x n  
y' '  x n  
y n  2  y n  2  2 y n  1  2y n  1
2h
3
8 yn  1  y n  2  yn  2  8 yn  1
12 h
16 ( y n  1  y n  1 )  (y n  2  y n  2 )  30 y n
12 h
2
y' ' '  x n  
y n  2  y n  2  2 y n  1  2y n  1
2h
3
Tomando esta fórmula estaríamos haciendo la siguiente aproximación:
f ' ' ' (x 0 ) 
f (x 0  2 h)  f ( x 0  2 h)  2 f ( x 0  h)  2 f ( x 0  h)
2h
3
Desarrollando en serie:
f ( x 0  2 h)  f ( x 0  2 h)  2 f ( x 0  h)  2 f ( x 0  h)
2h
3
f ( x 0  2 h)  f ( x 0  2 h)  2 f ( x 0  h )  2 f ( x 0  h)

2h 3

1
2h
3
{ f (x 0 )  f ' ( x 0 )2h 
 [ f ( x 0 )  f ' ( x 0 )( 2 h) 
 2[ f ( x 0 )  f ' ( x 0 )h 
f '' ( x 0 )
( 2 h) 
f ' ' ' ( x0 )
2
f' ' ( x0 )
2
v
(2 h) 
3
3!
2
f ' ' ( x0 )
 2[ f ( x 0 )  f ' ( x 0 )(  h) 
(2h ) 
f '' ' ( x0 )
2
f' ( x0 )
4!
h 
2
f ' ' ' (x 0 )
h 
( 2 h) 
f ' (x0 )
2
(  h) 
2
3!
3
( 2h) 
5
5!
h 
f ( x0 )
h 
5
]
5!
v
(  h) 
3
f ' ( x 0)
4!
f ( x 0  2 h)  f ( x 0  2 h)  2 f ( x 0  h)  2 f ( x 0  h)
2h
( 2h ) 
f (x0 )
v
4
4!
f '' ' ( x0 )
(2h) 5 
v
4
4!
3!
f' ' ( x0 )
5!
v
v
3
(2h ) 
f ' ( x0 )
3
3!
2
v
f (x0 )
4
v
(  h) 
4
f ( x0 )
(  h) 5 
]}
5!
 f ' ' ' ( x0 ) 
f v ( x0 )
4
h 
2
]
y'  x n  
8 yn  1  y n  2  yn  2  8 yn  1
12 h
Tomando esta fórmula estaríamos haciendo la siguiente aproximación:
f ' (x0 ) 
8 f ( x 0  h)  f ( x 0  h)   f (x 0  2 h)  f ( x 0  2 h)
12 h
Desarrollando en serie:
8 f ( x 0  h)  f (x 0  h )  f ( x 0  2h)  f ( x 0  2h)
12 h
8 f ( x 0  h)  f (x 0  h )  f ( x 0  2h)  f ( x 0  2h )

12 h

1
12 h
{8[ f ( x 0 )  f ' ( x 0 )h 
f ' ' (x 0 )
( h) 
f '' ' ( x0 )
2
 [ f ( x 0 )  f ' ( x 0 )(  h ) 
f' ' ( x0 )
 f ( x 0 )  f ' ( x 0 )(  2h ) 
f ' ' ( x0 )
 [ f ( x 0 )  f ' ( x 0 )2 h 
h 
f '' ' ( x0 )
2
2
3!
2
2
f' ' ( x0 )
2
v
f ' ( x0 )
h 
3
4!
( 2h ) 
( 2h ) 
2
(  h) 
h 
5
v
(  h) 
4
f ( x 0)
4!
3!
f '' ' ( x0 )
v
( 2h) 
3
( 2h) 
3
f' ( x 0 )
f ' v (x0 )
4!
(  h) 
5
]]
5!
4!
v
( 2h) 
( 2h) 
8 f ( x 0  h)  f (x 0  h )  f ( x 0  2h)  f ( x 0  2h)
12 h
5!
v
f ' ' ' (x 0 )
3!
h 
f ' (x0 )
3
3!
2
v
f ( x0 )
4
4
4
f v ( x 0)
5!
f ( x0 )
5!
( 2 h ) 
( 2h) 
 f ' ( x0 ) 
5
5
]}
f ' v (x0 )
30
h
4
y' '  x n  
16 ( y n  1  y n  1 )  (y n  2  y n  2 )  30 y n
12 h
2
Tomando esta fórmula estaríamos haciendo la siguiente aproximación:
f ' ' ( x0 ) 
16  f ( x 0  h )  f (x 0  h )   f ( x 0  2h )  f (x 0  2 h)   30 f ( x 0 )
12 h
2
Desarrollando en serie:
16  f ( x 0  h)  f ( x 0  h)    f ( x 0  2h)  f ( x 0  2h )  30 f ( x 0 )
12 h
2
16  f ( x 0  h)  f ( x 0  h)    f ( x 0  2h)  f ( x 0  2h )  30 f ( x 0 )
12 h

1
12 h
2
{16[ f ( x 0 )  f ' ( x 0 )h 
 [ f ( x 0 )  f ' ( x 0 )(  h) 
 [ f ( x 0 )  f ' ( x 0 )( 2 h) 
 [ f ( x 0 )  f ' ( x 0 )2 h 
f' ' ( x0 )
h 
2
( h) 
2
f ' ( x0 )
2
f '' ' ( x 0 )
( 2 h) 
( 2h) 
2
f' ( x0 )
( h) 
3
f '' ' ( x 0 )
v
h 
( 2 h) 
v
( h) 
( 2h) 
4!
6
(  h) 
5
f ' (x0 )
5!
f ' ( x0 )
f ' (x0 )
h 
v
f ( x 0)
4
4!
( 2h ) 
4
f (x0 )
5!
v
( 2h) 
4
f ( x 0)
(  h) 
6
]]
6!
v
v
3
f ' (x0 )
6!
v
3
5
5!
4!
3!
3!
h 
v
f ' ' ' ( x0 )
2
v
f (x0 )
4
4!
3!
f' ' ( x0 )
f' ' ( x0 )
h 
3
3!
2
2
v
f ' ' ' ( x0 )
2
f' ' ( x0 )

2
v
( 2h) 
5
f ' (x0 )
6!
( 2h) 
6
v
( 2h) 
5!
5
f ' (x0 )
( 2h) 6 
]
6!
 30 f ( x 0 )}
16  f ( x 0  h)  f ( x 0  h)    f ( x 0  2h)  f ( x 0  2h )  30 f ( x 0 )
12 h
2
 f' ' ( x0 ) 
f v ' ( x0 )
90
h 
4
]
Calcular las tres primeras derivadas de la función sen x en x = 1,
para valores de h de 0.1, 0.01 y 0.001.
Calcular las dos primeras derivadas de la siguiente función en los
puntos 0.25, 0.5, 0.75 y 1.
y( x )  [ln arcsen x  ]
2
5
Calcular las tres primeras derivadas de la función sen x en x = 1,
para valores de h de 0.1, 0.01 y 0.001.
h = 0.1
y' (1) 
sen( 1.1)  sen( 0.9)
2 * 0.1
valor
 0.53940
exacto  cos( 1)  0 .5403023
  9 * 10
4
h = 0.1
y' ' (1) 
sen( 1.1)  sen( 0.9)  2 sen( 1)
0.1
valor
2
 0.84077
exacto   sen( 1)  0 .8414709
  7 * 10
y' ' ' (1) 
sen( 1.2)  sen( 0.8)  2 sen( 1.1)  2 sen( 0.9)
3
4
 0.53895
2 * 0.1
valor
exacto   cos( 1)   0 .5403023
  1 * 10
3
h = 0.01
y' (1) 
sen( 1.01)  sen( 0.99 )
2 * 0.01
valor
 0.5402933
exacto  cos( 1)  0 .5403023
  9 * 10
y' ' (1) 
sen( 1.01 )  sen( 0.99 )  2 sen( 1)
2
valor
6
 0.841464
0.01
exacto   sen( 1)  0 .8414709
  7 * 10
6
h = 0.01
y' ' ' (1) 
sen( 1.02 )  sen( 0.98)  2 sen( 1.01)  2 sen( 0.99 )
2 * 0.01
valor
3
 0.540305
exacto   cos( 1)   0 .5403023
  3 * 10
h = 0.001
y' (1) 
sen( 1.001 )  sen( 0.999 )
2 * 0.001
valor
 0.5403022
exacto  cos( 1)  0 .5403023
  9 * 10
8
6
h = 0.001
y' ' (1) 
sen( 1.001 )  sen( 0.999 )  2 sen( 1)
2
valor
 0.8417091
0.001
exacto   sen( 1)  0 .8414709
  1 * 10
y' ' ' (1) 
8
sen( 1.002 )  sen( 0.998 )  2 sen( 1.001 )  2 sen( 0.999 )
2 * 0.001
3
Calcular las dos primeras derivadas de la siguiente función en los
puntos 0.25, 0.5, y 0.75.
y( x )  [ln arcsen x  ]
2
y' ( x 0 ) 
{ln[arcsen(
5
x 0  h)] 2} 5  {ln[arcsen(
x 0  h)] 2 }5
2h
h = 10-2
y' (0.25 ) 
{ln[arcsen(
0.25  10  2 )] 2 }5  {ln[arcsen(
210
y' (0.25 )  2352 .61  2.353 10
3
2
0.25  10  2 )] 2 }5
h = 10-3
y' (0.25 ) 
{ln[arcsen(
0.25  10  3 )] 2 }5  {ln[arcsen(
210
y' (0.25 )  2.342 10
3
h = 10-4
y' (0.25 )  2.341896
10
h = 10-5
y' (0.25 )  2.3419 10
3
3
3
0.25  10  3 )] 2} 5
El valor exacto se puede evaluar teniendo en cuenta que la primera
derivada de la función es :
10 [ln arcsen x  ]
2
y' ( x ) 
4
1  x arcsen x 
2
10 [ln  arcsen 0.25  ]
2 4
y' (0.25 ) 
1  x 2  arcsen 0.25 
 2.34191 10
3
Para la segunda derivada:
y' '  x n  
y' ' (x 0 ) 
yn  1  y n  1  2 yn
{ln[arcsen(
h
2
x 0  h)] 2}5  {ln[arcsen(
h
h = 10-2
y' ' (0.25 )   3.68883 10
4
h = 10-3
y' ' (0.25 )   3.67825 10
h = 10-4
y' ' (0.25 )   3.678 10
4
4
x 0  h)] 2} 5  2{ln[arcsen(
2
x 0 )] 2}5
Para los otros puntos, 0.5, y 0.75 :
h = 10-4
y' (0 .5 )  61 .8426
y' ' (0 .5 )   938 .283
y' (0 .75 )  0 .210401
y' ' (0 .75 )   9 .11835
La observación de la segunda derivada indicaría la existencia de un
posible punto de inflexión (derivada segunda cero) en ese intervalo. Así,
por ejemplo:
y' ' (0 .8 )   0 .8852247
y' ' (0 .85 )  0 .008934901
y' ' (0.84 )  4.409358
10
5
Haciendo una interpolación lineal entre estos dos últimos puntos. Es
decir, calculando la recta que pasa por los puntos (0.84, -4.409358 10-5)
y (0.85, 0.008934901):
y' '  4.409358
10
5

0.008934901
 4.409358
0.85  0.84
10 5
( x  0.84 )
y' '  4.409358
10
5

0.008934901
 4.409358
0.85  0.84
10 5
( x  0.84 )
Luego el punto en el que la interpolación lineal que se aproxima a la
derivada se anula sería el siguiente:
y' '  0  x  0 .8404910748
y, efectivamente, podemos comprobar que en las inmediaciones de
ese punto tenemos un valor prácticamente igual a cero de la segunda
derivada:
y' ' (0.8405 )   1.27439 10
5
Descargar

derivacion