function clasdtri(f,g,h)
syms x y z l
f=sym(f);
g=sym(g);
j=jacobian([f;g;h],[x,y,z]);
fid = fopen('puntos.txt', 'w+');
fprintf(fid,'ANLISIS DE LOS PUNTOS DE EQUILIBRIO \n');
fprintf(fid,'---------------------------------------------------------\n\n');
fprintf(fid,'Sistema: \n');
funf=strcat('f(x,y,z)=',char(f),';\n');
fung=strcat('g(x,y,z)=',char(g),';\n');
funh=strcat('h(x,y,z)=',char(h),';\n\n');
fprintf(fid,funf);
fprintf(fid,fung);
fprintf(fid,funh);
fprintf(fid,'Nulclinales del sistema: \n');
nulx=solve(sym(f),z);
fprintf(fid,'Para dx/dt =0:\n');
for i=1:length(nulx)
nulx=solve(sym(f),z);
nulxs=char(nulx(i));
fprintf(fid,'y=%s\n',nulxs);
end
nuly=solve(sym(g),z);
fprintf(fid,'Para dy/dt =0:\n');
for i=1:length(nuly)
nuly=solve(sym(g),z);
nulys=char(nuly(i));
fprintf(fid,'y=%s\n',nulys);
end
nulz=solve(sym(h),z);
mz=length(nulz);
fprintf(fid,'Para dz/dt =0:\n');
for i=1:mz
nulz=solve(sym(h),z);
nulzs=char(nulz(i));
fprintf(fid,'y=%s\n',nulzs);
end
fprintf(fid,'\n');
fprintf(fid,'Matriz Jacobiana (Jac) del sistema:\n');
m11=char(j(1,1));
m12=char(j(1,2));
m13=char(j(1,3));
m21=char(j(2,1));
m22=char(j(2,2));
m23=char(j(2,3));
m31=char(j(3,1));
m32=char(j(3,2));
m33=char(j(3,3));
fprintf(fid,'Jac(1,1)=%s\n',m11);
fprintf(fid,'Jac(1,2)=%s\n',m12);
fprintf(fid,'Jac(1,3)=%s\n',m13);
fprintf(fid,'Jac(2,1)=%s\n',m21);
fprintf(fid,'Jac(2,2)=%s\n',m22);
fprintf(fid,'Jac(2,3)=%s\n',m23);
fprintf(fid,'Jac(3,1)=%s\n',m31);
fprintf(fid,'Jac(3,2)=%s\n',m32);
fprintf(fid,'Jac(3,3)=%s\n\n',m33);
s=solve(f,g,h);
if isempty(s)==1
fprintf(fid,'El sistema no tiene puntos de equilibrio\n\n');
else
sx=s.x;
sy=s.y;
sz=s.z;
sxe=eval(sx);
sye=eval(sy);
sze=eval(sz);
fprintf(fid,'Puntos de equilibrio del sistema:\n');
for i=1:length(sx)
fprintf(fid,'pe(%d)=(%f,%f,%f)\n',i,sxe(i),sye(i),sze(i));
end
fprintf(fid,'\n');
fprintf(fid,'..........................................................\n');
fprintf(fid,'Linealizacin del sistema y estabilidad\n');
fprintf(fid,'..........................................................\n\n');
for i=1:length(sxe)
x=sxe(i);
y=sye(i);
z=sze(i);
A=eval(j);
I=eye(size(A));
ff=det(A-l*I);
ev=solve(ff);
poli=char(ff);
[m,n]=size(A);
fprintf(fid,'Punto de equilibrio No. %d: (%f,%f,%f) \n\n',i,sxe(i),sye(i),sze(i));
fprintf(fid,'La matriz linealizada (A) es:\n\n');
for k=1:m
for kk=1:n
fprintf(fid,'A(%d,%d)=%f\n',k,kk,A(k,kk));
end
end
fprintf(fid,'\nEl polinomio caracterstico del sistema es: %s \n\n', poli);
fprintf(fid,'Eigenvalores del sistema:\n\n');
fprintf(fid,'e1= %s\n\n',char(ev(1)));
fprintf(fid,'e2= %s\n\n',char(ev(2)));
fprintf(fid,'e3= %s\n\n',char(ev(3)));
%----------------------->> Reales <<-------------------------------------
if (imag(ev(1))==0 & imag(ev(2))==0 & imag(ev(3))==0)==1
if (eval(ev(1))<0 & eval(ev(2))<0 & eval(ev(3))<0)==1
fprintf(fid,'El punto de equilibrio es un sumidero\n');
else
if (eval(ev(1))>0 & eval(ev(2))>0 & eval(ev(3))>0)==1
fprintf(fid,'El punto de equilibrio es una fuente\n');
else
fprintf(fid,'El punto de equilibrio es un punto de silla\n');
end
end
else
%----------------------->> Reales y Complejos <<------------------------------------
if imag(ev(1))==0
if (eval(ev(1))<0 & eval(real(ev(2)))<0)==1
fprintf(fid,'El punto de equilibrio es un sumidero espiral\n');
else
if (eval(ev(1))>0 & eval(real(ev(2)))>0)==1
fprintf(fid,'El punto de equilibrio es una fuente espiral\n');
else
fprintf(fid,'El punto de equilibrio es un punto de silla espiral\n');
end
end
end
end
end
end
fclose(fid);
home=pwd;
URL=strcat(home,'\puntos.txt');
web (URL, '-new');