informeseis

7
Proyecto Nro. 6: M´ etodos Aproximados de Ecuaciones Diferenciales Ordinarias Algoritmos Num´ ericos Jonathan Morocho Jim´ enez Escuela Polit´ ecnica Nacional Facultad de Ingenier´ ıa de Sistemas 27 de mayo de 2014 1. etodo de Euler y Runge-Kutta El objetivo del presente trabajo consiste en la realizaci´ on de un c´ odigo de programaci´ on que permi- ta resolver num´ ericamente el problema y 0 = f (t, y),y(t 0 )= y 0 usando el m´ etodo de Euler (mejorado) y Runge Kutta. Para todos los casos se ha considerado t[0, 5] y k =2,a = -2, en las ecuaciones (2) y (3). Para todas las gr´ aficas, se utilizan los diferentes valores y(i)y t(i) con i =0, 1, ..., n calculados con los m´ etodos num´ ericos antes mencionados. Ademas se usa n = 100 para generar 100 intervalos a menos que se indique lo contrario. El c´ odigo creado considera a la funci´ on ingresada como y 0 = f (t, y), a pesar de que las ecuaciones diferenciales ordinarias aqu´ ı presentadas carecen de tal termino, por lo que se suma t - t (a pesar de que estos t´ erminos se cancelan). Dadas las siguientes ecuaciones diferenciales ordinarias dx y = -x (1) dx y = 1 - a sin(x) (2) dx y = kx(1 - x) (3) 1. Se resuelve num´ ericamente la ecuaci´ on (2) (es decir, se encuentra y(t) usando el m´ etodo de Euler y Runge Kutta (para un valor apropiado de h) y se presenta una figura comparativa entre ambos etodos. 1

Transcript of informeseis

  • Proyecto Nro. 6: Metodos Aproximados de

    Ecuaciones Diferenciales Ordinarias

    Algoritmos Numericos

    Jonathan Morocho Jimenez

    Escuela Politecnica Nacional

    Facultad de Ingeniera de Sistemas

    27 de mayo de 2014

    1. Metodo de Euler y Runge-Kutta

    El objetivo del presente trabajo consiste en la realizacion de un codigo de programacion que permi-ta resolver numericamente el problema y = f(t, y), y(t0) = y0 usando el metodo de Euler (mejorado)y Runge Kutta. Para todos los casos se ha considerado t[0, 5] y k = 2, a = 2, en las ecuaciones (2)y (3). Para todas las graficas, se utilizan los diferentes valores y(i) y t(i) con i = 0, 1, ..., n calculadoscon los metodos numericos antes mencionados. Ademas se usa n = 100 para generar 100 intervalos amenos que se indique lo contrario. El codigo creado considera a la funcion ingresada como y = f(t, y),a pesar de que las ecuaciones diferenciales ordinarias aqu presentadas carecen de tal termino, por loque se suma t t (a pesar de que estos terminos se cancelan).

    Dadas las siguientes ecuaciones diferenciales ordinarias

    dx

    y= x (1)

    dx

    y= 1 a sin(x) (2)

    dx

    y= kx(1 x) (3)

    1. Se resuelve numericamente la ecuacion (2) (es decir, se encuentra y(t) usando el metodo de Eulery Runge Kutta (para un valor apropiado de h) y se presenta una figura comparativa entre ambosmetodos.

    1

  • 1 METODO DE EULER Y RUNGE-KUTTA

    Figura 1: Comparacion entre los metodos de Euler y Runge Kutta para la ecuacion (2)

    2. Se resuelve numericamente la ecuacion (1) (usando RK4) considerando 5 distintos valores de anchode intervalo (apropiadamente elegidos). Se muestra la siguiente figura:

    Figura 2: RK4 con variacion del intervalo h para la ecuacion (1)

    3. Se analiza como vara la solucion numerica (usando RK4) de la ecuacion (2) para 5 distintos valoresdel parametro a (apropiadamente elegidos). Se muestra la siguiente figura:

    2

  • 1 METODO DE EULER Y RUNGE-KUTTA

    0 1 2 3 4 51

    1.5

    2

    2.5

    3

    3.5

    4

    t(i)

    y(i)

    RK4 con variacion del parametro a

    a=2a=3a=4a=5a=6

    Figura 3: RK4 con variacion del parametro a para la ecuacion (2)

    4. Se analiza como vara la solucion numerica (usando RK4) de la ecuacion (3) para 5 distintos valoresdel parametro k (apropiadamente elegidos). Se muestra la siguiente figura:.

    0 1 2 3 4 50

    0.1

    0.2

    0.3

    0.4

    0.5

    0.6

    0.7

    t(i)

    y(i)

    RK4 con variacion del parametro k

    k=2k=2.1k=2.2k=2.3k=2.4

    Figura 4: RK4 con variacion del parametro k para la ecuacion (3)

    3

  • REFERENCIAS

    2. Discusion y Conclusiones

    En la Figura 1 se puede observar la grafica de la comparacion entre los metodos de Euler y RungeKutta para la ecuacion (2), se puede apreciar que a pesar de que los metodos practicamente generan losmismos valores para cada y(i), en la ampliacion se puede apreciar que las diferencias entre los valoresproducidos por el primer metodo y el segundo puede ser significativas, de acuerdo a la precision quese necesite.

    En la Figura 2 se puede observar la grafica de la aplicacion del metodo RK4 con variacion delintervalo h para la ecuacion (1). Se puede apreciar que es mejor tener un valor de h pequeno (a pesarde que computacionalmente, si se hace que se genere h a partir de un valor n, el trabajo de calcularlos resultados puede llegar a tomar bastante tiempo.

    En la Figura 3 se puede observar la grafica de la aplicacion del metodo RK4 con variacion delparametro a para la ecuacion (2). El valor a llega a producir variaciones que en aplicaciones de lavida real es muy importante estudiar, por ejemplo en el caso de analisis de materiales o de manejo defluidos.

    En la Figura 4 se puede observar la grafica de la aplicacion del metodo RK4 con variacion delparametro k para la ecuacion (3). De igual forma que el punto anterior, en aplicaciones de la vida realdebe ser posible manejar este parametro para obtener los resultados esperados.

    Referencias

    [1] Richard L. Burden - J. Douglas Faires, Analisis Numerico, 7ma edicion, 2009

    [2] http://www.matworks.com

    4

  • A. Anexos

    A.1. Metodo de Euler (mejorado)

    f unc t i on [ Sy St ]= eulermejorado ( f , t0 , a , b , n )

    % f f ( t , y )% a y b extremos de l i n t e r v a l o [ a , b ]%n n sub in t e r va l o s

    %syms y%syms t

    %1) D iv id i r [ a , b ] en n sub in t e r va l o s de ancho :h=(ba ) /n ;

    %2) Generar l a s e cuenc i a

    y=[ ] ;y (1 )=t0 ;t=[ ] ;t (1 )=a ;

    f o r i=1:nt ( i+1)=t (1 )+i*h ;

    K1=subs ( subs ( f , y ( i ) ) , t ( i ) ) ;K2=subs ( subs ( f , y ( i )+h*K1 ) , t ( i ) ) ;

    y ( i+1)=y ( i )+(h /2) *( K1+K2 ) ; ;end

    Sy=y ;St=t ;

    A.2. Metodo de Runge-Kutta

    f unc t i on [ Sy , St ]= RK4 ( f , t0 , a , b , n )

    % f f ( t , y )% a y b extremos de l i n t e r v a l o [ a , b ]%n n sub in t e r va l o s

    %syms y%syms t

    %1) D iv id i r [ a , b ] en n sub in t e r va l o s de ancho :h=(ba ) /n ;

    %2) Generar l a s e cuenc i ay=[ ] ;y (1 )=t0 ;t=[ ] ;t (1 )=a ;

    f o r i=1:nt ( i+1)=t (1 )+i*h ;

    K1=subs ( subs ( f , y ( i ) ) , t ( i ) ) ;K2=subs ( subs ( f , y ( i )+(h*K1 /2) ) , t ( i )+(h /2) ) ;K3=subs ( subs ( f , y ( i )+(h*K2 /2) ) , t ( i )+(h /2) ) ;K4=subs ( subs ( f , y ( i )+h*K3 ) , t ( i ) ) ;

    y ( i+1)=y ( i )+(h /6) *( K1+2*K2+2*K3+K4 ) ;end

    Sy=y ;St=t ;

  • A.3 Graficas A ANEXOS

    A.3. Graficas

    %g r a f i c a rsyms xsyms tn=100;

    %1)imagen = f i g u r e (11) ;hold on

    [ SEy , SEt ]= eulermejorado (1+2* s i n ( x )+tt , 1 , 0 , 5 , n ) ;p l o t ( SEt , SEy , 'b ' )

    [ SRy , SRt ]= RK4 (1+2* s i n ( x )+tt , 1 , 0 , 5 , n ) ;p l o t ( SRt , SRy , ' r ' )

    x l ab e l ( ' t ( i ) ' )y l ab e l ( 'y ( i ) ' )legend ( ' Euler ' , 'RK4 ' )t i t l e ( 'Comparacion metodos Euler y RK4 ' )p r i n t ( imagen , 'depsc ' , ' f i gu r a11 . eps ' )

    %2)imagen = f i g u r e (12) ;hold on

    [ SRy , SRt ]= RK4(x+tt , 1 , 0 , 5 , 100 ) ; %, h1=0.05p lo t ( SRt , SRy , 'b ' )

    [ SRy , SRt ]= RK4(x+tt , 1 , 0 , 5 , 5 0 ) ; %, h1=0.10p lo t ( SRt , SRy , ' g ' )

    [ SRy , SRt ]= RK4(x+tt , 1 , 0 , 5 , 3 3 ) ; %, h1=0.15p lo t ( SRt , SRy , ' r ' )

    [ SRy , SRt ]= RK4(x+tt , 1 , 0 , 5 , 2 5 ) ; %, h1=0.20p lo t ( SRt , SRy , 'k ' )

    [ SRy , SRt ]= RK4(x+tt , 1 , 0 , 5 , 2 0 ) ; %, h1=0.25p lo t ( SRt , SRy , ' c ' )

    x l ab e l ( ' t ( i ) ' )y l ab e l ( 'y ( i ) ' )t i t l e ( 'RK4 con va r i a c i on de l i n t e r v a l o h ' )legend ( 'h1=0.05 ' , 'h2=0.10 ' , 'h3=0.15 ' , 'h4=0.20 ' , 'h5=0.25 ' )p r i n t ( imagen , 'depsc ' , ' f i gu r a12 . eps ' )

    %3)imagen = f i g u r e (13) ;hold on

    a=2;[ SRy , SRt ]= RK4 (1a* s i n ( x )+tt , 1 , 0 , 5 , n ) ;p l o t ( SRt , SRy , 'b ' )

    a=3;[ SRy , SRt ]= RK4 (1a* s i n ( x )+tt , 1 , 0 , 5 , n ) ;p l o t ( SRt , SRy , ' g ' )

    a=4;[ SRy , SRt ]= RK4 (1a* s i n ( x )+tt , 1 , 0 , 5 , n ) ;p l o t ( SRt , SRy , ' r ' )

    a=5;[ SRy , SRt ]= RK4 (1a* s i n ( x )+tt , 1 , 0 , 5 , n ) ;p l o t ( SRt , SRy , 'k ' )

    a=6;[ SRy , SRt ]= RK4 (1a* s i n ( x )+tt , 1 , 0 , 5 , n ) ;p l o t ( SRt , SRy , ' c ' )

    x l ab e l ( ' t ( i ) ' )y l ab e l ( 'y ( i ) ' )t i t l e ( 'RK4 con va r i a c i on de l parametro a ' )

    6

  • A ANEXOS A.3 Graficas

    l egend ( ' a=2 ' , ' a=3 ' , ' a=4 ' , ' a=5 ' , ' a=6 ' )p r i n t ( imagen , 'depsc ' , ' f i gu r a13 . eps ' )

    %4)imagen = f i g u r e (14) ;hold on

    k=2;[ SRy , SRt ]= RK4 ( k*x*(1x )+tt , 0 . 0 0001 , 0 , 5 , n ) ;p l o t ( SRt , SRy , 'b ' )

    k=2.1;[ SRy , SRt ]= RK4 ( k*x*(1x )+tt , 0 . 0 0001 , 0 , 5 , n ) ;p l o t ( SRt , SRy , ' g ' )

    k=2.2;[ SRy , SRt ]= RK4 ( k*x*(1x )+tt , 0 . 0 0001 , 0 , 5 , n ) ;p l o t ( SRt , SRy , ' r ' )

    k=2.3;[ SRy , SRt ]= RK4 ( k*x*(1x )+tt , 0 . 0 0001 , 0 , 5 , n ) ;p l o t ( SRt , SRy , 'k ' )

    k=2.4;[ SRy , SRt ]= RK4 ( k*x*(1x )+tt , 0 . 0 0001 , 0 , 5 , n ) ;p l o t ( SRt , SRy , ' c ' )

    x l ab e l ( ' t ( i ) ' )y l ab e l ( 'y ( i ) ' )t i t l e ( 'RK4 con va r i a c i on de l parametro k ' )legend ( 'k=2 ' , 'k=2.1 ' , 'k=2.2 ' , 'k=2.3 ' , 'k=2.4 ' )p r i n t ( imagen , 'depsc ' , ' f i gu r a14 . eps ' )

    7

    Mtodo de Euler y Runge-KuttaDiscusin y ConclusionesAnexosMtodo de Euler (mejorado)Mtodo de Runge-KuttaGrficas