Vous êtes sur la page 1sur 32

Mtodos de derivacin numrica:

El problema de la derivacin numrica consiste en la evaluacin de


la derivada de la funcin en un punto, cuando nicamente conocemos
los valores de la funcin en una coleccin de puntos x0, x1,... xn.
Aunque, en apariencia se trata de un problema similar al de la
integracin numrica; de hecho la derivacin es ms complicada ya que,
en la integracin los errores tienden a cancelarse, y, como vimos, no
necesitamos que la aproximacin describa con fidelidad la funcin
localmente.
Sin embargo, la derivada es una propiedad esencialmente local, por lo
cul deberemos aproximar la funcin lo ms fielmente posible en el
entorno inmediato del punto en el que la queramos calcular.

0
-2

10

12

0
-2

10

12

f (x)
a

df (x)
dpn (x)

dx x x0
dx x x 0

dx pn (x) dx
a

f(x)

pn(x)

x0

0
-2

b
10

12

Como ya vimos en el caso de interpolacin por rectas tenamos que:


No estn 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:

yi 1 yi
y' x
para xi x x i1
xi 1 x i

y' x i

Aunque no estn 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, sern diferentes:
yi 1 yi
( )
y' xi
derivada por la derecha
xi 1 x i

y'

( )

yi yi 1
xi
derivada por la izquierda
xi x i 1

Mientras que, para el caso de interpolacin por parbolas veamos que:


Las primeras derivadas en los puntos intermedios x, xn-1<x<xn+1
ahora no son constantes:

yn1 y n1 yn 1 yn1 2yn


y' x

(x xn ) ; x n h x xn h
2
2h
h
S es constante la 2 derivada y, por tanto, nulas todas las dems
derivadas de orden superior:

yn 1 yn1 2yn
y'' x
para x n h x xn h
2
h
y (n) x 0 ; (con n 3) para xn h x x n h

Si quisiramos 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 interpolacin por rectas no existe tal derivada, mientras que,
con la interpolacin parablica sera:

yn1 y n1 yn 1 yn1 2yn


y' x

(x xn ) ; x n h x xn h
2
2h
h
yn1 yn1
y' xn
2h
que es exactamente el mismo valor que obtenemos si promediamos las
derivadas por la izquierda y por la derecha de la interpolacin por rectas:

yn 1 yn
y' xn

1 ()
yn1 yn1
( )
h
y' xn y' xn
y yn 1 2
2h
y' ( ) xn n

h
( )

En cuanto a la segunda derivada:

yn1 y n1 2yn
y'' x n
2
h
podramos re-escribirla del modo siguiente:
yn1 y n y n y n1

yn1 y n1 2yn
h
h
y'' x n

2
h
h
y' 1 y' 1

y'' x n

lo cul es acorde con la definicin de derivada:

h
h
f (x0 ) f (x0 )
f (x 0 h) f (x0 )
2
2
f ' (x 0 ) lim
lim
h 0
h0
h
h

Si quisiramos calcular la 3 derivada tendramos que recurrir al


polinomio de interpolacin de orden 3, o bien podramos hacer lo
siguiente:

y' ' n 1 y'' n1


y'' ' x n
2h

Basndonos en el hecho de que:

f '' (x0 h) f ' ' (x0 h)


f ' '' (x 0 ) lim
h 0
2h

Si quisiramos calcular el orden del error cometido al tomar estas


aproximaciones:
para la 1 derivada:

yn1 yn1
y' xn
2h
Tomando esta frmula estaramos haciendo la siguiente aproximacin:

f (x 0 h) f (x 0 h)
f ' (x 0 )
2h

Sabemos que ambas magnitudes son iguales en el lmite de h tendiendo


a cero. Sin embargo, numricamente, nosotros, estamos usando usando
unos h que, aunque pequeos, no son infinitesimalmente tendentes a cero.
Cuanto mayores sean los h, mayor ser el error cometido. La relacin
Entre el error y el valor de h se puede encontrar desarrollando en serie la
aproximacin:

Desarrollando en serie la aproximacin:

f (x0 h) f (x 0 h) 1
f' ' (x 0 ) 2 f' ' ' (x 0 ) 3

{f (x0 ) f' (x 0 )h
h
h
2h
2h
2
3!
f ' ' (x0 ) 2 f ' '' (x 0 ) 3
[ f (x 0 ) f ' (x 0 )h
h
h ]}
2
3!

f (x0 h) f (x 0 h)
f' ' ' (x0 ) 2
f ' (x0 )
h
2h
6
Y vemos que, efectivamente:

f (x 0 h) f (x 0 h)
lim
f' (x0 )
h 0
2h

para la 2 derivada:

yn1 y n1 2yn
y'' x n
2
h

Tomando esta frmula estaramos haciendo la siguiente aproximacin:

f (x0 h) f (x0 h) 2 f (x0 )


f ' ' (x0 )
2
h

Desarrollando en serie:

f (x0 h) f (x 0 h) 2 f (x0 )

2
h

1
f' ' (x 0 ) 2 f' ' ' (x0 ) 3 f ' (x0 ) 4
{f
(x
)

f
'
(x
)h

h
h
h
0
0
2
h
2
3!
4!
f ' ' (x0 ) 2 f ' '' (x0 ) 3 f' v (x 0 ) 4
[ f (x 0 ) f ' (x 0 )h
h
h
h
2
3!
4!
v
f
'
(x 0 ) 2
2 f (x 0 )} f '' (x )
h
0
12

Ejercicios:
- Justificar las siguientes aproximaciones:

y n2 yn 2 2y n1 2y n1
y'' ' x n
3
2h
8yn1 y n2 yn 2 8yn1
y' xn
12h
16(yn1 yn1) (y n2 y n2 ) 30y n
y'' x n
2
12h

y n2 yn 2 2y n1 2y n1
y'' ' x n
3
2h
Tomando esta frmula estaramos haciendo la siguiente aproximacin:

f (x 0 2h) f (x0 2h) 2 f (x 0 h) 2 f (x 0 h)


f ' '' (x 0 )
3
2h
Desarrollando en serie:

f (x0 2h) f (x0 2h) 2 f (x 0 h) 2 f (x 0 h)


3
2h

f (x0 2h) f (x0 2h) 2 f (x 0 h) 2 f (x 0 h)

2h 3
v

1
f '' (x 0 )
f '' ' (x 0 )
f' (x 0 )
f (x 0 )
3 { f (x 0 ) f ' (x 0 )2h
(2h)2
(2h) 3
(2h)4
(2h) 5
2h
2
3!
4!
5!
f' ' (x 0 )
f' ' ' (x0 )
f ' v (x0 )
f v (x 0 )
2
3
4
5
[ f (x 0 ) f ' (x 0 )(2h)
(2h)
(2h)
(2h)
(2h)
2
3!
4!
5!
f ' ' (x0 ) 2 f ' '' (x 0 ) 3 f ' v (x 0 ) 4 f v (x0 ) 5
2[ f (x 0 ) f ' (x0 )h
h
h
h
h ]
2
3!
4!
5!
f' ' (x 0 )
f '' ' (x 0 )
f ' v (x 0 )
f v (x0 )
2
3
4
2[ f (x 0 ) f ' (x0 )(h)
(h)
(h)
(h)
(h)5 ]}
2
3!
4!
5!

f (x0 2h) f (x0 2h) 2 f (x 0 h) 2 f (x 0 h)


f v (x0 ) 2
f' ' ' (x0 )
h
3
2h
4

8yn1 y n2 yn 2 8yn1
y' xn
12h
Tomando esta frmula estaramos haciendo la siguiente aproximacin:

f ' (x 0 )

8f (x 0 h) f (x 0 h) f (x 0 2h) f (x0 2h)


12h

Desarrollando en serie:

8f (x0 h) f (x 0 h) f (x0 2h) f (x0 2h)


12h

8f (x0 h) f (x 0 h) f (x0 2h) f (x0 2h)

12h
1
f '' (x 0 ) 2 f '' ' (x 0 ) 3 f ' v (x0 ) 4 f v (x0 ) 5

{8[ f (x0 ) f' (x0 )h


h
h
h
h
12h
2
3!
4!
5!
f' ' (x 0 )
f '' ' (x 0 )
f ' v (x 0 )
f v (x 0 )
2
3
4
5
[ f (x 0 ) f ' (x 0 )(h)
(h)
(h)
(h)
(h) ]]
2
3!
4!
5!
f ' ' (x0 )
f ' '' (x 0 )
f' v (x 0 )
f v (x0 )
2
3
4
5
f (x0 ) f' (x0 )(2h)
(2h)
(2h)
(2h)
(2h)
2
3!
4!
5!
f' ' (x 0 )
f '' ' (x 0 )
f ' v (x 0 )
f v (x 0 )
2
3
4
[ f (x 0 ) f ' (x 0 )2h
(2h)
(2h)
(2h)
(2h)5 ]}
2
3!
4!
5!

8f (x0 h) f (x 0 h) f (x0 2h) f (x0 2h)


12h

f ' v (x 0 ) 4
f' (x0 )
h
30

16(yn1 yn1) (y n2 y n2 ) 30y n


y'' x n
2
12h
Tomando esta frmula estaramos haciendo la siguiente aproximacin:

f ' ' (x0 )

16f (x0 h) f (x 0 h) f (x 0 2h) f (x 0 2h) 30 f (x 0 )


2

12h

Desarrollando en serie:

16f (x 0 h) f (x 0 h) f (x0 2h) f (x 0 2h) 30 f (x0 )


12h

16f (x 0 h) f (x 0 h) f (x0 2h) f (x 0 2h) 30 f (x0 )

12h 2
1
f' ' (x 0 ) 2 f' ' ' (x0 ) 3 f ' v (x0 ) 4 f v (x 0 ) 5 f v ' (x 0 ) 6

{16[ f (x0 ) f ' (x 0 )h


h
h
h
h
h
12h 2
2
3!
4!
5!
6!
f' ' (x 0 )
f '' ' (x 0 )
f' v (x 0 )
f v (x 0 )
f v ' (x 0 )
2
3
4
5
6
[ f (x 0 ) f ' (x 0 )(h)
(h)
(h)
(h)
(h)
(h)
2
3!
4!
5!
6!
v

]]

f' ' (x 0 )
f' ' ' (x0 )
f ' (x0 )
f (x 0 )
f ' (x 0 )
[ f (x 0 ) f ' (x 0 )(2h)
(2h)2
(2h)3
(2h)4
(2h)5
(2h)6
2
3!
4!
5!
6!
v

f' ' (x 0 )
f '' ' (x 0 )
f ' (x 0 )
f (x 0 )
f ' (x 0 )
[ f (x 0 ) f ' (x 0 )2h
(2h) 2
(2h)3
(2h) 4
(2h)5
(2h) 6
2
3!
4!
5!
6!
30 f (x0 )}

16f (x 0 h) f (x 0 h) f (x0 2h) f (x 0 2h) 30 f (x0 )


12h

f v ' (x0 ) 4
f' ' (x 0 )
h
90

Calcular las tres primeras derivadas de la funcin 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 funcin 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 funcin sen x en x = 1,


para valores de h de 0.1, 0.01 y 0.001.
h = 0.1

sen(1.1) sen(0.9)
y' (1)
0.53940
2 * 0.1

valor exacto cos(1) 0.5403023

9 *10

h = 0.1

sen(1.1) sen(0.9) 2 sen(1)


y'' (1)
0.84077
2
0.1

valor exacto sen(1) 0.8414709

7*10

sen(1.2) sen(0.8) 2sen(1.1) 2sen(0.9)


y'' ' (1)
0.53895
3
2 * 0.1

valor exacto cos(1) 0.5403023


3

1*10

h = 0.01

sen(1.01) sen(0.99)
y' (1)
0.5402933
2 * 0.01
valor exacto cos(1) 0.5403023

9*10

sen(1.01) sen(0.99) 2 sen(1)


y'' (1)
0.841464
2
0.01
valor exacto sen(1) 0.8414709

7*10

h = 0.01

sen(1.02) sen(0.98) 2sen(1.01) 2sen(0.99)


y'' ' (1)
0.540305
3
2 * 0.01

valor exacto cos(1) 0.5403023


6

3 *10
h = 0.001

sen(1.001) sen(0.999)
y' (1)
0.5403022
2 * 0.001
valor exacto cos(1) 0.5403023

9*10

h = 0.001

sen(1.001) sen(0.999) 2 sen(1)


y'' (1)
0.8417091
2
0.001
valor exacto sen(1) 0.8414709
8

1*10

sen(1.002) sen(0.998) 2sen(1.001) 2sen(0.999)


y'' ' (1)
3
2 * 0.001

Calcular las dos primeras derivadas de la siguiente funcin en los


puntos 0.25, 0.5, y 0.75.

y(x) [ln arcsen x ]

2 5

{ln[arcsen( x 0 h)]2}5 {ln[arcsen(x 0 h)]2 }5


y' (x0 )
2h
h = 10-2

{ln[arcsen(0.25 10 2 )]2 }5 {ln[arcsen(0.25 10 2 )]2 }5


y' (0.25)
2
210

y' (0.25) 2352.61 2.353 10

h = 10-3

{ln[arcsen(0.25 10 3 )]2 }5 {ln[arcsen(0.25 10 3 )]2}5


y' (0.25)
3
210

y' (0.25) 2.342 10

h = 10-4

y' (0.25) 2.341896 10

h = 10-5

y' (0.25) 2.3419 10

El valor exacto se puede evaluar teniendo en cuenta que la primera


derivada de la funcin es :

y' (x)

10[ln arcsen x ]

y' (0.25)

2 4

1 x arcsen x
2

10[ln arcsen0.25 ]

2 4

1 x 2 arcsen0.25

2.34191 10

Para la segunda derivada:

yn1 y n1 2yn
y'' x n
2
h

{ln[arcsen( x0 h)]2}5 {ln[arcsen( x0 h)]2}5 2{ln[arcsen(x 0 )]2}5


y'' (x 0 )
2
h

h = 10-2

y'' (0.25) 3.68883 10

h = 10-3

y'' (0.25) 3.67825 10

h = 10-4

y'' (0.25) 3.678 10

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 observacin de la segunda derivada indicara la existencia de un


posible punto de inflexin (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

Haciendo una interpolacin 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):

0.008934901 4.409358 10 5
y'' 4.409358 10
(x 0.84)
0.85 0.84
5

5
0.008934901

4.409358
10
5
y'' 4.409358 10
(x 0.84)
0.85 0.84

Luego el punto en el que la interpolacin lineal que se aproxima a la


derivada se anula sera el siguiente:

y'' 0 x 0.8404910748
y, efectivamente, podemos comprobar que en las inmediaciones de
ese punto tenemos un valor prcticamente igual a cero de la segunda
derivada:
5

y'' (0.8405) 1.27439 10

Vous aimerez peut-être aussi