Exercícios Resolvidos - Sistemas caóticos


Problema 3

O sistema de Rössler é definido pelas seguintes equações de evolução, com 3 parâmetros positivos a , b e c :

˙ x = y z ˙ y = x + c y ˙ z = a + ( x b ) z

Investigue a solução do sistema com a = 2 e b = 4 fixos e com os seguintes valores de c : (a) c = 0 . 3 (b) c = 0 . 35 (c) c = 0 . 375 (d) c = 0 . 398 .
Em cada caso use o programa rk para obter a solução, com incrementos de tempo t = 0 . 01 e de forma a que sejam feitas 6000 iterações. Pode usar como valores iniciais x = y = z = 2 . Trace os gráficos da curva projetada no plano x y e de x em função de t . Volte a executar 6000 iterações do programa rk, mas agora usando como valores iniciais os valores finais obtidos na primeira execução do programa (o comando rest (last (lista )) extrai o último vetor na lista anterior, excluindo o tempo). Trace novamente os mesmos gráficos e repita o procedimento até conseguir concluir qual é o conjunto limite positivo da curva considerada e se for um ciclo, determine o seu período. Em cada alínea diga qual é o conjunto limite, o seu período (se for um ciclo) e mostre um gráfico que justifique a sua conclusão.

(a) Os quatro comandos seguintes do Maxima definem uma lista com as expressões nos três lados direitos das equações de evolução, com os parâmetros a = 2 , b = 4 e c = 0 . 3 . A seguir, usa-se o programa rk usando a lista anterior para definir a velocidade de fase, com variáveis de estado ( x , y , z ), valores iniciais (2, 2, 2) e incrementos de tempo iguais a 0.01. Como o sistema é autónomo, o valor inicial de t pode ser qualquer, por exemplo, 0; com esse valor inicial, o valor final de t deverá ser 60, para que sejam executadas 6000 iterações. A solução, na lista sol, usa-se para traçar os gráficos da sua projeção no plano x y e de x em função de t . A seguir aos comandos mostram-se os gráficos obtidos.

(%i1) f: [-y-z, x+0.3*y, 2+(x-4)*z]$
(%i2) sol: rk(f, [x,y,z], [2,2,2], [t,0,60,0.01])$
(%i3) plot2d([discrete, makelist([p[2],p[3]], p, sol)])$
(%i4) plot2d([discrete, makelist([p[1],p[2]], p, sol)], [xlabel,"t"], [ylabel,"x"])$

Problema 12.3 alínea a

Para saber se a curva de evolução já está próxima do seu conjunto limite positivo, convém executar os mesmos comandos anteriores, usando agora como valores iniciais os valores finais da última iteração, para observar a continuação da curva no próximo intervalo t = 60 .

(%i5) sol: rk(f, [x,y,z], rest(last(sol)), [t,0,60,0.01])$
(%i6) plot2d([discrete, makelist([p[2],p[3]], p, sol)])$
(%i7) plot2d([discrete, makelist([p[1],p[2]], p, sol)], [xlabel,"t"], [ylabel,"x"])$

Problema 12.3 alínea a

Estes últimos gráficos mostram que o sistema entrou num ciclo limite atrativo (conjunto limite positivo). O período desse ciclo pode obter-se, de forma aproximada, colocando o cursor por cima de dois dos valores máximos no gráfico de x ( t ) e registando os valores de t indicados pelo Maxima. Convém usar dois máximos que estejam o mais afastados possível no gráfico e dividir pelo número de oscilações entre esses dois máximos. No gráfico acima, com 9 oscilações, o valor medido para o período é:

T 1 = t n = 56 . 1828 0 . 634997 9 = 6 . 172

(b) Com c = 0 . 35 , repete-se o mesmo procedimento da alínea anterior.

(%i8) f: [-y-z, x+0.35*y, 2+(x-4)*z]$
(%i9) sol: rk(f, [x,y,z], [2,2,2], [t,0,60,0.01])$
(%i10) plot2d([discrete, makelist([p[2],p[3]], p, sol)])$
(%i11) plot2d([discrete, makelist([p[1],p[2]], p, sol)], [xlabel,"t"], [ylabel,"x"])$

Problema 12.3 alínea b

E mais 6000 iterações a partir dos valores finais das variáveis de estado após as primeiras 6000 iterações.

(%i12) sol: rk(f, [x,y,z], rest(last(sol)), [t,0,60,0.01])$
(%i13) plot2d([discrete, makelist([p[2],p[3]], p, sol)])$
(%i14) plot2d([discrete, makelist([p[1],p[2]], p, sol)], [xlabel,"t"], [ylabel,"x"])$

Problema 12.3 alínea b

O sistema entrou novamente num ciclo limite atrativo (conjunto limite positivo), que dá duas voltas no espaço de fase antes de se repetir. No gráfico de x ( t ) observam-se 4 oscilações completas, cada uma com dois máximos locais e dois mínimos locais. O valor medido para o período é:

T 2 = t n = 55 . 4849 5 . 92202 4 = 12 . 39

que é aproximadamente o dobro do período T 1 no ciclo simples obtido com c = 0 . 3 . Diz-se que existe uma bifurcação do sistema entre c = 0 . 3 e c = 0 . 35 , que se manifesta por uma duplicação do período de oscilação.

(c) Repetem-se novamente os comandos das alíneas anteriores, agora com c = 0 . 375 .

(%i15) f: [-y-z, x+0.375*y, 2+(x-4)*z]$
(%i16) sol: rk(f, [x,y,z], [2,2,2], [t,0,60,0.01])$
(%i17) plot2d([discrete, makelist([p[2],p[3]], p, sol)])$
(%i18) plot2d([discrete, makelist([p[1],p[2]], p, sol)], [xlabel,"t"], [ylabel,"x"])$

Problema 12.3 alínea c

E deixa-se evoluir a solução durante outro intervalo t = 60 .

(%i19) sol: rk(f, [x,y,z], rest(last(sol)), [t,0,60,0.01])$
(%i20) plot2d([discrete, makelist([p[2],p[3]], p, sol)])$
(%i21) plot2d([discrete, makelist([p[1],p[2]], p, sol)], [xlabel,"t"], [ylabel,"x"])$

Problema 12.3 alínea c

O gráfico no plano x y mostra que o sistema ainda não entrou no ciclo limite, porque a curva não é fechada. Deixaremos evoluir a solução durante mais um intervalo t = 60 .

(%i22) sol: rk(f, [x,y,z], rest(last(sol)), [t,0,60,0.01])$
(%i23) plot2d([discrete, makelist([p[2],p[3]], p, sol)])$
(%i24) plot2d([discrete, makelist([p[1],p[2]], p, sol)], [xlabel,"t"], [ylabel,"x"])$

Problema 12.3 alínea c

O sistema já entrou no ciclo limite atrativo que é agora de quarta ordem: há 4 máximos locais e 4 mínimos locais em cada oscilação e o ciclo dá quatro voltas no espaço de fase antes de se repetir. No gráfico de x ( t ) observam-se apenas 2 oscilações completas e o valor medido para o período é:

T 4 = t n = 55 . 4849 5 . 92202 2 = 24 . 81

que é aproximadamente o dobro do período T 2 no ciclo de segunda ordem obtido com c = 0 . 35 . Existe uma segunda bifurcação do sistema entre c = 0 . 35 e c = 0 . 375 que conduz a uma nova duplicação do período de oscilação.

(d) Repetem-se novamente os comandos das alíneas anteriores, agora com c = 0 . 398 .

(%i25) f: [-y-z, x+0.398*y, 2+(x-4)*z]$
(%i26) sol: rk(f, [x,y,z], [2,2,2], [t,0,60,0.01])$
(%i27) plot2d([discrete, makelist([p[2],p[3]], p, sol)])$
(%i28) plot2d([discrete, makelist([p[1],p[2]], p, sol)], [xlabel,"t"], [ylabel,"x"])$

Problema 12.3 alínea d

E deixa-se evoluir a solução durante outro intervalo t = 60 .

(%i29) sol: rk(f, [x,y,z], rest(last(sol)), [t,0,60,0.01])$
(%i30) plot2d([discrete, makelist([p[2],p[3]], p, sol)])$
(%i31) plot2d([discrete, makelist([p[1],p[2]], p, sol)], [xlabel,"t"], [ylabel,"x"])$

Problema 12.3 alínea d

Continuando com mais intervalos t = 60 observa-se que nunca se consegue reproduzir o mesmo resultado do intervalo anterior:

(%i32) sol: rk(f, [x,y,z], rest(last(sol)), [t,0,60,0.01])$
(%i33) plot2d([discrete, makelist([p[2],p[3]], p, sol)])$
(%i34) plot2d([discrete, makelist([p[1],p[2]], p, sol)], [xlabel,"t"], [ylabel,"x"])$

Problema 12.3 alínea d

No aumento de c de 0.375 para 0.398 houve infinitas bifurcações. O intervalo entre os valores de c onde há novas bifurcações é cada vez menor, de forma que o período de oscilação aproxima-se de infinito. O sistema é caótico quando c = 0 . 398 e os últimos dois gráficos mostram duas partes do ciclo limite, que é um atrator estranho.