Derivacion Numerica Trabajo de Labo

download Derivacion Numerica Trabajo de Labo

of 12

Transcript of Derivacion Numerica Trabajo de Labo

  • 8/21/2019 Derivacion Numerica Trabajo de Labo

    1/12

    DERIVACIO N NUMERICA

    1) Escr ib ir una func in MATLAB df(x) que admita como entradas un

    vector de puntos x y los valores de una funcin f en los mismos , yque calcule el valor de la derivada primera en los mismos

    utilizando la frmula de diferencia adelantada. Para calcular el

    valor en el extremo superior debe usarse la

    frmula de diferencia retrasada. El c digo utilizado es el

    siguiente:

    El p r ogr ama admi t e como en t r ada l os va l o r es de x , f ( x ) con

    l o cua l i n t e r po l a y ob t i ene l os c o e fi c i e n t e s del polinomio interpolador,donde luego de evaluar los f(xi) nos arroja resultados de las primeras derivada

  • 8/21/2019 Derivacion Numerica Trabajo de Labo

    2/12

    2) A p l i c a r l a f r m u la d e do s p un t o s ad e l a n ta d a a l c l c u l o d e l ad e ri vada p ri mer a de f (x) = sinx en x = 2,13432.Comprobar que al ir

    reduciendo h el error se reduce de manera aproximadamente lineal con h.

    El cdigo utilizado es el siguiente:

  • 8/21/2019 Derivacion Numerica Trabajo de Labo

    3/12

    Una vez corrido el programa obtenemos los siguientes resultados, y

    la grafica donde se evidencia el comporta-miento del error en

    funcin de h:

  • 8/21/2019 Derivacion Numerica Trabajo de Labo

    4/12

    3) Repetir el ejercicio anterior comparando la precisin de la frmula dediferencia adelantada con la retrasada. Aplicar tambin ambas frmulas al

    clcu lo de la derivada de la funcin g(x) = 1(1+e^x) en x = 12.El c digoutilizado:

    El programa nos arroja a la pantalla lo siguiente:

  • 8/21/2019 Derivacion Numerica Trabajo de Labo

    5/12

    4) Supongamos que se conoce el valor de la derivada mediante la frmulade diferencia adelantada para tres valores de h diferentes. Es posible

    estimar el valor del h optimo? Es posible estimar el error que se

    comete en el clculo en cada uno de los ca so s? . Ap lic arl o al c lculo

    de la derivada de la funcin f (x) = senx en x=0.6 usando h=0.1, h=0.01 yh=0.0000000001.

    Solucin

    El mejor valor que se le puede dar a b es aquel que este mas prximo a cero.

    En otras palabras h0.Es posible nicamente cuando se conoce el valor realde la derivada de la funcin original.Los resultados que nos arroja Matlab son: Clculo con h = 0,1

    Clculo con h = 0,01

  • 8/21/2019 Derivacion Numerica Trabajo de Labo

    6/12

    Clculo con h = 0,0000000001

    5) Cal cul ar la der iva da de la fun ci n f (x) = tan(x) en x=3 .14 usa ndoh=0.1 y h=0.01. Comparar el resul tado con el valor exacto. Es

    buena la ap roximacin? Por qu? El valor de la der ivada ut il izandoderivacin numrica es muy bueno, porque el error estimado oscila entre

    0 y0.33 por ciento por lo tanto es una muy buena aproximacin. E l

    c lculo con h=0.01 nos arroja un error del 0 por lo tanto es mucho ms

    preci so qu e si ut il izamos h=0.1El cdigo utilizado es el siguiente:

    La aplicacin en Matlab nos indica lo siguiente:

  • 8/21/2019 Derivacion Numerica Trabajo de Labo

    7/12

    6) Cal cul ar cot as p ara el e r ror de t run cac in que se comete alaproximar las derivadas de las funciones f (x) = 11+senxy g(x) = log(1 + 2x)

    . Calcular las cotas teniendo en cuenta el error de redondeo y comprobarque los errores reales estn por debajo de lo permitido por la cota.

    La s f rmulas ms utilizadas son las que emplean tres y cinco puntos

    devaluacin. Las siguientes frmulas se obtienen de las frmulas de 3

    puntos:

    Observ emos que l a cota de l e r ror en e s te u lt imo caso es

    aproximadamente la mitad que en los otros dos casos,ademas esta formula

  • 8/21/2019 Derivacion Numerica Trabajo de Labo

    8/12

    necesita menos evaluaciones de f que la ante rior. El error de truncamiento,

    si f (3)() no ca mb ia mu y r pidamente, tiende a cero a la misma velocidad

    que h2.Ahora bien de acuerdo al ejemplo anterior no es aconsejable

    elegir h demasiado pequeo, por lo que ser til disponer de frmulas que

    aproximen

    y que

    tengan un error de

    truncamiento de orden

    mayor al dado.

    7) Construir una tabla de derivadas primeras de las funcin g(x) definida

    po r la si gu iente tabla en los puntos con la mayor precisin posible

    mediante frmulas de tres puntos.

  • 8/21/2019 Derivacion Numerica Trabajo de Labo

    9/12

    Para la solucin de este ejercicio utilizaremos el programa que se realizo en el

    ejercicio nmero 1, donde ingresamos el nmero de pun tos que deseamos y sus

    respectivas imgenes, el programa determina el polinomio interpolador, evalalas derivadas en esos puntos y nos devuelve los valores.

    Cdigo a utilizarse:

    Con estos valores podremos completar el cuadro de las primeras

    derivadas.

  • 8/21/2019 Derivacion Numerica Trabajo de Labo

    10/12

  • 8/21/2019 Derivacion Numerica Trabajo de Labo

    11/12

    8) Usando la frmula de diferencia centrada calcular la derivada primera de la

    funcin f(x) = arctan x en el punto x = 2 (el valor correcto es 1/3). Utilizar

    diferentes valores de h y estudiar los efectos de los errores de redondeo y de

    truncacin.

    Codigo a utilizarse f u n c t i o n D e r i v a c i o n C e n t r a d a

    clcc l e a r a l ls y m s x h=0;

    y=i n p u t ( I n g r e s e l a f u n c i o n q u e d e s e a d e r i v a

    r : );

    xo=i n p u t ( I n g r e s e e l p u n t o e n e lc u a l d e s e a c a l c u l a r l a d e r i v a d a : );

    w h i l e (h< = 0 )

    h=i n p u t ( I n g r e s e h : );if(h< = 0 )

    d i s p l a y ( h d e b e s e r m a y o r a c e r o )

    endendv r e a l =s u b s (d i f f (y),x,xo);v a p r o x i m a d o 1 =(s u b s (y,x,xo+h)-s u b s (y,x,xo-h) ) / ( 2 * h);v a p r o x i m a d o 2 =(-s u b s (y,x,xo+2*h) + 8 * s u b s (y,x,xo+h) -

    8 * s u b s (y,x,xo-h)+s u b s (y,x,xo-2*h) ) / ( 1 2 * h);

    e r r o r 1 =abs((v r e a l -v a p r o x i m a d o 1 )/v r e a l ) * 1 0 0 ;e r r o r 2 =abs((v r e a l -v a p r o x i m a d o 2 )/v r e a l ) * 1 0 0 ;

    f p r i n t f ( V a l o r r e a l : % . 8 f \ n ,v r e a l )

    f p r i n t f ( V a l o r a p r o x i m a d o d e o r d e n O ( h ^ 2 ) : %. 8 f \ n ,v a p r o x i m a d o 1 )

    f p r i n t f ( V a l o r a p r o x i m a d o d e o r d e n O ( h ^ 4 ) : %

    . 8 f \ n ,v a p r o x i m a d o 2 )

    f p r i n t f ( E r r o r 1 : % . 8 f \ n ,e r r o r 1 )f p r i n t f ( E r r o r 2 : % . 8 f \ n ,e r r o r 2 )

    end

    La aplicacin en Matlab nos muestra lo siguiente

    Para h=0.1

  • 8/21/2019 Derivacion Numerica Trabajo de Labo

    12/12

    Para h=0.01

    Podemos observar en este ejemplo que el error disminuye a medida que h

    disminuye.9. De du ci r un a fo rmula de cinco puntos que utilice los valores de

    la funcin en lo p untos x, x+h, x+2h , x+3h y x-h para calcular

    Para la deduccin de la funcin con esos valores se empezar con la expansin

    de la serie de Taylor