Métodos de derivación numérica: El problema de la derivación numérica consiste en la...

Post on 27-Jan-2016

226 views 0 download

Transcript of Métodos de derivación numérica: El problema de la derivación numérica consiste en la...

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, nonecesitamos 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.

0

1

2

3

4

5

6

7

8

-2 0 2 4 6 8 10 12

0

1

2

3

4

5

6

7

8

-2 0 2 4 6 8 10 12

0

1

2

3

4

5

6

7

8

-2 0 2 4 6 8 10 12

a b

f(x)

pn(x)

f (x)a

b

dx pn (x) dxa

b

x0

df (x)

dx xx0

dpn (x)

dx xx 0

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, enlos puntos intermedios xi<x<xi+1, para los cuales la primera derivadaes constante y las derivadas superiores se anulan:

y' x yi1 yixi1 x i

para xi x x i1

Aunque no están definidas las derivadas en los puntos xi; sí quese pueden definir las derivadas por la derecha y por la izquierda que, en el caso, general, serán diferentes:

y' x i

y' ( ) xi yi1 yixi1 x i

derivada por la derecha

y' ( ) xi yi yi 1

xi x i 1

derivada por la izquierda

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 yn1 yn 1

2hyn 1 yn1 2yn

h2 (x xn ) ; xn h x xn h

Sí es constante la 2ª derivada y, por tanto, nulas todas las demásderivadas de orden superior:

y' ' x yn 1 yn1 2yn

h2 para xn h x xn h

y(n) x 0 ; (con n 3) para xn h x xn 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 yn1 yn 1

2hyn 1 yn1 2yn

h2 (x xn ) ; xn h x xn h

y' xn yn1 yn 1

2h

que es exactamente el mismo valor que obtenemos si promediamos lasderivadas por la izquierda y por la derecha de la interpolación por rectas:

y' ( ) xn yn 1 ynh

y' ( ) xn yn yn 1

h

1

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

2h

En cuanto a la segunda derivada:

y' ' xn yn 1 yn1 2ynh2

podríamos re-escribirla del modo siguiente:

y' ' xn yn 1 yn1 2ynh2

yn1 ynh

yn yn 1

hh

y' ' xn y'n

1

2

y'n

1

2

h

lo cuál es acorde con la definición de derivada:

f ' (x0 ) limh 0

f (x0 h) f (x0 )

hlimh 0

f (x0 h

2) f (x0

h

2)

h

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' ' ' xn y' 'n 1 y' ' n 1

2h

Basándonos en el hecho de que:

f ' ' ' (x0 ) limh 0

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

Si quisiéramos calcular el orden del error cometido al tomar estas aproximaciones:

para la 1ª derivada:

y' xn yn1 yn 1

2h

Tomando esta fórmula estaríamos haciendo la siguiente aproximación:

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

2h

Sabemos que ambas magnitudes son iguales en el límite de h tendiendoa 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 laaproximación:

Desarrollando en serie la aproximación:

f (x0 h) f (x0 h)

2h 1

2h{f (x0 ) f ' (x0 )h f ' ' (x0 )

2h2 f ' ' ' (x0)

3!h3

[ f (x0 ) f ' (x0)hf ' ' (x0 )

2h2

f ' ' ' (x0 )

3!h3 ]}

f (x0 h) f (x0 h)

2h f ' (x0 )

f ' ' ' (x0 )

6h2

Y vemos que, efectivamente:

limh 0

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

f ' (x0 )

para la 2ª derivada:

y' ' xn yn 1 yn1 2ynh2

Tomando esta fórmula estaríamos haciendo la siguiente aproximación:

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

h2

Desarrollando en serie:

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

1h2

{f (x0 ) f ' (x0 )h f ' ' (x0 )2

h2 f ' ' ' (x0 )3!

h3 f 'v (x0 )4!

h4

[ f (x0 ) f ' (x0)hf ' ' (x0 )

2h2

f ' ' ' (x0 )

3!h3

f ' v (x0 )

4!h4

2 f (x0)} f ' ' (x0 )

f ' v (x0 )

12h2

Ejercicios:

- Justificar las siguientes aproximaciones:

y' ' ' xn yn2 yn 2 2yn1 2yn 1

2h3

y' xn 8yn1 yn 2 yn 2 8yn 1

12h

y' ' xn 16(yn1 yn 1) (yn2 yn2 ) 30yn12h2

y' ' ' xn yn2 yn 2 2yn1 2yn 1

2h3

Tomando esta fórmula estaríamos haciendo la siguiente aproximación:

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

2h3

Desarrollando en serie:

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

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

12h3

{ f (x0 ) f ' (x0 )2h f ' ' (x0 )2

(2h)2 f ' ' ' (x0 )3!

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

(2h)4 fv(x0 )5!

(2h)5

[ f (x0 ) f ' (x0)( 2h) f ' ' (x0 )

2( 2h)2

f ' ' ' (x0 )

3!( 2h)3

f 'v (x0 )

4!( 2h)4

f v(x0 )

5!( 2h)5 ]

2[ f (x0) f ' (x0 )h f ' ' (x0 )

2h2

f ' ' ' (x0 )

3!h3

f ' v (x0 )

4!h4

f v(x0 )

5!h5 ]

2[ f (x0 ) f ' (x0 )( h) f ' ' (x0 )

2( h)2

f ' ' ' (x0 )

3!( h)3

f ' v (x0)

4!( h)4

f v(x0 )

5!( h)5 ]}

f (x0 2h) f (x0 2h) 2 f (x0 h) 2 f (x0 h)2h3 f ' ' ' (x0 )

f v(x0 )

4h2

Tomando esta fórmula estaríamos haciendo la siguiente aproximación:

f ' (x0 ) 8 f (x0 h) f (x0 h) f (x0 2h) f (x0 2h)

12h

Desarrollando en serie:

y' xn 8yn1 yn 2 yn 2 8yn 1

12h

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

12h

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

12h

112h

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

h2 f ' ' ' (x0 )3!

h3 f 'v (x0 )4!

h4 fv (x0 )5!

h5

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

2( h)2

f ' ' ' (x0 )

3!( h)3

f ' v (x0 )

4!( h)4

f v(x0)

5!( h)5 ]]

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

2( 2h)2

f ' ' ' (x0 )

3!( 2h)3

f' v (x0 )

4!( 2h)4

f v(x0 )

5!( 2h)5

[ f (x0 ) f ' (x0)2hf ' ' (x0 )

2(2h)2

f ' ' ' (x0 )

3!(2h)3

f ' v (x0 )

4!(2h)4

f v(x0)

5!(2h)5 ]}

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

12h f ' (x0 )

f ' v (x0 )

30h4

y' ' xn 16(yn1 yn 1) (yn2 yn 2 ) 30yn12h2

Tomando esta fórmula estaríamos haciendo la siguiente aproximación:

f ' ' (x0 ) 16 f (x0 h) f (x0 h) f (x0 2h) f (x0 2h) 30 f (x0 )

12h2

Desarrollando en serie:

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

12h2

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

12h2

1

12h2 {16[ f (x0 ) f ' (x0 )hf ' ' (x0 )

2h2

f ' ' ' (x0 )

3!h3

f 'v (x0 )

4!h4

f v(x0 )

5!h5

f v ' (x0 )

6!h6

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

2( h)2

f ' ' ' (x0 )

3!( h)3

f ' v (x0 )

4!( h)4

f v(x0)

5!( h)5

f v ' (x0 )

6!( h)6 ]]

[ f (x0 ) f ' (x0)( 2h) f ' ' (x0 )2

( 2h)2 f ' ' ' (x0 )3!

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

( 2h)4 fv(x0 )5!

( 2h)5 f v ' (x0 )6!

( 2h)6 ]

[ f (x0 ) f ' (x0)2h f ' ' (x0 )2

(2h)2 f ' ' ' (x0 )3!

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

(2h)4 fv(x0)5!

(2h)5 f v ' (x0 )6!

(2h)6 ]

30 f (x0 )}

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

12h2 f ' ' (x0 ) f v ' (x0 )

90h4

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 lospuntos 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.10.53940

valor exacto cos(1) 0.5403023

¡¡¡EN R

ADIANES!!!

9 *10 4

h = 0.1

y' ' (1) sen(1.1) sen(0.9) 2 sen(1)

0.12 0.84077

valor exacto sen(1) 0.8414709

7*10 4

y' ' ' (1) sen(1.2) sen(0.8) 2sen(1.1) 2sen(0.9)

2 * 0.13 0.53895

valor exacto cos(1) 0.5403023

1*10 3

h = 0.01

y' (1) sen(1.01) sen(0.99)

2 * 0.010.5402933

valor exacto cos(1) 0.5403023

9*10 6

y' ' (1) sen(1.01) sen(0.99) 2 sen(1)

0.012 0.841464

valor exacto sen(1) 0.8414709

7*10 6

h = 0.01

y' ' ' (1) sen(1.02) sen(0.98) 2sen(1.01) 2sen(0.99)

2 * 0.013 0.540305

valor exacto cos(1) 0.5403023

3 *10 6

h = 0.001

y' (1) sen(1.001) sen(0.999)

2 * 0.0010.5403022

valor exacto cos(1) 0.5403023

9*10 8

h = 0.001

y' ' (1) sen(1.001) sen(0.999) 2 sen(1)

0.0012 0.8417091

valor exacto sen(1) 0.8414709

1*10 8

y' ' ' (1) sen(1.002) sen(0.998) 2sen(1.001) 2sen(0.999)

2 * 0.0013

Calcular las dos primeras derivadas de la siguiente función en lospuntos 0.25, 0.5, y 0.75.

y(x) [ln arcsen x 2]5

y' (x0 ) {ln[arcsen( x0 h)]2}5 {ln[arcsen(x0 h)]2}5

2h

h = 10-2

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

210 2

y' (0.25) 2352.61 2.353 103

¡¡¡EN R

ADIANES!!!

h = 10-3

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

210 3

y' (0.25) 2.342 103

h = 10-4

y' (0.25) 2.341896 103

h = 10-5

y' (0.25) 2.3419 103

El valor exacto se puede evaluar teniendo en cuenta que la primeraderivada de la función es :

y' (x) 10[ln arcsen x 2 ]4

1 x 2 arcsen x

y' (0.25) 10[ln arcsen 0.25 2 ]4

1 x2 arcsen 0.25 2.34191 103

Para la segunda derivada:

y' ' xn yn 1 yn1 2ynh2

y' ' (x0 ) {ln[arcsen( x0 h)]2}5 {ln[arcsen( x0 h)]2}5 2{ln[arcsen(x0 )]2}5

h2

h = 10-2

y' ' (0.25) 3.68883 104

h = 10-3

y' ' (0.25) 3.67825 104

h = 10-4

y' ' (0.25) 3.678 104

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. Esdecir, 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 10 5

0.85 0.84(x 0.84)

y' ' 4.409358 10 5 0.008934901 4.409358 10 5

0.85 0.84(x 0.84)

Luego el punto en el que la interpolación lineal que se aproxima a laderivada se anula sería el siguiente:

y' ' 0 x0.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