Pràctica: RESOLUCIÓ SIMBÒLICA D'EDOs
Podem trobar la solució analítica o simbòlica d'algunes EDOs usant la funció de Matlab dsolve. Vegem-ne alguns exemples.
(1) Trobem la solució general de l' EDO de primer ordre 
syms x(t) %definim x(t) com a funcio simbolica
Dx=diff(x,t); %derivada (una altra funcio simbolica)
eq= Dx==t^3-5*t*x; %EDO a resoldre
xsol=dsolve(eq) %solucio general, que depen d'una constant arbitraria
xsol =

Afegim, a l'EDO anterior, la condició inicial
i trobem la solució del PVI. Per a la solució obtinguda, calculem
(com a expressió simbòlica i després el seu valor numèric). ci= x(0)==2; %condicio inicial
xsol1=dsolve(eq,ci) %solucio del PVI
xsol1 =

xx=subs(xsol1,t,3/2) %substituim t per 3/2 a la solucio obtinguda
xx =

xxnum=eval(xx) %valor numeric de l'expressio anterior
(2) Podem fer dependre l'EDO o la condició inicial d'algun paràmetre, que definirem com a variable simbòlica. Com a exemple, resolem el PVI
en funció del paràmetre
Després, fixem el valor 
syms a %variable simbolica
eq= Dx==a*x+exp(t); %EDO depenent d'un parametre a
xsol=dsolve(eq) %solucio depenent del parametre
xsol =

xsolsimp=simplify(xsol) %sovint cal simplificar les solucions obtingudes
xsolsimp =

xsolsimp1=subs(xsolsimp,a,5) %podem fixar un valor concret del parametre
xsolsimp1 =

És possible que la solució obtinguda no tingui sentit per alguns valors del paràmetre, com a l'exemple anterior quan
En aquest cas caldria fer la substitució abans de resoldre l'EDO, i podem veure que la solució és d'un altre tipus. xsol2=dsolve(eq1,ci) %resolem la nova EDO amb la mateixa condicio inicial
xsol2 = 
(3) Resolem el PVI següent per a una EDO de segon ordre
D2x=diff(x,t,2); %derivada segona
xsol=dsolve(eq,ci1,ci2)
xsol = 
(4) Resolem el PVI següent per a un sistema d'EDOs,
(un focus atractor) i representem la corba solució
per a 
syms x(t) y(t) %dues funcions simboliques
Xsol=dsolve(eq1,eq2,ci1,ci2); %es crea una estructura Xsol amb camps x,y
xsol=Xsol.x %primer camp de l'estructura Xsol
xsol = 
ysol=Xsol.y %segon camp de l'estructura Xsol
ysol = 
close all %tanquem figures anteriors (optatiu)
tv=0:0.01:4; %rang de valors de t
xv=subs(xsol,tv); %substituim t pel rang de valors tv
________
(c) Numerical Factory (by Pere Gutiérrez)