Estimación del Incremento (h) Optimo · Derivada numérica (hacia delante) x h e f x h x h 1 ( ) h...
Transcript of Estimación del Incremento (h) Optimo · Derivada numérica (hacia delante) x h e f x h x h 1 ( ) h...
![Page 1: Estimación del Incremento (h) Optimo · Derivada numérica (hacia delante) x h e f x h x h 1 ( ) h f x h f x f n x ( ) ( ) ' ( ) x e f x x 1 ( ) Se observa claramente que para distintos](https://reader030.fdocuments.co/reader030/viewer/2022040404/5e8f72de296ab050790fdf3d/html5/thumbnails/1.jpg)
Matemática Superior Aplicada
Estimación del Incremento (h) Optimo
Prof.: Dr. Alejandro S. M. Santa Cruz
J.T.P.: Dr. Juan Ignacio Manassaldi
Aux. 2da: Sra. Amalia Rueda
![Page 2: Estimación del Incremento (h) Optimo · Derivada numérica (hacia delante) x h e f x h x h 1 ( ) h f x h f x f n x ( ) ( ) ' ( ) x e f x x 1 ( ) Se observa claramente que para distintos](https://reader030.fdocuments.co/reader030/viewer/2022040404/5e8f72de296ab050790fdf3d/html5/thumbnails/2.jpg)
Derivada Numérica
h
xfhxfxfn
)()()( 00
0
' Adelante
h
hxfxfxfn
)()()( 00
0
' Atrás
h
hxfhxfxfn
2
)()()( 00
0
' Central
![Page 3: Estimación del Incremento (h) Optimo · Derivada numérica (hacia delante) x h e f x h x h 1 ( ) h f x h f x f n x ( ) ( ) ' ( ) x e f x x 1 ( ) Se observa claramente que para distintos](https://reader030.fdocuments.co/reader030/viewer/2022040404/5e8f72de296ab050790fdf3d/html5/thumbnails/3.jpg)
Implementación en Scilab
Vamos a analizar el comportamiento de la función f(x) y su derivada analítica f’(x) en el intervalo [0.1;5]
x
exf
x 1)(
2
' 1)(
x
e
x
exf
xx
a
function y=funcion(x)
y=(exp(-x)-1)./x;
endfunction
function y=derivada(x)
y= -exp(-x).*(x.^-1)-(exp(-x)-1).*(x.^-2);
endfunction
![Page 4: Estimación del Incremento (h) Optimo · Derivada numérica (hacia delante) x h e f x h x h 1 ( ) h f x h f x f n x ( ) ( ) ' ( ) x e f x x 1 ( ) Se observa claramente que para distintos](https://reader030.fdocuments.co/reader030/viewer/2022040404/5e8f72de296ab050790fdf3d/html5/thumbnails/4.jpg)
Implementación en Scilab
x=linspace(0.1,5,100);
y=funcion(x);
yp=derivada(x);
plot(x,y,'b')
plot(x,yp,'r')
Creamos los pares de valores
Graficamos
![Page 5: Estimación del Incremento (h) Optimo · Derivada numérica (hacia delante) x h e f x h x h 1 ( ) h f x h f x f n x ( ) ( ) ' ( ) x e f x x 1 ( ) Se observa claramente que para distintos](https://reader030.fdocuments.co/reader030/viewer/2022040404/5e8f72de296ab050790fdf3d/html5/thumbnails/5.jpg)
Implementación en Scilab
f(x)
f’(x)
![Page 6: Estimación del Incremento (h) Optimo · Derivada numérica (hacia delante) x h e f x h x h 1 ( ) h f x h f x f n x ( ) ( ) ' ( ) x e f x x 1 ( ) Se observa claramente que para distintos](https://reader030.fdocuments.co/reader030/viewer/2022040404/5e8f72de296ab050790fdf3d/html5/thumbnails/6.jpg)
Derivada numérica (hacia delante)
hx
ehxf
hx
1)(
h
xfhxfxfn
)()()('
x
exf
x 1)(
Se observa claramente que para distintos valores de h, se obtendrán distintas estimaciones de la derivada.
![Page 7: Estimación del Incremento (h) Optimo · Derivada numérica (hacia delante) x h e f x h x h 1 ( ) h f x h f x f n x ( ) ( ) ' ( ) x e f x x 1 ( ) Se observa claramente que para distintos](https://reader030.fdocuments.co/reader030/viewer/2022040404/5e8f72de296ab050790fdf3d/html5/thumbnails/7.jpg)
Derivada numérica (hacia delante)
0.417878 1.2
1)1.2(
1.2
e
f
0.1445451.0
)2()1.02()2('
fffn
0.4323322
1)2(
2
e
f
Analizamos el punto x=2
0.4323322
1)2(
2
e
f
0.1484982
1
2)2(
2
22'
eefa
Ahora estimamos la derivada en x=2 con h=0.1
![Page 8: Estimación del Incremento (h) Optimo · Derivada numérica (hacia delante) x h e f x h x h 1 ( ) h f x h f x f n x ( ) ( ) ' ( ) x e f x x 1 ( ) Se observa claramente que para distintos](https://reader030.fdocuments.co/reader030/viewer/2022040404/5e8f72de296ab050790fdf3d/html5/thumbnails/8.jpg)
Derivada numérica (hacia delante)
0.14809501.0
)2()01.2()2('
fffn
Ahora estimamos la derivada en x=2 con h=0.01
0.148458001.0
)2()001.2()2('
fffn
Ahora con h=0.001
0.1484982
1
2)2(
2
22'
eefa
Se observa como el error va decreciendo)2()2( ''
naestimadoreal ffvalorvalor
![Page 9: Estimación del Incremento (h) Optimo · Derivada numérica (hacia delante) x h e f x h x h 1 ( ) h f x h f x f n x ( ) ( ) ' ( ) x e f x x 1 ( ) Se observa claramente que para distintos](https://reader030.fdocuments.co/reader030/viewer/2022040404/5e8f72de296ab050790fdf3d/html5/thumbnails/9.jpg)
Comportamiento en el intervalo
Vamos a graficar como se comporta la estimación numérica en el intervalo que estamos estudiando.
x=linspace(0.1,5,100);
yp=derivada(x);
plot(x,yp,'r')
ypn = (funcion(x + 0.1)- funcion(x))./0.1;
plot(x,ypn,'g*')
![Page 10: Estimación del Incremento (h) Optimo · Derivada numérica (hacia delante) x h e f x h x h 1 ( ) h f x h f x f n x ( ) ( ) ' ( ) x e f x x 1 ( ) Se observa claramente que para distintos](https://reader030.fdocuments.co/reader030/viewer/2022040404/5e8f72de296ab050790fdf3d/html5/thumbnails/10.jpg)
Comportamiento en el intervalo
f’a(x)
f’n(x)
![Page 11: Estimación del Incremento (h) Optimo · Derivada numérica (hacia delante) x h e f x h x h 1 ( ) h f x h f x f n x ( ) ( ) ' ( ) x e f x x 1 ( ) Se observa claramente que para distintos](https://reader030.fdocuments.co/reader030/viewer/2022040404/5e8f72de296ab050790fdf3d/html5/thumbnails/11.jpg)
Comportamiento en el intervalo
![Page 12: Estimación del Incremento (h) Optimo · Derivada numérica (hacia delante) x h e f x h x h 1 ( ) h f x h f x f n x ( ) ( ) ' ( ) x e f x x 1 ( ) Se observa claramente que para distintos](https://reader030.fdocuments.co/reader030/viewer/2022040404/5e8f72de296ab050790fdf3d/html5/thumbnails/12.jpg)
Comportamiento en el intervalo
¿Cómo podemos analizar el error que comete la estimación en el intervalo?
Ayuda: Si el intervalo tiene 100 elementos, se van a generar 100 errores . ¿Cómo podemos agruparlos para su análisis?
Para agruparlos realizamos el error promedio
![Page 13: Estimación del Incremento (h) Optimo · Derivada numérica (hacia delante) x h e f x h x h 1 ( ) h f x h f x f n x ( ) ( ) ' ( ) x e f x x 1 ( ) Se observa claramente que para distintos](https://reader030.fdocuments.co/reader030/viewer/2022040404/5e8f72de296ab050790fdf3d/html5/thumbnails/13.jpg)
Implementación en Scilab
x=linspace(0.1,5,100);
yp=derivada(x);
ypn = (funcion(x + 0.1) - funcion(x))./0.1;
er=sum(abs(ypn-yp))/100;
Finalmente, realizando el mismo calculo pero para distintos valores de h, tenemos:
h error1 3.57103E-020.1 4.32059E-030.01 4.41000E-040.001 4.41911E-05
h
![Page 14: Estimación del Incremento (h) Optimo · Derivada numérica (hacia delante) x h e f x h x h 1 ( ) h f x h f x f n x ( ) ( ) ' ( ) x e f x x 1 ( ) Se observa claramente que para distintos](https://reader030.fdocuments.co/reader030/viewer/2022040404/5e8f72de296ab050790fdf3d/html5/thumbnails/14.jpg)
Implementación en Scilab
¡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.
¿El error va a disminuir hasta que la derivada numérica sea igual a la analítica?
¿Cómo podemos hacerlo?
![Page 15: Estimación del Incremento (h) Optimo · Derivada numérica (hacia delante) x h e f x h x h 1 ( ) h f x h f x f n x ( ) ( ) ' ( ) x e f x x 1 ( ) Se observa claramente que para distintos](https://reader030.fdocuments.co/reader030/viewer/2022040404/5e8f72de296ab050790fdf3d/html5/thumbnails/15.jpg)
Implementación en Scilab
- 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);
er(i)= sum(abs(ypn-yp)) /length(x);
end
![Page 16: Estimación del Incremento (h) Optimo · Derivada numérica (hacia delante) x h e f x h x h 1 ( ) h f x h f x f n x ( ) ( ) ' ( ) x e f x x 1 ( ) Se observa claramente que para distintos](https://reader030.fdocuments.co/reader030/viewer/2022040404/5e8f72de296ab050790fdf3d/html5/thumbnails/16.jpg)
Implementación en Scilab
plot2d("ll",h,er)
Gráfica doble logarítmica
![Page 17: Estimación del Incremento (h) Optimo · Derivada numérica (hacia delante) x h e f x h x h 1 ( ) h f x h f x f n x ( ) ( ) ' ( ) x e f x x 1 ( ) Se observa claramente que para distintos](https://reader030.fdocuments.co/reader030/viewer/2022040404/5e8f72de296ab050790fdf3d/html5/thumbnails/17.jpg)
[em p]=min(er);
hoptimo= h(p)
error_minimo = em
Incremento Optimo
¿Cómo encontramos el h optimo?¿Qué error le corresponde al h optimo?
Al h optimo le corresponde el error mínimo. Por lo tanto debemos encontrar el error mínimo y ubicar
que incremento lo generó.
hoptimo = 3.76493580679D-08error_minimo = 2.07780614048D-09
![Page 18: Estimación del Incremento (h) Optimo · Derivada numérica (hacia delante) x h e f x h x h 1 ( ) h f x h f x f n x ( ) ( ) ' ( ) x e f x x 1 ( ) Se observa claramente que para distintos](https://reader030.fdocuments.co/reader030/viewer/2022040404/5e8f72de296ab050790fdf3d/html5/thumbnails/18.jpg)
Implementación en Scilab
plot2d("ll",h,er)plot2d("ll", hoptimo, error_minimo,-10)