Tarea 5 Derivadas

INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE BIOTECNOLOGÍA MÉTODOS NUMÉRICOS (TALLER) GRUPO

Views 164 Downloads 0 File size 286KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE BIOTECNOLOGÍA

MÉTODOS NUMÉRICOS (TALLER)

GRUPO: 4AM1

TAREA 5

“DIFERENCIACIÓN NUMÉRICA”

 REYES RODRÍGUEZ ALEJANDRO  RUIZ HERNÁNDEZ BRENDA ANGÉLICA

PROFESOR: RAMÍREZ BARRIOS MIGUEL LUIS

MÉXICO D.F. A 18 DE JUNIO DE 2015

INTRODUCCIÓN DIFERENCIACIÓN NUMÉRICA El cálculo de la derivada de una función puede ser un proceso "difícil" ya sea por lo complicado de la definición analítica de la función o por que esta se conoce únicamente en un número discreto de puntos. Estudiaremos técnicas para aproximar las derivadas de una función y veremos el análisis de error de dichas formulas •Para aproximar la derivada numéricamente usaremos cocientes de diferencias. •Para derivar las formulas usaremos el Teorema de Taylor Existen 3 diferentes tipos de aproximación numérica: •Aproximación a la primera derivada con diferencias hacia atrás •Aproximación a la primera derivada con diferencias hacia adelante • Aproximación a la primera derivada con diferencias centrales Aproximación a la primera derivada con diferencias hacia atrás La serie de Taylor se puede expandir hacia atrás para calcular un valor anterior sobre el valor actual, dado por:

Truncando la ecuación después de la primera derivada y ordenando los términos se obtiene: f ' (x0 )=

f ( x 0 ) −f ( x 0−h ) h

Donde los errores es 0 (h) y el diferencial indica la primer diferencia dividida hacia atrás. Aproximación a la primera derivada con diferencias hacia adelante f ' (x0 )=

f ( x 0 +h )−f ( x 0 ) h

Donde al diferencial se le conoce como la primera diferencia hacia adelante y a h se le llama tamaño del paso, esto es, la longitud del intervalo sobre el cual se hace la aproximación. Se le llama diferencia " hacia adelante " ya que usa los datos (i) e (i+1) para estimar la derivada. Al termino completo (o sea, la diferencial entre h) se conoce como primera diferencia dividida finita.

Aproximación a la primera derivada con diferencias centrales Una tercera forma de aproximar la primera derivada es restar la ecuación de la expansión en serie de Taylor hacia adelante:

Para obtener:

Que se puede resolver para:

Esta última ecuación es una representación de las diferencias centrales de la primera derivada. Nótese que el error de truncamiento es del orden de en contraste con las diferencias divididas hacia adelante y hacia atrás, las cuales fueron de orden h. Por lo tanto, el análisis de la serie de Taylor ha llevado a la información práctica de que la diferencia central es la representación más exacta de la derivada. Por ejemplo, si se parte el tamaño del paso a la mitad usando diferencias hacia atrás o hacia adelante, el error se reducirá aproximadamente a la mitad, mientras que para diferencias centrales, el error se reduce a la cuarta parte. EJERCICIO 1 Dada la siguiente función: f ( x )=cos ( 4 x ) +sin(3 x) Por medio de la Aproximación a la Primera Derivada con Diferencias hacia Adelante: a) Graficar y Comparar si “h” tiene los siguientes valores: h1=0.5

h2=0.2 En el Intervalo [0, 5]

De manera analítica, la primera derivada es: '

f (x )=−4 sin ( 4 x )+ 3 cos(3 x)

h3=0.1

CODIFICACIÓN EN MATLAB clc clear all close all %DIFERENCIAS HACIA ADELANTE h1=0.5; h2=0.2; h3=0.1; j=1; for x=0:h1:5 f_d1(j)=(cos(4*(x+h1))+sin(3*(x+h1)))-(cos(4*x)+sin(3*x))/h1; x_1(j)=x; j=j+1; end for x=0:h2:5 f_d2(j)=(cos(4*(x+h2))+sin(3*(x+h2)))-(cos(4*x)+sin(3*x))/h2; x_2(j)=x; j=j+1; end for x=0:h3:5 f_d3(j)=(cos(4*(x+h3))+sin(3*(x+h3)))-(cos(4*x)+sin(3*x))/h3; x_3(j)=x; j=j+1; end f_dreal=-4*sin(4*x_1)+3*cos(3*x_1); plot(x_1,f_dreal,'b') hold on plot(x_1,f_d1,'r') plot(x_2,f_d2,'g') plot(x_3,f_d3,'k') legend('Numérica','h=0.5','h=0.2','h=0.1') xlabel('Eje X') ylabel('Eje Y')

Figura 1. Gráfico comparativo con respecto a los diferentes valores que tiene h.

b) Llenar la siguiente tabla: X

f’ Analítica

0.5 0.7 0.9 1.2 1.3 1.8 2.0 2.5 2.6 2.9 4.5

-3.425 -2.85445 -0.942082 1.2944 1.35602 -1.27061 -1.0769 3.21602 3.47317 1.0453 4.78862

f’ Numérica h1=0.5 -2.18774 -0.552017 0.746737 0.597209 0.109673 -0.463981 1.04769 2.31409 1.34618 -2.83886 -0.811462

f’ Numérica h2=0.2 -3.30181 -1.95183 0.0214999 1.29506 1.00945 -1.30251 -0.373181 3.38316 3.10022 -0.603061 2.6699

f’ Numérica h3=0.1 -3.44894 -2.43819 -0.431451 1.35772 1.2324 -1.35013 -0.775592 3.38631 3.38001 0.247136 3.80235

EJERCICIO 2 Dada la siguiente función: f ( x )=e−2 x sin(3 x) Por medio de la Aproximación a la Primera Derivada con Diferencias hacia Adelante: a) Graficar y Comparar si “h” tiene los siguientes valores: h1=0.1

h2=0.01 En el Intervalo [0, 5]

De manera analítica, la primera derivada es: CODIFICACIÓN EN MATLAB

' −2 x −2 x clc f ( x )=−2ⅇ s∈ [ 3 x ] +3 ⅇ c os [3 x ]

clear all close all %DIFERENCIAS HACIA ADELANTE h1=0.1; h2=0.01; h3=0.3; j=1; for x=0:h1:5 f_d1(j)=(exp(-2*(x+h1))*sin(3*(x+h1))-exp(-2*x)*sin(3*x))/h1; x_1(j)=x; j=j+1; end for x=0:h2:5 f_d2(j)=(exp(-2*(x+h2))*sin(3*(x+h2))-exp(-2*x)*sin(3*x))/h2; x_2(j)=x; j=j+1; end for x=0:h3:5 f_d3(j)=(exp(-2*(x+h3))*sin(3*(x+h3))-exp(-2*x)*sin(3*x))/h3; x_3(j)=x; j=j+1; end f_dreal=-2*exp(-2*x_1).*sin(3*x_1)+3*exp(-2*x_1).*cos(3*x_1); plot(x_1,f_dreal,'b') hold on grid on plot(x_1,f_d1,'r') plot(x_2,f_d2,'g') plot(x_3,f_d3,'k') legend('Numérica','h=0.1','h=0.01','h=0.3') xlabel('Eje X') ylabel('Eje Y')

h3=0.3

Figura 2. Gráfico comparativo con respecto a los diferentes valores que tiene h.

a) Llenar la siguiente tabla: X

f’ Analítica

0.5 0.7 0.9 1.2 1.3 1.8 2.0 2.5 2.6 2.9 4.5

-0,65584 -0,79921 -0,58961 -0,16376 -0,05958 0,09425 0,06299 -0,00563 -0,01012 -0,01081 2,18673e-05

f’ Numérica h1=0.1 -0,73640 -0,76491 -0,51546 -0,10938 -0,01917 0,08795 0,05369 -0,00811 -0,01127 -0,00985 -3,84443e-05

f’ Numérica h2=0.01 -0,6662 -0,7969 -0,5823 -0,1579 -0,0551 0,0937 0,0620 -0,0059 -0,0102 -0,0107 1,5069e-05

EJERCICIO 3 Dada la siguiente función: f ( x )=e−2 x sin(3 x) Por medio de la Aproximación a la Primera Derivada con Diferencias hacia Atrás:

f’ Numérica h3=0.3 -0,7686 -0,6458 -0,3692 -0,0284 0,0349 0,07122 0,0364 -0.0105 -0.0116 -0.0076 -0,0001126

b) Graficar y Comparar si “h” tiene los siguientes valores: h1=0.5

h2=0.2 En el Intervalo [0, 5]

De manera analítica, la primera derivada es: f ' ( x )=−2ⅇ−2 x s∈ [ 3 x ] +3 ⅇ−2 x c os [3 x ] CODIFICACIÓN EN MATLAB clc clear all close all %DIFERENCIAS HACIA ATRAS h1=0.5; h2=0.2; h3=0.1; j=1; for x=0:h1:5 f_d1(j)=(exp(-2*x)*sin(3*x)-exp(-2*(x-h1))*sin(3*(x-h1)))/h1; x_1(j)=x; j=j+1; end for x=0:h2:5 f_d2(j)=(exp(-2*x)*sin(3*x)-exp(-2*(x-h2))*sin(3*(x-h2)))/h2; x_2(j)=x; j=j+1; end for x=0:h3:5 f_d3(j)=(exp(-2*x)*sin(3*x)-exp(-2*(x-h3))*sin(3*(x-h3)))/h3; x_3(j)=x; j=j+1; end f_dreal=-2*exp(-2*x_1).*sin(3*x_1)+3*exp(-2*x_1).*cos(3*x_1); plot(x_1,f_dreal,'b') hold on grid on plot(x_1,f_d1,'r') plot(x_2,f_d2,'g') plot(x_3,f_d3,'k') legend('Numérica','h=0.5','h=0.2','h=0.1') xlabel('Eje X') ylabel('Eje Y')

h3=0.1

Figura 3. Gráfico comparativo con respecto a los diferentes valores que tiene h.

b) Llenar la siguiente tabla: X

f’ Analítica

0.5 0.7 0.9 1.2 1.3 1.8 2.0 2.5 2.6 2.9 4.5

-0,65584 -0,79921 -0,58961 -0,16376 -0,05958 0,09425 0,06299 -0,00563 -0,01012 -0,01081 2,18673e-05

f’ Numérica h1=0.5 0,7339 -0,3312 -0,6962 -0,5060 -0,3749 0,0599 0,0871 0,0228 0,0105 -0,0090 0,00055

f’ Numérica h2=0.2 -0,3147 -0,7704 -0.7110 -0,2962 -0,1680 0,0974 0,0799 0,0025 -0,0051 -0,0118 0,00019

EJERCICIO 4 Dada la siguiente función: f ( x )=e−2 x sin(3 x) Por medio de la Aproximación a la Primera Derivada con Diferencias Centrales: a) Graficar y Comparar si “h” tiene los siguientes valores: h2=0.2 h3=0.1 CODIFICACIÓN EN MATLABh1=0.5 clc clear all En el Intervalo [0, 5] close all %DIFERENCIAS CENTRALES h1=0.5; De h2=0.2; manera analítica, la primera derivada es: h3=0.1; j=1; −2 x f ' ( x )=−2ⅇ for x=0:h1:5 s∈ 3 x +3 ⅇ−2 x c os [3 x ] f_d1(j)=(exp(-2*(x+h1))*sin(3*(x+h1)))-(exp(-2*(x-h1))*sin(3*(x-h1)))/(2*h1); x_1(j)=x; j=j+1; end for x=0:h2:5 f_d2(j)=(exp(-2*(x+h2))*sin(3*(x+h2)))-(exp(-2*(x-h2))*sin(3*(x-h2)))/(2*h2); x_2(j)=x; j=j+1; end for x=0:h3:5 f_d3(j)=(exp(-2*(x+h3))*sin(3*(x+h3)))-(exp(-2*(x-h3))*sin(3*(x-h3)))/(2*h3); x_3(j)=x; j=j+1; end f_dreal=-2*exp(-2*x_1).*sin(3*x_1)+3*exp(-2*x_1).*cos(3*x_1); plot(x_1,f_dreal,'b') hold on grid on plot(x_1,f_d1,'r') plot(x_2,f_d2,'g') plot(x_3,f_d3,'k') legend('Numérica','h=0.5','h=0.2','h=0.1') xlabel('Eje X') ylabel('Eje Y')

[

]

f’ Numérica h3=0.1 -0,5183 -0,8045 -0,6572 -0,2267 -0,1094 0,0978 0,0720 -0,0021 -0,0081 -0,0115 0,000099

b) Llenar la siguiente tabla: X

f’ Analítica

0.5 0.7 0.9 1.2 1.3 1.8 2.0 2.5 2.6 2.9 4.5

-0,65584 -0,79921 -0,58961 -0,16376 -0,05958 0,09425 0,06299 -0,00563 -0,01012 -0,01081 2,18673e-05

f’ Numérica h1=0.5 0,0190 -0,4186 -0,4717 -0,2437 -0,1574 0,0568 0,05498 0,0061 4,3748e-07 -0,0073 0,00020

f’ Numérica h2=0.2 -0,5425 -0,7407 -0,5758 -0,1802 -0,0779 0,0887 0,0623 -0,0035 -0,0084 -0,0103 0,000055

f’ Numérica h3=0.1 -1,800 -1,3302 -0,6627 0,0363 0,1477 0,1421 0,0618 -0,0271 -0,0272 -0,0147 -0,0003508

EJERCICIO 5 Dada la siguiente función: f ( x )=e−2 x sin(3 x) Hacer una comparación para h=0.2 por medio de las tres anteriores aproximaciones (Diferencias hacia adelante, Diferencias hacia atrás y Diferencias Centrales) De manera analítica, la primera derivada es: f ' ( x )=−2ⅇ−2 x s∈ [ 3 x ] +3 ⅇ−2 x c os [3 x ] CODIFICACIÓN EN MATLAB

clc clear all close all %DIFERENCIAS HACIA ADELANTE h1=0.2; j=1; for x=0:h1:5 f_d1(j)=(exp(-2*(x+h1))*sin(3*(x+h1))-exp(-2*x)*sin(3*x))/h1; x_1(j)=x; j=j+1; end %DIFERENCIAS HACIA ATRÁS for x=0:h1:5 f_d2(j)=(exp(-2*x)*sin(3*x)-exp(-2*(x-h1))*sin(3*(x-h1)))/h1; x_2(j)=x; j=j+1; end %DIFERENCIAS CENTRALES for x=0:h1:5 f_d3(j)=(exp(-2*(x+h1))*sin(3*(x+h1)))-(exp(-2*(x-h1))*sin(3*(x-h1)))/(2*h1); x_3(j)=x; j=j+1; end f_dreal=-2*exp(-2*x_1).*sin(3*x_1)+3*exp(-2*x_1).*cos(3*x_1); plot(x_1,f_dreal,'b') hold on grid on plot(x_1,f_d1,'r') plot(x_2,f_d2,'g') plot(x_3,f_d3,'k') legend('Numérica','Diferencias hacia Adelante','Diferencias hacia Atrás','Diferencias Centrales') xlabel('Eje X') ylabel('Eje Y')

Figura 5. Gráfico comparativo con respecto a las diferentes aproximaciones en la Diferenciación Numérica. a) Llenar la siguiente tabla: X

f’ Analítica

0.5 0.7 0.9 1.2 1.3 1.8 2.0 2.5 2.6 2.9 4.5

-0,65584 -0,79921 -0,58961 -0,16376 -0,05958 0,09425 0,06299 -0,00563 -0,01012 -0,01081 2,18673e-05

f’ (Diferencias haca Adelante) h=0.2 -0,7704 -0,7110 -0,4406 -0,0642 0,0120 0,0799 0,0447 -0,0096 -0,0117 -0,0087 -0,000082

f’ (Diferencias hacia Atrás) h=0.2 -0,3147 -0,7704 -0.7110 -0,2962 -0,1680 0,0974 0,0799 0,0025 -0,0051 -0,0118 0,00019

f’ (Diferencias Centrales) h=0.2 -0,5425 -0,7407 -0,5758 -0,1802 -0,0779 0,0887 0,0623 -0,0035 -0,0084 -0,0103 0,000055

EJERCICIO 6 Dada la siguiente función: f ( x )=3 sin( 2 x) Evaluar la Segunda Derivada De manera analítica, la primera derivada es: ' f ( x )=6 c os [2 x ]

La Segunda Derivada analíticamente es: f ' ' ( x )=−12 s ∈[2 x ]

Figura 6. Gráfico de la Segunda Derivada clc clear all close all %SEGUNDA DERIVADA h=0.1

j=1; for x=-2:h:2 f_d(j)=(3*(sin(2*x+h)))-(2*(3*(sin(2*x))))+(3*(sin(2*x-h)))/(h^2); x_1(j)=x; j=j+1; end plot(x_1,f_d,'r') hold on f_dreal=-12*sin(2*x_1); plot(x_1,f_dreal,'b') legend('Numérica','Analítica')