%
% Equacao logistica: diagrama de bifurcacao
%
clear;
clc;
% parametros
rmin = 2.8;   % valor minimo do parametro de bifurcacao r
rmax = 4;   % valor maximo do parametro de bifurcacao r
nstep = 500;  % resolucao 
trans = 200;  % numero de pontos transientes
out = 200;    % numero de pontos marcados para cada r
x0 = 0.66;    % valores inicias x_0 do metodo do ponto fixo para todos os parametros
rstep = (rmax-rmin)/nstep;
r = (rmin:rstep:rmax); % gera um vector linha
% iteracoes
x = x0 * ones( 1, size(r,2) );  % vector linha das condicoes iniciais do
                                % comprimeto de r
hg = waitbar(0,'Fase 1...');
for i = 1:trans,         % iteracoes transientes para todos os parametros seleccionados
   x = r.*x.*(1-x);      % equacao logistica
   waitbar(i/trans);
end;
close(hg) ;  
hg = waitbar(0,'Fase 2...');
y = []; % gera um vector vazio
for i = 1:out,           % iteracoes que figuram no output
   x = r.*x.*(1-x);      % equacao logistica
   y = [y;x];            % as colunas de y contem as iteracoes para todos
                         % os parametros r
   waitbar(i/out) ;                           
end;
close(hg) ;                           
% graficos
plot(r,y,'r.','markersize',1);
set(gcf,'name','Diagrama de bifurcacao para a equacao logistica');
axis([rmin rmax -0.1 1])
xlabel('Taxa de crescimento r');
ylabel('Densidade da populacao');
title('Diagrama de bifurcacao para a equacao logistica');
grid on;


