Você está na página 1de 20

Matemtica Superior Aplicada

Estimacin del Incremento (h) Optimo

Profesor: Dr. Alejandro S. M. Santa Cruz Auxiliares: Sr. Juan Pablo Camponovo Ing. Juan Ignacio Manassaldi

Derivada Numrica

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

Adelante

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

Atrs

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

Central

Implementacin en MATLAB

Vamos a analizar el comportamiento de la funcin f(x) y su derivada analtica f(x) en el intervalo [0.1;5]
e x 1 f ( x) x
function y=funcion(x) y=(exp(-x)-1)./x;
x x e e 1 ' f a ( x) x x2

function y=derivada(x) y= -exp(-x).*(x.^-1) -(exp(-x)-1).*(x.^-2);

Implementacin en MATLAB

x=linspace(0.1,5,100); Creamos los pares de valores y=funcion(x); yp=derivada(x); plot(x,y,'b','LineWidth',2) Graficamos hold on plot(x,yp,'r','LineWidth',2) grid minor

Implementacin en MATLAB

x=linspace(0.1,5,100); y=funcion(x); yp=derivada(x); plot(x,y,'b','LineWidth',2) hold on plot(x,yp,'r','LineWidth',2) grid minor

Implementacin en MATLAB

0.5

f(x)
0

-0.5

f(x)
0.5 1 1.5 2 2.5 3 3.5 4 4.5 5

-1 0

Derivada numrica (hacia delante)

f ( x h) f ( x ) f ( x) h
' n

e xh 1 f ( x h) x h

e 1 f ( x) x

Se observa claramente que para distintos valores de h, se obtendrn distintas estimaciones de la derivada.

Derivada numrica (hacia delante)

Analizamos el punto x=2


e 2 1 f ( 2) 0.432332 2 2 2 e e 1 ' f a ( 2) 0.148498 2 2 2 Ahora estimamos la derivada en x=2 con h=0.1 f (2 0.1) f (2) ' f n ( 2) 0.144545 0 .1
e 2.1 1 f (2.1) 0.417878 2 .1
e 2 1 f ( 2) 0.432332 2

Derivada numrica (hacia delante)


2 2 e e 1 ' f a ( 2) 0.148498 2 2 2 Ahora estimamos la derivada en x=2 con h=0.01 f (2.01) f (2) ' f n ( 2) 0.148095 0.01 Ahora con h=0.001

f (2.001) f (2) f ( 2) 0.148458 0.001


' n

Se observa como el error va decreciendo


valorreal valorestimado f (2) f (2)
' a ' n

Comportamiento en el intervalo
Vamos a graficar como se comporta la estimacin numrica en el intervalo que estamos estudiando.

x=linspace(0.1,5,100); yp=derivada(x); plot(x,yp,'r','LineWidth',2) hold on ypn = (funcion(x + 0.1)- funcion(x))./0.1; plot(x,ypn, 'g*','LineWidth',2) grid minor

Comportamiento en el intervalo
0.5 0.45 0.4 0.35 0.3 0.25 0.2 0.15 0.1 0.05 0 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5

fa(x) f n(x)

Comportamiento en el intervalo
0.5 0.45 0.4 0.35 0.3 0.25 0.2 0.15 0.1 0.05 0 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5

Comportamiento en el intervalo
Cmo podemos analizar el error que comete la estimacin en el intervalo?
Ayuda: Si el intervalo tiene 100 elementos, se van a generar 100 errores . Cmo podemos agruparlos para su anlisis?

Para agruparlos realizamos el error promedio

Implementacin en Matlab

x=linspace(0.1,5,100); h yp=derivada(x); ypn = (funcion(x + 0.1)- funcion(x))./0.1; error=sum(abs(ypn-yp))/100;


Finalmente, realizando el mismo calculo pero para distintos valores de h, tenemos:
h 1 0.1 0.01 0.001 error 3.57103E-02 4.32059E-03 4.41000E-04 4.41911E-05

Implementacin en Matlab
El error va a disminuir hasta que la derivada numrica sea igual a la analtica?
No!, nosotros sabemos que el error no va a disminuir hasta volverse cero. Por lo tanto, debemos encontrar donde el error deja de disminuir y comienza a aumentar a pesar de decrecer el incremento.

Cmo podemos hacerlo?

Implementacin en Matlab
- Vamos a calcular el error cometido por distintos incrementos (h) que van desde 1x10-13 hasta 1x10-1

x=linspace(0.1,5,100); yp=derivada(x); h=logspace(-13,-1,100); for i=1:100 ypn = (funcion(x + h(i))- funcion(x))./h(i); error(i)= sum(abs(ypn-yp))/100; end

Implementacin en Matlab loglog(h,error)


10
-2

10

-3

10

-4

10

-5

10

-6

10

-7

10

-8

10 -14 10

-9

10

-12

10

-10

10

-8

10

-6

10

-4

10

-2

10

Incremento Optimo
Cmo encontramos el h optimo? Qu error le corresponde al h optimo? Al h optimo le corresponde el error mnimo. Por lo tanto debemos encontrar el error mnimo y ubicar que incremento lo gener.

[em p]=min(error); hoptimo= h(p) error_minimo = em


hoptimo = 3.764935806792471e-008 error_minimo = 1.951385274062689e-009

Implementacin en Matlab

loglog(h,error, 'b') hold on loglog(hoptimo,error_minimo, 'r*')

Incremento Optimo
10
-2 -3

10

10

-4

10

-5

10

-6

10

-7

10

-8

10 -14 10

-9

10

-12

10

-10

10

-8

10

-6

10

-4

10

-2

10

Você também pode gostar