% Histórico de Comandos comentados da 3a aula

% Para criar um diretório
mkdir aula_3
cd aula_3

%% Para ver efeito de cada regra na função triangulo
[ x, y, r ] = triangulo( 1e6 );
figure
hold on
plot( x(r==1), y(r==1), '.b', 'markersize', 1 )
plot( x(r==2), y(r==2), '.r', 'markersize', 1 )
plot( x(r==3), y(r==3), '.g', 'markersize', 1 )

%% Para fazer o plot dos pontos separados por regras em um único comando:
edit plota_regra
[ x, y, r ] = triangulo( 1e6 );
plota_regra( x, y, r )

%% Para escrever um vetor com as regras aplicadas no geração do ponto anterior
whos
[ x, y, r ] = triangulo( 1e6 );
r_a = [ 0; r(1:end-1) ];
% para ver os 10 primeiros pontos desse vetor para conferir que o resultado
% é o que se deseja
[ r(1:10) r_a(1:10) ]
% para graficar os pontos que vieram de dupla aplicação da regra 3 em preto
% e os que vierem de aplicação da regra 3 após uma aplicação da regra 2 em
% magenta
plota_regra( x, y, r )
plot( x((r==3)&(r_a==3)), y((r==3)&(r_a==3)), '.k', 'markersize', 1 )
plot( x((r==3)&(r_a==2)), y((r==3)&(r_a==2)), '.m', 'markersize', 1 )

%% Para escolher a probabilidade de cada regra com valores diferentes

edit triangulo.m
help cumsum
[ x, y, r ] = triangulo( 1e5 );
plota_regra( x, y, r )

[ x1, y1, r1 ] = triangulo( 1e5, [ .5 .25 .25] );
plota_regra( x1, y1, r1 )

[ x2, y2, r2 ] = triangulo( 1e5, [ .8 .1 .1] );
plota_regra( x2, y2, r2 )

%% Para fazer uma função que gera números aleatórios inteiros com
% probabilidades escolhidas como parâmetro da função
edit aleatorio_especial
aleatorio_especial( [.5 .25 .2 .04 .01] )
aleatorio_especial( [.5 .25 .2 .04 .01], 10 )
% para testar a função aleatorio_especial
r = aleatorio_especial( [.5 .25 .2 .04 .01], 1e4 );
hist( r, 1:5 )
help hist
[h]=hist( r, 1:5 )
% para calcular a incerteza no número de valores 1 obtidos em um conjunto
% de N=1e4 dados quando a probabilidade de se obter o número 1 é p=0.5
N = 1e4;
p1 = 0.5;
incerteza_h1 = sqrt( N * p1 *( 1 - p1 ) )

%% Função que gera uma folha de samambaia fractal (feto fractal)
help switch
edit samambaia
tic, [ x, y, r ] = samambaia( 1e5 ); toc
plota_regra( x, y, r )

% para escolher a cor de cada regra na função plota_regra:
[ x, y, r ] = samambaia( 1e5 );
plota_regra( x, y, r, 'brgk' )
plota_regra( x, y, r, 'kbrg' )

% para ver o efeito de mudar as probabilidades das regras 2, 3 e 4
[ x, y, r ] = samambaia( 1e5, [.01 .07 .07 .85] );
plota_regra( x, y, r, 'brkg' )
[ x1, y1, r1 ] = samambaia( 1e5, [.01 .17 .17 .65] );
plota_regra( x1, y1, r1, 'brkg' )
