← Todas as notas

A que velocidade a borboleta esquece

Publicado em · 4 min de leitura

caossistemas dinâmicoscálculo numérico

A nota sobre o atrator de Lorenz termina com duas trajetórias que começam a um milímetro uma da outra e acabam em asas diferentes. É a imagem qualitativa do caos. A quantitativa é um único número: a velocidade a que trajetórias vizinhas se afastam.

Para separações pequenas, o crescimento é em média exponencial,

δ(t) ≈ δ₀ · e^(λ t)

e a taxa λ é o maior expoente de Lyapunov. Um λ positivo é a definição prática de caos. Uma órbita periódica tem λ = 0; um sistema que converge para um ponto fixo tem λ < 0.

Medi-lo

A receita clássica, de Benettin e colaboradores em 1980, é de uma simplicidade quase embaraçosa. Fazem-se evoluir duas cópias do sistema a uma distância ínfima, mede-se quanto a distância cresceu ao fim de um passo, regista-se o fator de crescimento, repõe-se a distância no tamanho inicial na mesma direção, e repete-se. A média dos logaritmos é λ.

import math

def lorenz(x, y, z, s=10.0, r=28.0, b=8/3):
    return s*(y - x), x*(r - z) - y, x*y - b*z

def rk4(p, h):
    k1 = lorenz(*p)
    k2 = lorenz(*(p[i] + h/2*k1[i] for i in range(3)))
    k3 = lorenz(*(p[i] + h/2*k2[i] for i in range(3)))
    k4 = lorenz(*(p[i] + h*k3[i] for i in range(3)))
    return tuple(p[i] + h/6*(k1[i] + 2*k2[i] + 2*k3[i] + k4[i]) for i in range(3))

h, d0, steps = 0.01, 1e-8, 200_000
a = (1.0, 1.0, 1.0)
for _ in range(5000):                 # deixar o transitório desaparecer
    a = rk4(a, h)
b = (a[0] + d0, a[1], a[2])
total = 0.0
for _ in range(steps):
    a, b = rk4(a, h), rk4(b, h)
    d = math.dist(a, b)
    total += math.log(d / d0)
    b = tuple(a[i] + (b[i] - a[i]) * d0 / d for i in range(3))   # renormalizar

print(total / (steps * h))            # ≈ 0.906

Duas mil unidades de tempo de integração dão λ ≈ 0,906, de acordo com o valor de 0,9056 da literatura. A renormalização é o truque essencial: sem ela, a distância cresceria até ao tamanho do atrator e saturaria, e o logaritmo deixaria de medir o que quer que fosse.

O que o número significa

Uma taxa de 0,906 significa que um erro duplica a cada ln 2 / λ ≈ 0,77 unidades de tempo. Ao contrário, diz quanto vale uma melhor medição do estado inicial: cada dígito decimal de precisão a mais só compra ln 10 / λ ≈ 2,5 unidades de tempo de previsão. Partindo de um erro de 10⁻¹⁰ e dando a previsão por inútil quando o erro chega ao tamanho do atrator, cerca de 10, o horizonte é de umas 28 unidades de tempo. Partir de 10⁻²⁰ só o empurraria para cerca de 53.

Esse logaritmo é toda a mensagem de Lorenz em 1963. A previsibilidade compra-se com precisão a um preço exponencial, pelo que num sistema caótico existe um horizonte que nenhuma melhoria realista da medição afasta muito.

O resto do espetro

Um sistema tridimensional tem três expoentes de Lyapunov, um por cada direção independente de estiramento ou compressão. Para Lorenz valem aproximadamente

λ₁ ≈ +0,906    λ₂ = 0    λ₃ ≈ −14,57

O zero pertence à direção do fluxo: deslocar um ponto ao longo da sua própria trajetória não faz crescer nem diminuir a distância. O terceiro nem precisa de um cálculo à parte. Nas equações de Lorenz a divergência do campo vetorial é constante, −(σ + 1 + β) ≈ −13,67, o que significa que todo o volume no espaço de fases encolhe por um fator e^(−13,67) por unidade de tempo, e os três expoentes têm de somar exatamente isso.

As trajetórias são portanto esticadas numa direção e esmagadas com muito mais força noutra. A estimativa de Kaplan–Yorke transforma o espetro numa dimensão, 2 + λ₁ / |λ₃| ≈ 2,06: um pouco mais do que uma superfície. É por isso que o atrator da animação parece uma folha fina dobrada, com camadas demasiado juntas para se verem.

Uma ressalva sobre computadores

Ao fim de umas trinta unidades de tempo, a trajetória calculada já nada tem a ver com a trajetória exata que parte da mesma condição inicial, porque os erros de arredondamento são amplificados como qualquer outro erro. O expoente e a forma do atrator são, ainda assim, robustos: são propriedades do conjunto, não de um caminho em particular. Se o atrator estranho existe de facto, e não é um artefacto da aritmética finita, ficou em aberto durante décadas; Warwick Tucker resolveu a questão em 1999 com uma demonstração assistida por computador, respondendo ao 14.º dos problemas de Smale para o século.

Também disponível em English, Français