solución de edo en matlab

21
Solución de Ecuaciones diferenciales ordinarias en matlab JANETH ALPALA UNIVERSIDAD DE NARIÑO Licenciatura en Matemáticas Electiva II 7 de abril de 2015 ELECTIVA II UNIVERSIDAD DE NARIÑO 1 / 20

Upload: janeth44

Post on 22-Sep-2015

35 views

Category:

Documents


0 download

DESCRIPTION

presentación para la solucion de ecuaciones diferenciales en matlab

TRANSCRIPT

  • Solucin de Ecuaciones diferenciales ordinariasen matlab

    JANETH ALPALA

    UNIVERSIDAD DE NARIO

    Licenciatura en MatemticasElectiva II

    7 de abril de 2015

    ELECTIVA II UNIVERSIDAD DE NARIO 1 / 20

  • Bsqueda de soluciones explcitasMtodos Numricos

    BibliografaReferencias

    Ecuaciones de primer ordenEcuaciones de Orden SuperiorSistemas

    Tabla de contenido

    1 Bsqueda de soluciones explcitasEcuaciones de primer ordenEcuaciones de Orden SuperiorSistemas

    2 Mtodos NumricosMtodo de Euler

    3 Bibliografa

    ELECTIVA II UNIVERSIDAD DE NARIO 2 / 20

  • Bsqueda de soluciones explcitasMtodos Numricos

    BibliografaReferencias

    Ecuaciones de primer ordenEcuaciones de Orden SuperiorSistemas

    Con la funcin dsolve, es decir S = dsolve(eqn) podemos resuel-ver la Ecuacin Diferencial Ordinaria eqn. Para esto se debe crear unafuncin simblica, por ejemplo y(x) y utilizamos el operador == paracrear una ecuacin, donde la funcin diff indica la diferenciacin.Supongamos, por ejemplo, que queremos resolver la ecuacin diferen-cial de primer orden

    dydx

    = xy (1)

    La entrada y salida para la solucin de este problema es la siguiente.

    syms y(x); dsolve(diff(y) == x*y)ans =C1*exp(x^2/2)

    ELECTIVA II UNIVERSIDAD DE NARIO 3 / 20

  • Bsqueda de soluciones explcitasMtodos Numricos

    BibliografaReferencias

    Ecuaciones de primer ordenEcuaciones de Orden SuperiorSistemas

    Se puede tambin representar eqn como una cadena, utilizando laletra D para indicar la diferenciacin. Por lo tanto, Dy significa dy/dt.Por defecto, dsolve asume que la variable independiente es t, por loque x debe especificarse de forma explcita como la variableindependiente, por ejemplo

    dydx

    = y+ 1 (2)

    >> y= dsolve(Dy = y + 1,x)y =C2*exp(x) - 1

    ELECTIVA II UNIVERSIDAD DE NARIO 4 / 20

  • Bsqueda de soluciones explcitasMtodos Numricos

    BibliografaReferencias

    Ecuaciones de primer ordenEcuaciones de Orden SuperiorSistemas

    Alternativamente, si vamos a utilizar la misma ecuacin en variasocasiones, es posible optar por definirla como una variable, digamos,eqn1.Y para resolver un problema de valor inicial, por ejemplo, la ecuacin(1) con y (1) = 1, utilizamos

    >> eqn1=Dy=x*yeqn1 =Dy=x*y

    >> y=dsolve(eqn1,y(1)=1,x)y =

    exp(-1/2)*exp(x^2/2)

    ELECTIVA II UNIVERSIDAD DE NARIO 5 / 20

  • Bsqueda de soluciones explcitasMtodos Numricos

    BibliografaReferencias

    Ecuaciones de primer ordenEcuaciones de Orden SuperiorSistemas

    La solucin se puede representar grficamente usando ezplot; porejemplo, en el intervalo [0,1]

    >> ezplot(y,[0 1])

    Figura: solucin de y = xy

    ELECTIVA II UNIVERSIDAD DE NARIO 6 / 20

  • Bsqueda de soluciones explcitasMtodos Numricos

    BibliografaReferencias

    Ecuaciones de primer ordenEcuaciones de Orden SuperiorSistemas

    Tabla de contenido

    1 Bsqueda de soluciones explcitasEcuaciones de primer ordenEcuaciones de Orden SuperiorSistemas

    2 Mtodos NumricosMtodo de Euler

    3 Bibliografa

    ELECTIVA II UNIVERSIDAD DE NARIO 7 / 20

  • Bsqueda de soluciones explcitasMtodos Numricos

    BibliografaReferencias

    Ecuaciones de primer ordenEcuaciones de Orden SuperiorSistemas

    Supongamos que queremos resolver y graficar la solucin de la ecua-cin de segundo orden

    4y + 4y + 17y = 0; y(0) = 1, y(0) = 2. (3)La letra D seguida de un dgito indica repetir diferenciacin. Cualquiercarcter inmediatamente despus de un operador de diferenciacin esuna variable dependiente.

    >> eqn2=4*D2y+4*Dy+17*y=0;>> y=dsolve(eqn2,Dy(0)=2,y(0)=-1,x)

    y =

    (3*sin(2*x)*exp(-x/2))/4 - cos(2*x)*exp(-x/2)

    ELECTIVA II UNIVERSIDAD DE NARIO 8 / 20

  • Bsqueda de soluciones explcitasMtodos Numricos

    BibliografaReferencias

    Ecuaciones de primer ordenEcuaciones de Orden SuperiorSistemas

    es decir, la solucin es y = ex/2( 34sen2x cos2x) La solucin sepuede representar grficamente

    >> ezplot(y,[-3 3])

    Figura: Curva solucin del PVI

    En la Figura vemos que la solucin es oscilatoria.ELECTIVA II UNIVERSIDAD DE NARIO 9 / 20

  • Bsqueda de soluciones explcitasMtodos Numricos

    BibliografaReferencias

    Ecuaciones de primer ordenEcuaciones de Orden SuperiorSistemas

    Tabla de contenido

    1 Bsqueda de soluciones explcitasEcuaciones de primer ordenEcuaciones de Orden SuperiorSistemas

    2 Mtodos NumricosMtodo de Euler

    3 Bibliografa

    ELECTIVA II UNIVERSIDAD DE NARIO 10 / 20

  • Bsqueda de soluciones explcitasMtodos Numricos

    BibliografaReferencias

    Ecuaciones de primer ordenEcuaciones de Orden SuperiorSistemas

    Es posible resolver sistemas de ecuaciones diferenciales, con o sin con-diciones iniciales. Por ejemplo, para resolver el sistema

    x(t) = x(t) + 2y(t) z(t) (4)y(t) = x(t) + z(t)z(t) = 4x(t) 4y(t) + 5z(t).

    >> [x,y,z]=dsolve(Dx=x+2*y-z,Dy=x+z,Dz=4*x-4*y+5*z)

    x =- (C16*exp(t))/2 - (C14*exp(2*t))/2 - (C15*exp(3*t))/4y =

    (C16*exp(t))/2 + (C14*exp(2*t))/4 + (C15*exp(3*t))/4z =C16*exp(t) + C14*exp(2*t) + C15*exp(3*t)

    ELECTIVA II UNIVERSIDAD DE NARIO 11 / 20

  • Bsqueda de soluciones explcitasMtodos Numricos

    BibliografaReferencias

    Ecuaciones de primer ordenEcuaciones de Orden SuperiorSistemas

    Para resolver un problema de valor inicial, simplemente definimos unconjunto de valores iniciales y los agregamos al final del comandodsolve . Supongamos que tenemos x (0) = 1, y (0) = 2, y z (0) = 3.Tenemos, entonces,

    inits=x(0)=1,y(0)=2,z(0)=3;[x,y,z]=dsolve(Dx=x+2*y-z,Dy=x+z,

    Dz=4*x-4*y+5*z,inits)x =

    6*exp(2*t) - (5*exp(3*t))/2 - (5*exp(t))/2y =

    (5*exp(3*t))/2 - 3*exp(2*t) + (5*exp(t))/2

    z =10*exp(3*t) - 12*exp(2*t) + 5*exp(t)

    ELECTIVA II UNIVERSIDAD DE NARIO 12 / 20

  • Bsqueda de soluciones explcitasMtodos Numricos

    BibliografaReferencias

    Ecuaciones de primer ordenEcuaciones de Orden SuperiorSistemas

    Finalmente, la grafica de esta solucin puede realizarse con

    >> t=linspace(0,.5,25); xx=eval(vectorize(x));yy=eval(vectorize(y));

    zz=eval(vectorize(z)); plot(t, xx, t, yy, t, zz)legend(x, y, z)

    Figura: Curvas solucin del sistema 3

    ELECTIVA II UNIVERSIDAD DE NARIO 13 / 20

  • Bsqueda de soluciones explcitasMtodos Numricos

    BibliografaReferencias

    Mtodo de Euler

    Tabla de contenido

    1 Bsqueda de soluciones explcitasEcuaciones de primer ordenEcuaciones de Orden SuperiorSistemas

    2 Mtodos NumricosMtodo de Euler

    3 Bibliografa

    ELECTIVA II UNIVERSIDAD DE NARIO 14 / 20

  • Bsqueda de soluciones explcitasMtodos Numricos

    BibliografaReferencias

    Mtodo de Euler

    Ejemplo. Utilice el mtodo de Euler con n = 10 para resolver laecuacin diferencial

    dydx

    = sen(xy); y(0) = pi (5)

    en el intervalo [0, 1]Vamos a llevar a cabo las primeras iteraciones en detalle, y luegoimplementaremos un archivo en MATLAB para llevarlo a cabo ensu totalidad. En primer lugar, el valor inicial y(0) = pi, obtenien-do x0 = 0 y y0 = pi.Si la particin se compone de subintervalos igualmente espacia-dos, entonces, x1 = dx = 1/10 = 0.1y obtenemos

    y1 = y0 + sen(x0y0)dx = pi + sen(0)0.1 = pi

    ELECTIVA II UNIVERSIDAD DE NARIO 15 / 20

  • Bsqueda de soluciones explcitasMtodos Numricos

    BibliografaReferencias

    Mtodo de Euler

    Ejemplo. Utilice el mtodo de Euler con n = 10 para resolver laecuacin diferencial

    dydx

    = sen(xy); y(0) = pi (5)

    en el intervalo [0, 1]Vamos a llevar a cabo las primeras iteraciones en detalle, y luegoimplementaremos un archivo en MATLAB para llevarlo a cabo ensu totalidad. En primer lugar, el valor inicial y(0) = pi, obtenien-do x0 = 0 y y0 = pi.Si la particin se compone de subintervalos igualmente espacia-dos, entonces, x1 = dx = 1/10 = 0.1y obtenemos

    y1 = y0 + sen(x0y0)dx = pi + sen(0)0.1 = pi

    ELECTIVA II UNIVERSIDAD DE NARIO 15 / 20

  • Bsqueda de soluciones explcitasMtodos Numricos

    BibliografaReferencias

    Mtodo de Euler

    Ahora tenemos el punto (x1, y1) = (0.1,pi), y podemos usar esto enla ecuacin para calcular

    y2 = y1 + sen(x1y1)dx = pi + sen(.1pi)(.1) = 3.1725

    Ahora tenemos (x2, y2) = (.2, 3.1725), y podemos usar esto paracalcular

    y3 = y2 + sen(x2y2)dx = 3.1725+ sen(.2(3.1725))(.1) = 3.2318.

    ELECTIVA II UNIVERSIDAD DE NARIO 16 / 20

  • Bsqueda de soluciones explcitasMtodos Numricos

    BibliografaReferencias

    Mtodo de Euler

    De manera ms general, podemos utilizar la funcin en Matlabeuler.m

    function [xvalores, yvalores] = euler(f,x0,xn,y0,n)%EULER: MATLAB funcin que resuelve la%ODE y=f, y(x0)=y0 on [x0,y0] usando una particin%con n subintervalos igualmente espaciadosdx = (xn-x0)/n;x(1) = x0;y(1) = y0;for k=1:n

    x(k+1)=x(k) + dx;y(k+1)= y(k) + f(x(k),y(k))*dx;

    endxvalores = x;yvalores = y;

    ELECTIVA II UNIVERSIDAD DE NARIO 17 / 20

  • Bsqueda de soluciones explcitasMtodos Numricos

    BibliografaReferencias

    Mtodo de Euler

    Podemos implementar este archivo con el siguiente cdigo,

    >> f=inline(sin(x*y))

    f =

    Inline function:f(x,y) = sin(x*y)

    >> [x,y]=euler(f,0,1,pi,10)

    x =0 0.1000 0.2000 0.3000 0.4000 0.50000.6000 0.7000 0.8000 0.9000 1.0000

    y =3.1416 3.1416 3.1725 3.2318 3.31423.4112 3.5103 3.5963 3.6548 3.6764 3.6598

    ELECTIVA II UNIVERSIDAD DE NARIO 18 / 20

  • Bsqueda de soluciones explcitasMtodos Numricos

    BibliografaReferencias

    Mtodo de Euler

    De manera ms general, podemos utilizar la funcin en Matlabeuler.m>>plot(x,y)>>[x,y]=euler(f,0,1,pi,10);>>plot(x,y,b+:)

    Figura: aproximaciones con dx=0.1

    ELECTIVA II UNIVERSIDAD DE NARIO 19 / 20

  • Bsqueda de soluciones explcitasMtodos Numricos

    BibliografaReferencias

    Referencias

    P. Howard: Solving ODE in MATLAB 2009http://www.mathworks.com/help/symbolic/dsolve.html

    ELECTIVA II UNIVERSIDAD DE NARIO 20 / 20

    TalkBsqueda de soluciones explcitasEcuaciones de primer ordenEcuaciones de Orden SuperiorSistemas

    Mtodos NumricosMtodo de Euler

    Bibliografa