≡ Menu

L’Effetto Farfalla: Capire il Caos attraverso le Leggi della Matematica

The Butterfly Effect, formulated in 1972 by mathematician and meteorologist Edward Lorenz, is part of chaos theory that illustrates the interdependence between seemingly insignificant events and large-scale phenomena. Contrary to common belief, chaos is not random but deterministic and highly sensitive to initial conditions, with well-defined boundaries. Using Lorenz’s attractor, it is possible to simulate and visualize this effect through a system of differential equations that represents the complexity and interconnectedness of the world. Chaos theory goes beyond the simple image of a butterfly flapping its wings, providing a profound understanding of nature and the universe through the beauty and complexity of the fundamental laws of mathematics and physics.


L’Effetto Farfalla è una metafora che ha catturato l’immaginazione del pubblico fin dalla sua prima formulazione nel 1972 da parte del matematico e meteorologo Edward Lorenz. Ma cosa significa davvero questa enigmatica frase, “… una farfalla che sbatte le ali in Brasile potrebbe scatenare un tornado in Texas”? E come possiamo sviscerare gli errori comuni che avvolgono questa affascinante idea?

L’Effetto Farfalla: Un’Introduzione

La descrizione dell’Effetto Farfalla fa parte di quella che viene comunemente chiamata teoria del caos. Il concetto può essere inteso come un segno dell’interdipendenza di eventi apparentemente insignificanti e fenomeni su larga scala, ma ci sono due importanti distinzioni che spesso vengono trascurate nella cultura popolare:

  1. Il Caos non è Casuale: Contrariamente alla credenza comune, il termine “caotico” in questo contesto non significa “casuale”. Il caos è deterministico e segue regole precise, ma è altamente sensibile alle condizioni iniziali. Una piccola variazione nelle condizioni di partenza può portare a risultati radicalmente diversi.
  2. Il Futuro non è Completamente Non-Deterministico: L’Effetto Farfalla non significa che qualsiasi cosa possa succedere in qualsiasi momento. Ci sono limiti ben definiti entro i quali i fenomeni possono variare.

Il Codice: Simulando l’Effetto Farfalla

from scipy.integrate import odeint
import numpy as np
import matplotlib.pyplot as plt
from PIL import Image
import glob
import os

save_folder = 'images/lorenz'
if not os.path.exists(save_folder):
    os.makedirs(save_folder)

initial_state = [0.5, 0, 0]
sigma = 10
rho = 28
beta = 8/3

start_time = 1
end_time = 80
interval = 1000
time_points = np.linspace(start_time, end_time, end_time * interval)

def lorenz_system(current_state, t):
    x, y, z = current_state
    xdot = sigma * (y - x)
    ydot = x * (rho - z) - y
    zdot = x * y - beta * z
    return [xdot, ydot, zdot]

def plot_lorenz(xyz, interval, save_folder):
    for n in range(0, len(xyz), interval):
        fig = plt.figure(figsize=(12, 9))
        ax = fig.add_subplot(111, projection='3d')
        x = xyz[:n, 0]
        y = xyz[:n, 1]
        z = xyz[:n, 2]
        ax.plot(x, y, z, color='purple', alpha=0.7, linewidth=0.7)
        ax.set_xlim((-30, 30))
        ax.set_ylim((-30, 30))
        ax.set_zlim((0, 50))
        plt.savefig(f'{save_folder}/{n:03d}.png', dpi=60, bbox_inches='tight', pad_inches=0.1)
        plt.close()

# Risolvi l'ODE su tutti i punti temporali
points = odeint(lorenz_system, initial_state, time_points)

# Chiama la funzione modificata
plot_interval = 20 # Puoi regolare l'intervallo come preferisci
plot_lorenz(points, interval=plot_interval, save_folder=save_folder)

standard_duration = 10 # Durata uniforme
durations = [standard_duration] * (len(points) // plot_interval)

image_filenames = sorted(glob.glob('{}/*.png'.format(save_folder)), key=lambda x: int(x.split('/')[-1].split('.')[0]))
images = [Image.open(image) for image in image_filenames]
gif_filepath = 'images/animated-lorenz-attractor.gif'

# Set duration for each image
for i, image in enumerate(images[1:]):
    image.info['duration'] = durations[i]

# Save the images as a GIF
images[0].save(fp=gif_filepath, format='gif', save_all=True, append_images=images[1:], loop=0)

Attraverso il codice fornito, possiamo simulare e visualizzare l’Effetto Farfalla utilizzando l’attrattore di Lorenz, un sistema di equazioni differenziali. Ecco come il codice funziona:

1. Definire le Condizioni Iniziali

Prima di tutto, impostiamo le condizioni iniziali del sistema, come le costanti \(\sigma\), \(\rho\), e \(\beta\), e lo stato iniziale delle variabili \(x\), \(y\), e \(z\):

initial_state = [0.5, 0, 0]
sigma = 10
rho = 28
beta = 8/3

2. Creare il Sistema di Equazioni

Il cuore della simulazione è un sistema di equazioni differenziali che descrive il comportamento del sistema nel tempo:

def lorenz_system(current_state, t):
    x, y, z = current_state
    xdot = sigma * (y - x)
    ydot = x * (rho - z) - y
    zdot = x * y - beta * z
    return [xdot, ydot, zdot]

3. Risolvere il Sistema

Utilizziamo la funzione odeint da SciPy per risolvere il sistema di equazioni nel tempo, ottenendo una traiettoria che mostra come il sistema evolve:

points = odeint(lorenz_system, initial_state, time_points)

4. Visualizzare i Risultati

Infine, possiamo visualizzare i risultati utilizzando Matplotlib, creando una rappresentazione grafica tridimensionale dell’evoluzione del sistema:

plot_lorenz(points, interval=plot_interval, save_folder=save_folder)

Conclusione

L’Effetto Farfalla è un potente promemoria della complessità e dell’interconnessione del mondo che ci circonda. Non è un concetto di puro caso o anarchia, ma piuttosto una descrizione della natura intrinsecamente imprevedibile e sensibile di sistemi complessi.

La teoria del caos e l’Effetto Farfalla offrono una lente attraverso cui possiamo esplorare concetti profondi come la determinazione, la casualità, e la connettività. E attraverso la simulazione e la visualizzazione, possiamo iniziare a toccare con mano la bellezza e la complessità che emergono dalle leggi fondamentali della matematica e della fisica.

Mentre il nome “teoria del caos” potrebbe aver contribuito a malintesi, la realtà è che offre una profonda comprensione della natura e dell’universo, una comprensione che va ben oltre la semplice immagine di una farfalla che sbatte le ali.

{ 0 comments… add one }

Rispondi