%md **PROYECTO DE ECUACIONES DIFERENCIALES** **INTEGRANTES:** *JOHANNA ERMELINDA OSORIO RUIZ CARNET OR12017* *JOSE LUIS VILLALOBOS MARTINEZ CARNET VM12038*
PROYECTO DE ECUACIONES DIFERENCIALES
INTEGRANTES:
JOHANNA ERMELINDA OSORIO RUIZ CARNET OR12017
JOSE LUIS VILLALOBOS MARTINEZ CARNET VM12038
Problema 1: Resolver la ecuación diferencial con SageMath. Consejo: Mira documentación en el libro de texto. Por su propia ecuación diferencial personal, sean P y Q dos dígitos distintos de cero en el número de identificación de estudiante, y consideran la ecuación diferencial.
Encontrar una solución general simbólica mediante un sistema de álgebra computacional y / o alguna combinación de las técnicas que se enumeran en este capítulo (Edwards y Penney
reset() a,b,x,C,z=var('a,b,x,C,z') y = function('y')(x) solution = desolve(diff(y,x) == (1/11)*cos(x-14*y) , y,ivar=x,contrib_ode=True,show_method=True) mySolution=solution[0][0] show(mySolution)
b) Determinar la solución particular simbólica correspondiente con varias condiciones iniciales típicas de la forma y(x_0)=y_0. lo que haremos es encontrar valores diferentes para C para que se ajuste para diferentes condiciones iniciales.
Aplicar las condiciones iniciales x0 = 1, y0 = 1
ss=mySolution.lhs() C=(ss).substitute({y(x):1}).substitute(x=1) show(C) equation1=ss.substitute({y(x):z})==1 equation2=-15/(11*sqrt(3))*equation1 show(equation2)
le aplicamos las condiciones iniciales de nuevo x0 = 0, y0 = 0
mySolution= solution[0][0] ss1=mySolution.lhs() C1=(ss1).substitute({y(x):0}).substitute(x=0) show(C1)
la aplicación de las condiciones iniciales de nuevo x0 = 10, y0 = 50
ss2=mySolution.lhs() C2=(ss2).substitute({y(x):50}).substitute(x=10) show(C2) x,C,z=var('x,C,z') y = function('y')(x) sol = desolve(diff(y,x) == (1/11)*cos(x-14*y) , y,ivar=x,contrib_ode=True,show_method=True) mySolution=solution[0][0] ss=mySolution.lhs() equation1=ss.substitute({y(x):z})==1 equation2=-15/(11*sqrt(3))*equation1 solve(equation2,z) implicit_plot(equation2,(x,-5,5),(z,-5,5))
%md c) Defina los posibles valores de a y b tales que la línea recta y=a*x+b sea una curva solución de la ecuación. En La ecuación diferencial,sustituyendo tenemos que:
x,C,z=var('x,C,z') y=function('y')(x) sol=desolve(diff(y,x) == (1/11)*cos(x-14*y) , y,ivar=x,contrib_ode=True,show_method=True) mySolution=solution[0][0] ss=mySolution.lhs() equation1=ss.substitute({y(x):z})==1 equation2=-15/(11*sqrt(3))*equation1 solve(equation2,z) implicit_plot(equation2,(x,-5,5),(z,-5,5))
a,b,x,C,z=var('a,b,x,C,z') y = function('y')(x) equation3= diff(y,x)== (1/11)*cos(x-14*y) k1=(equation3).substitute({y:(a*x+b)}).substitute({diff(y,x):a}) show(k1) #factorizando,llegamos a que: equation4= a== (1/11)*cos((1-14*a)*x - 14*b) show(equation4) #a continuacion,haciendo 14*a-1=0 se llega a que: equation5= 14*a -1==0 solution1=solve(equation5,a) mySolution1= solution1[0] show(mySolution1) #entonces, ahora puedes resolver a b,sustituyendo el valor de una, por lo que deberia de ser: equation6=show(equation4.substitute ({a:1/14})) solution2=solve(cos(-14*b)-11/14, b) mySolution2=solution2[0] show(mySolution2) #Por lo tanto la solución es: equation7= y == a*x+b show(equation7) final=equation7.substitute({a:mySolution1}).substitute({b:mySolution2}) show(final)
#d) Grafiqué un campo direccional y algunas curvas solución. ¿Puede establecer alguna conexión entre la solución simbólica y sus curvas solución. from sage.calculus.desolvers import desolve_rk4 x,y=var('x,y') slopefield=plot_slope_field((1/11)*cos(x-14*y),(x,-5,4),(y,-5,4)) #una instancia de una variable f f=plot([]) #crear instancias de f como una trama vacía #loop over to get many plots #ajustes dinámicos,aviso de color RGB for k in [1, 2, 3, 4, 5, 5.5, 8, 9, 10, 11, 11.3, 11.5, 11.7, 12]: f=f+line(desolve_rk4((1/11)*cos(x-14*y),y,ics=[k/2-3,-k/2+3],end_points=[-5,5],step=0.01), rgbcolor=(k/12,0,1-k/12)) #Mostrar todas las curvas y campos de pendientes (slopefield+f).show(xmin=-5,xmax=5,ymin=-5,ymax=5)
from sage.calculus.desolvers import desolve_rk4 x,y=var('x,y') slopefield=plot_slope_field((1/1)*cos(x-14*y),(x,-5,5),(y,-5,5)) #una instancia de una variable f f=plot([]) #crear instancias de f como una trama vacía #puntos por encima de la trama pts=points([(-2.5,2.5),(-1,-2),(-2,1),(-1,2),(2,0), (1,0.5),(1,-1)],size=80,color='red') #loop over to get many plots #ajustes dinámicos aviso de color RGB for ics in [[-2.5,2.5],[-1,-2],[-2,1],[-1,2],[2,0],[1,0.5],[1,-1]]: f=f+line(desolve_rk4((1/11)*cos(x-14*y),y,ics,end_points=[-5,5],step=0.05)) #mostrar todos los campos curvas + pendiente (slopefield+pts+f).show(xmin=-5,xmax=5,ymin=-5,ymax=5)
problema2: #encontrar la solución de la ecuacion (D-2)3(D2+9)y=x2ex+xsin(3x); con valores iniciales y(0)=y'(0)=y"(0)=y3(0)=y4(0)=1
# Utilizo la ecuación caracteristica para encontrar las raices de la ecuación diferencial r=var('r') solve([(r-2)^3*(r^2+9)==0],r) # Escribo la solución complementaria var('x,c1,c2,c3,c4,c5') yc= function('y')(x)
# en c2 y c3 los multiplicó por x y x^2 respectivamente por que hay raices repetidas yc(x)= c1*exp(2*x)+c2*(x)*exp(2*x)+c3*(x^2)*exp(2*x)+c4*cos(3*x)+c5*sin(3*x) # Ahora para la solución particular tengo # Utilizó la parte no homogenea de la ecuación diferencial f= function ('y')(x) f(x)= x^2*exp(x)+x*sin(3*x)
# Escribiendo la solución trivial para f(x), recordar que L[y]=f(x) var('A,B,C,D,E,F,G') yp= function('y')(x)
# Multiplicó por x para eliminar multiplicidad de la solución de ensayo yp(x)= A*exp(x)+B*(x)*exp(x)+C*(x^2)*exp(x)+x*((D*x+E)*cos(3*x)+(F*x+G)*sin(3*x)) # Ahora trabajo con yp para encontrar sus coeficientes k=function('k')(x) D1= diff(yp,x,2)+9*yp D2= diff(D1,x,1)-2*D1 D3= diff(D2,x,1)-2*D2 D4= diff(D3,x,1)-2*D3 k= D4
# Resuelvo para poder hallar las constantes de la solución de ensayo tomando valores al azar solve([k(0)==f(0),k(1)==f(1),k(6)==f(6),k(2)==f(2),k(5)==f(5),k(3)==f(3),k(4)==f(4)],A,B,C,D,E,F,G)
# Reescribimos la solución de ensayo con los valores encontrados yp(x)= (-267/250)*exp(x)+(-14/25)*x*exp(x)+(-1/10)*(x^2)*exp(x)+x*(((-23/13182)*x+(-251/114244))*cos(3*x)+((-3/8788)*x+(1379/514098))*sin(3*x)) show(yp)
# Ahora escribo la solución general de la ecuación diferencial y encuentro las constantes de la solución complementaria y= function('y')(x) y(x)= yc(x)+ yp(x)
# Utilizó show para que la expresión se vea mejor show(y) solve([y(0)==1,diff(y,x,1)(0)==1,diff(y,x,2)(0)==1,diff(y,x,3)(0)==1,diff(y,x,4)(0)==1],c1,c2,c3,c4,c5)
# Reescribimos la solución general con los valores encontrados de las constantes de la solución complementaria y(x)= (774782/371293)*exp(2*x)+(-43330/28561)*(x)*exp(2*x)+(1020/2197)*(x^2)*exp(2*x)+(-1737019/92823250)*cos(3*x)+(-4850123/556139500)*sin(3*x)+ yp(x) # La solución general es: show(y)
problema 3 encontrar los primeros seis terminos de cada una de las soluciones linealmente independientes de la forma ΣCn Xn
#Generando una sumatoria del 12 terminos reset() n=12 b= list (var('a%d' % i) for i in range (n) ) x= var('x') y= function('y')(x) var('a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11')
a0=0 a1=1 y(x)=a0+a1*x+a2*x^2+a3*x^3+a4*x^4+a5*x^5+a6*x^6+a7*x^7+a8*x^8+a9*x^9+a10*x^10+a11*x^11 show(y(x))
#definir la serie de seno para poder introducirla en la ecuacion diferencial. senoX=taylor(sin(x),x,0,12) #para solo mostar los primeros terminos de la serie del seno show(senoX) #sustituyendo en la ecuancion diferencial y expandiendo tenemos a0=0 a1=1 ecua=expand(x*diff(y,x,2)+senoX*diff(y,x,1)+x*y(x)==0)
show(ecua)
#agrupando los coeficientes de x^1 y resolviendo el sistema para encontra a2 solve([(ecua.lhs()).coefficient(x,1)==0],a2) show(solve([(ecua.lhs()).coefficient(x,1)==0],a2))
#agrupando coeficientes de x^2 y resolviendo para encontrar a3 show(solve([(ecua.lhs()).coefficient(x,2).substitute(a2=-1/2)==0],a3))
#agrupando coeficientes de x^3 y resolviendo para encontrar a4 show(solve([(ecua.lhs()).coefficient(x,3).substitute(a2=-1/2,a3=0)==0],a4))
#agrupando coeficientes de x^4 y resolviendo para encontrar a5 show(solve([(ecua.lhs()).coefficient(x,4).substitute(a2=-1/2,a3=0,a4=1/18)==0],a5))
#agrupando coeficientes de x^5 y resolviendo para encontrar a6 show(solve([(ecua.lhs()).coefficient(x,5).substitute(a2=-1/2,a3=0,a4=1/18,a5=-7/360)==0],a6))
#agrupando coeficientes de x^6 y resolviendo para encontrar a7 show(solve([(ecua.lhs()).coefficient(x,6).substitute(a2=-1/2,a3=0,a4=1/18,a5=-7/360,a6=1/900)==0],a7))
#agrupando coeficientes de x^7 y resolviendo para encontrar a8 show(solve([(ecua.lhs()).coefficient(x,7).substitute(a2=-1/2,a3=0,a4=1/18,a5=-7/360,a6=1/900,a7=157/113400)==0],a8))
#agrupando coeficientes de x^8 y resolviendo para encontrar a9 show(solve([(ecua.lhs()).coefficient(x,8).substitute(a2=-1/2,a3=0,a4=1/18,a5=-7/360,a6=1/900,a7=157/113400,a8=-19/39690)==0],a9))
#agrupando coeficientes de x^9 y resolviendo para encontrar a10 show(solve([(ecua.lhs()).coefficient(x,9).substitute(a2=-1/2,a3=0,a4=1/18,a5=-7/360,a6=1/900,a7=157/113400,a8=-19/39690,a9=797/38102400)==0],a10))
#agrupando coeficientes de x^10 y resolviendo para encontrar a11 show(solve([(ecua.lhs()).coefficient(x,10).substitute(a2=-1/2,a3=0,a4=1/18,a5=-7/360,a6=1/900,a7=157/113400,a8=-19/39690,a9=797/38102400,a10=923/30618000)==0],a11))
# ahora que ya caculamos los ao, c1,a2,... a11 los sustituimos y tenemos que nuestra primera solucion independiente es y1(x), esto se tiene debido a que y=0 es punto ordinario y debido a un teorema visto en clase que nos asegura que habran dos soluciones linealmente independiente y1(x)=0+1*x+(-1/2)*x^2+(0)*x^3+(1/18)*x^4+(-7/360)*x^5+(1/900)*x^6+(157/113400)*x^7+(-1939690)*x^8+(797/38102400)*x^9+(923/30618000)*x^10+(-415519/47151720000)*x^11 show(y1(x))
#para la segunda solucion tenemos #Generando una sumatoria del 12 terminos n=12 b= list (var('a%d' % i) for i in range (n) ) x= var('x') y= function('y')(x) var('a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11') a0=1 a1=0 y(x)=a0+a1*x+a2*x^2+a3*x^3+a4*x^4+a5*x^5+a6*x^6+a7*x^7+a8*x^8+a9*x^9+a10*x^10+a11*x^11 show(y(x)) #definir la serie de seno para poder introducirla en la ecuacion diferencial. senoX=taylor(sin(x),x,0,12) #para solo mostar los primeros terminos de la serie del seno show(senoX) #sustituyendo en la ecuancion diferencial y expandiendo tenemos a0=1 a1=0 ecua=expand(x*diff(y,x,2)+senoX*diff(y,x,1)+x*y(x)==0) show(ecua)
#agrupando los coeficientes de x^1 y resolviendo el sistema para encontra a2 solve([(ecua.lhs()).coefficient(x,1)==0],a2) show(solve([(ecua.lhs()).coefficient(x,1)==0],a2))
#agrupando coeficientes de x^2 y resolviendo para encontrar a3 show(solve([(ecua.lhs()).coefficient(x,2).substitute(a2=-1/2)==0],a3))
#agrupando coeficientes de x^3 y resolviendo para encontrar a4 show(solve([(ecua.lhs()).coefficient(x,3).substitute(a2=-1/2,a3=1/6)==0],a4))
#agrupando coeficientes de x^4 y resolviendo para encontrar a5 show(solve([(ecua.lhs()).coefficient(x,4).substitute(a2=-1/2,a3=1/6,a4=0)==0],a5))
#agrupando coeficientes de x^5 y resolviendo para encontrar a6 show(solve([(ecua.lhs()).coefficient(x,5).substitute(a2=-1/2,a3=1/6,a4=0,a5=-1/60)==0],a6))
#agrupando coeficientes de x^6 y resolviendo para encontrar a7 show(solve([(ecua.lhs()).coefficient(x,6).substitute(a2=-1/2,a3=1/6,a4=0,a5=-1/60,a6=1/180)==0],a7))
#agrupando coeficientes de x^7 y resolviendo para encontrar a8 show(solve([(ecua.lhs()).coefficient(x,7).substitute(a2=-1/2,a3=1/6,a4=0,a5=-1/60,a6=1/180,a7=-1/5040)==0],a8))
#agrupando coeficientes de x^8y resolviendo para encontrar a9 show(solve([(ecua.lhs()).coefficient(x,8).substitute(a2=-1/2,a3=1/6,a4=0,a5=-1/60,a6=1/180,a7=-1/5040,a8=-1/2520)==0],a9))
#agrupando coeficientes de x^9y resolviendo para encontrar a10 show(solve([(ecua.lhs()).coefficient(x,9).substitute(a2=-1/2,a3=1/6,a4=0,a5=-1/60,a6=1/180,a7=-1/5040,a8=-1/2520,a9=11/90720)==0],a10))
#agrupando coeficientes de x^10 y resolviendo para encontrar a11 show(solve([(ecua.lhs()).coefficient(x,10).substitute(a2=-1/2,a3=1/6,a4=0,a5=-1/60,a6=1/180,a7=-1/5040,a8=-1/2520,a9=11/90720,a10=-1/680400)==0],a11))
#ahora que ya calculamos los nuevos valores para a0,a1,a2,....a11, los sustituimos para obtener nuestra segunda solucion y2(x)=1+0*x+(-1/2)*x^2+(1/6)*x^3+(0)*x^4+(-1/60)*x^5+(1/180)*x^6+(-1/5040)*x^7+(-1/2520)*x^8+(11/90720)*x^9+(-1/680400)*x^10+(-4957/598752000)*x^11 show(y2(x))