Beruflich Dokumente
Kultur Dokumente
primer orden.
Contenido
Funciones en la lnea de comando
Campo de direcciones
Soluciones numricas de un problema de valor inicial
Grfica de la solucin
Grfica del campo de direcciones y curvas solucin
Encontrar valores numricos de la solucin en valores t
Solucin simblica de las EDOs
Solucin general
Resolucin de los problemas de valor inicial
Grfica de la solucin
Encontrar valores numricos de la solucin en valores t
f1=inline(sin(x)*x,x)
define la funcin f1(x)=sin(x)*x. Hay que notar que los argumentos de inline
deben de ser cadenas de caracteres (strings) y no expresiones simblicas. De esta forma se
puede usar f1 en las expresiones que se escriban en la lnea de comando.
g1=inline(x*y+sin(x),x,y)
Campo de direcciones
En primer termino debes de descargar el archivo dirfield.m al directorio de
trabajo de Matlab.
dirfield(g,-2:0.2:2,-2:0.2:2)
g=inline(t*y^2,t,y)
ode45(g,[-2,2],1)
lo que resulta en
Los crculos marcan los puntos en los que se realiz el clculo numrico (dichos puntos son
elegidos por Matlab para optimizar la exactitud y eficiencia del algoritmo). Se pueden
obtener los vectores ts y ys con las coordenadas de estos puntos usando
[ts,ys]=ode45(g,[t0,t1],y0). Posteriormente es posible graficar la solucin
usando plot(ts,ys) y de esta manera se puede obtener una grfica sin los crculos.
Ejemplo: Graficar el campo de direcciones y las 13 curvas solucin con las condiciones
iniciales :
dirfield(g,-2:0.2:2,-2:0.2:2)
hold on
for y0=-0.4:0.2:2
[ts,ys]=ode45(g,[-2,2],y0);
Plot(ts,ys)
end
hold off
resultando en:
Para obtener valores numricos de la solucin en determinados valores de t: Se puede
especificar un vector tv de t valores y usar [tx,ys]=ode45(g,tv,y0). El primer
elemento del vector tv es el valor inicial de t; el vector tv debe de tener al menos 3
elementos.
[ts,ys]=ode45(g,-2:0.5:2,1);
[ts,ys]
sol=dsolve(Dy=t*y^2,t)
Si Matlab no puede encontrar una solucin regresar como solucin un smbolo vaco. Si
Matlab encuentra varias soluciones regresar un vector de soluciones. En algunos casos
Matlab no podr encontrar soluciones explicitas, pero regresar la solucin en forma
implicita, i.e. dsolve(Dy=1/(y-exp(y)),t) regresa
t-1/2*y^2+exp(y)+C1=0
Desafortunadamente Matlab no puede manejar condiciones iniciales en este caso. Se puede
utilizar ezcontour(t-1/2*y^2+exp(y),[-4 4 -3 3]) para graficar varias
curvas solucin para t en el intervalo [-4,4] y y en [-3 3]. Adems se puede utilizar
ezplot(t-1/2*y^2+exp(y)-1,[-4 4 -3 3]) para graficar solo la curva t-
1/2*y^2+exp(y)=1.
La solucin presentar una constante C1. Dicha constante se puede sustituir por valores
determinados usando subs(sol,C1,valor). Ejemplo: para fijar el valor de C1 a 5
y graficar la solucin para t=-2 hasta 2 se utiliza:
ezplot(subs(sol,C1,5),[-2 2])
sol=dsolve(Dy=t*y^2,y(-2)=1,t)
sol=dsolve(Dy=t*y^2,y(-2)=y0,t)
for y0=-0.4:0.2:2
ezplot(subs(sol,y0,y0),[-2 2])
hold on
end
hold off
axis tight
resultando:
Para obtener el valor numrico en uno o ms valores de t se utiliza
subs(sol,t,tval) y la funcin double o vpa (para obtener ms digitos).
Ejemplo: obtener el valor numrico de la solucin en t=0.5:
sol=dsolve(Dy=t*y^2,y(-2)=1,t)
double(subs(sol,t,0.5))
Pgina de inicio