%Okreœla baseny atraktorów A,B,C,D,E dla uk³adu równañ ró¿niczkowych
%okreslonego w pliku 'rowr.m' w postaci plików .dat, gdzie druga
%litera nazwy okreœla atraktor np. 'a' wi¹¿emy z atraktorem A.
%Dodatkowo w czwartej kolumnie umieszczony jest czas dojœcia do atraktora
%natomiast w pi¹tej znajduje siê odleg³oœæ punktu od atraktora.
% Define initial conditions.
clear all
t0=0;
n=0;
i=0;
j=0;
k=0;
P=[];
tfinal = 80; 
tpom=0;
namefile='';
A=[0 0 0];
B=[-1 -1 1];
C=[-1 -1 -1];
D=[1 -1 -1];
E=[1 1 1];
%--------------ekran uzytkownika--------------------

clc
n=    input('podaj wielkosc kostki              :');
lkrok=input('podaj podzia³kê: 1,2,3...          :');
period=100/((2*lkrok*n+1)^3);
krok=1/lkrok

%------otwieranie plikow dla kolejnych atraktorow-------------

namefile=['pA',num2str(n),num2str(lkrok),'.dat']
[fidA,MESSAGE]=fopen(namefile,'at')
namefile=['pB',num2str(n),num2str(lkrok),'.dat']
[fidB,MESSAGE]=fopen(namefile,'at')
namefile=['pC',num2str(n),num2str(lkrok),'.dat']
[fidC,MESSAGE]=fopen(namefile,'at')
namefile=['pD',num2str(n),num2str(lkrok),'.dat']
[fidD,MESSAGE]=fopen(namefile,'at')
namefile=['pE',num2str(n),num2str(lkrok),'.dat']
[fidE,MESSAGE]=fopen(namefile,'at')
namefile=['pR',num2str(n),num2str(lkrok),'.dat']
[fidR,MESSAGE]=fopen(namefile,'at')
%--------czesc wlasciwa programu-------

for i=-n:krok:n
 for j=-n:krok:n
  for k=-n:krok:n
      y0=[i j k]';
      clear t;
      [t,y]=ode15s('newrow',[t0 tfinal],y0);
      pom=length(y);
      
   %----poczatek if-------------------------
   
    if (round(y(pom,:))==A)
     fprintf(fidA,'%f %f %f %f\n',[y,t]')
    elseif (round(y(pom,:))==B)
     fprintf(fidB,'%f %f %f %f\n',[y,t]') 
    elseif (round(y(pom,:))==C)
     fprintf(fidC,'%f %f %f %f\n',[y,t]')
    elseif (round(y(pom,:))==D)
     fprintf(fidD,'%f %f %f %f\n',[y,t]')
    elseif (round(y(pom,:))==E)
     fprintf(fidE,'%f %f %f %f\n',[y,t]')   
    else
     fprintf(fidR,'%f %f %f %f\n',[y,t]')   
    end
     
   %---koniec if----------------------------

   clear y;
   tpom=tpom+period;
   clc
   fprintf(1,'\n%3.1f%%',tpom)
   clear y0;
   
  end
 end
end
%--------koniec czesci wlasciwej programu----
fclose('all');
%-------koniec programu----------------------
