Modelli semplici con comportamenti complessi, ad es. caos
Tecnologia

Modelli semplici con comportamenti complessi, ad es. caos

Il computer è uno strumento sempre più utilizzato dagli scienziati per scoprire segreti accuratamente nascosti dalla natura. La modellazione, insieme all'esperimento e alla teoria, sta diventando il terzo modo di studiare il mondo.

Tre anni fa, all'Università della Slesia, abbiamo lanciato un programma per integrare i metodi informatici nell'istruzione. Di conseguenza, sono stati creati molti materiali didattici estremamente interessanti, che rendono più facile e approfondito lo studio di molti argomenti. Python è stato scelto come strumento principale, che, insieme alla potenza delle biblioteche scientifiche disponibili, è probabilmente la migliore soluzione per "esperimenti al computer" con equazioni, immagini o dati. Una delle implementazioni più interessanti di un workbench completo è Sage [2]. Si tratta di un'integrazione aperta di un sistema di computer algebra con il linguaggio Python, e permette inoltre di iniziare subito a giocare utilizzando un browser web e una delle possibili opzioni di accesso tramite un servizio cloud [3] o un singolo server di calcolo su cui il la versione di questo articolo si basa su [4] .

Caos in ecologia

Nei primi anni all'Università di Oxford, lo scienziato australiano Robert May ha studiato gli aspetti teorici delle dinamiche demografiche. Ha riassunto il suo lavoro in un articolo apparso sulla rivista Nature con il titolo provocatorio "Modelli matematici semplici con dinamiche molto complesse" [1]. Nel corso degli anni, questo articolo è diventato uno dei lavori più citati in ecologia teorica. Cosa ha causato tanto interesse per questo lavoro?

Il problema classico della dinamica della popolazione è calcolare la popolazione futura di una specie particolare, dato il suo stato attuale. Matematicamente, gli ecosistemi erano considerati i più semplici in cui la vita di una generazione della popolazione dura una stagione. Un buon esempio è una popolazione di insetti che subiscono una metamorfosi completa in una stagione, come le farfalle. Il tempo è naturalmente suddiviso in periodi discreti2 corrispondenti ai cicli di vita della popolazione. Pertanto, le equazioni che descrivono un tale ecosistema hanno naturalmente il cosiddetto tempo discreto, cioè t = 1,2,3…. Robert May si è occupato di tali dinamiche, tra le altre cose. Nel suo ragionamento, ha semplificato l'ecosistema a una singola specie la cui popolazione era una funzione quadratica della popolazione dell'anno precedente. Da dove viene questo modello?

L'equazione discreta più semplice che descrive l'evoluzione di una popolazione è un modello lineare:

dove Ni è l'abbondanza nella i-esima stagione e Ni + 1 descrive la popolazione nella stagione successiva. È facile vedere che una tale equazione può portare a tre scenari. Quando a = 1, l'evoluzione non cambierà la dimensione della popolazione, e <1 porta all'estinzione, e il caso a > 1 significa crescita demografica illimitata. Ciò porterà a uno squilibrio nella natura. Poiché tutto in natura è limitato, ha senso adattare questa equazione per tenere conto della quantità limitata di risorse. Immagina che i parassiti mangino il grano, che ogni anno è esattamente lo stesso. Se gli insetti sono scarsi rispetto alla quantità di cibo che possono riprodurre, possono riprodursi alla piena potenza riproduttiva, determinata matematicamente dalla costante a > 1. Tuttavia, all'aumentare del numero di parassiti, il cibo sarà scarso e la capacità riproduttiva diminuirà. In un caso critico, si può immaginare che nascano così tanti insetti che mangiano tutto il grano prima che abbiano il tempo di riprodursi e la popolazione muoia. Un modello che tiene conto di questo effetto di accesso limitato al cibo è stato proposto per la prima volta da Verhulst nel 1838. In questo modello, il tasso di crescita non è costante, ma dipende dallo stato della popolazione:

La relazione tra il tasso di crescita a e Ni dovrebbe avere la seguente proprietà: se la popolazione aumenta, il tasso di crescita dovrebbe diminuire perché l'accesso al cibo è difficile. Naturalmente, ci sono molte funzioni con questa proprietà: si tratta di funzioni top-down. Verhulst ha proposto la seguente relazione:

dove a>0 e K>0 costante caratterizzano le risorse alimentari e sono dette capacità dell'ambiente. In che modo una variazione di K influisce sul tasso di crescita della popolazione? Se K aumenta, Ni/K diminuisce. A sua volta, questo porta al fatto che 1-Ni/K cresce, il che significa che cresce. Ciò significa che il tasso di crescita è in aumento e la popolazione sta crescendo più velocemente. Quindi modifichiamo il modello precedente (1) assumendo che il tasso di crescita cambi come nell'equazione (3). Quindi otteniamo l'equazione

Questa equazione può essere scritta come un'equazione ricorsiva

dove xi = Ni / K e xi + 1 = Ni + 1 / K denotano le popolazioni ridimensionate nel tempo i e nel tempo i + 1. L'equazione (5) è chiamata equazione logistica.

Può sembrare che con una modifica così piccola, il nostro modello sia facile da analizzare. Controlliamolo. Si consideri l'equazione (5) per il parametro a = 0.5 partendo dalla popolazione iniziale x0 = 0.45. I valori sequenziali della popolazione possono essere ottenuti utilizzando l'equazione ricorsiva (5):

x1= ascia0(1-x0)

x2= ascia1(1-x1)

x3= ascia2(1-x2)

Per facilitare i calcoli in (6), possiamo utilizzare il seguente programma (è scritto in Python e può essere eseguito, tra l'altro, sulla piattaforma Sage. Ti consigliamo di leggere il libro http://icse.us.edu .pl/e-book .), imitando il nostro modello:

a = 0.5 x = 0.45 per i nell'intervallo (10):      x \u1d a * x * (XNUMX-x)      stampa x

Calcoliamo valori successivi di xi e notiamo che tendono a zero. Sperimentando il codice sopra, è anche facile vedere che ciò è vero indipendentemente dal valore iniziale di x0. Ciò significa che la popolazione muore costantemente.

Nella seconda fase dell'analisi, aumentiamo il valore del parametro a a qualsiasi valore nell'intervallo ae (1,3). Si scopre che quindi la sequenza xi va ad una certa quantità x * > 0. Interpretando questo dal punto di vista ecologico, possiamo dire che la dimensione della popolazione è fissata ad un certo livello, che non cambia di stagione in stagione . Vale la pena notare che il valore di x * non dipende dallo stato iniziale x0. Questo è l'effetto della lotta dell'ecosistema per la stabilizzazione: la popolazione adatta le sue dimensioni alla capacità di nutrirsi. Matematicamente si dice che il sistema tende a un punto fisso stabile, cioè soddisfacendo l'uguaglianza x = f(x) (questo significa che al momento successivo lo stato è lo stesso del momento precedente). Con Sage, possiamo visualizzare graficamente questa evoluzione tracciando la popolazione nel tempo.

Un tale effetto di stabilizzazione era previsto dai ricercatori e l'equazione logistica (5) non avrebbe attirato molta attenzione se non fosse stato per una sorpresa. Si è scoperto che per determinati valori del parametro, il modello (5) si comporta in modo imprevedibile. In primo luogo, ci sono stati periodici e multiperiodici. In secondo luogo, ad ogni passo temporale, la popolazione cambia in modo non uniforme, come un movimento casuale. Terzo, c'è una grande sensibilità alle condizioni iniziali: due stati iniziali quasi indistinguibili portano a un'evoluzione della popolazione completamente diversa. Tutte queste caratteristiche sono caratteristiche di un comportamento che assomiglia a un movimento completamente casuale e viene chiamato caos deterministico.

Esploriamo questa proprietà!

Per prima cosa, impostiamo il valore del parametro a = 3.2 e osserviamo l'evoluzione. Può sembrare sorprendente che questa volta la popolazione raggiunga non un valore, ma due, che si verificano consecutivamente ogni seconda stagione. Tuttavia, si è scoperto che i problemi non sono finiti qui. Con a = 4, il sistema non è più prevedibile. Diamo un'occhiata alla figura (2) o genereremo noi stessi una sequenza di numeri usando un computer. I risultati sembrano essere puramente casuali e abbastanza diversi per popolazioni iniziali leggermente diverse. Tuttavia, il lettore attento dovrebbe obiettare. Come può un sistema descritto da un'equazione deterministica1, anche molto semplice, comportarsi in modo imprevedibile? Beh forse.

Una caratteristica di questo sistema è la sua notevole sensibilità alle condizioni iniziali. Basta partire con due condizioni iniziali che differiscono di un milionesimo, e in pochi passi otterremo valori di popolazione completamente diversi. Controlliamo al computer:

a = 4.0

x = 0.123 y = 0.123 + 0.000001 PCC = [] per i nell'intervallo (25): x = a*x*(1-x) u = a * u * (1-u) stampa x, y

Ecco un semplice modello di evoluzione deterministica. Ma questo determinismo è ingannevole, è solo determinismo matematico. Da un punto di vista pratico, il sistema si comporta in modo imprevedibile perché non possiamo mai impostare matematicamente esattamente le condizioni iniziali. Tutto, infatti, è determinato con una certa accuratezza: ogni strumento di misura ha una certa accuratezza, e questo può causare imprevedibilità pratica nei sistemi deterministici che hanno la proprietà del caos. Un esempio sono i modelli di previsione meteorologica, che mostrano sempre una proprietà del caos. Ecco perché le previsioni meteorologiche a lungo termine sono così negative.

L'analisi dei sistemi caotici è estremamente difficile. Tuttavia, possiamo risolvere abbastanza facilmente molti dei misteri del caos con l'aiuto delle simulazioni al computer. Disegniamo il cosiddetto diagramma di biforcazione, sul quale posizioniamo i valori del parametro a lungo l'asse delle ascisse, e i punti fissi stabili della mappatura logistica lungo l'asse delle ordinate. Otteniamo punti stabili simulando un gran numero di sistemi contemporaneamente e tracciando i valori dopo molti tempi di campionamento. Come puoi immaginare, questo richiede molti calcoli. Proviamo ad elaborare "con attenzione" i seguenti valori:

importa numpy come np N x = 300 Quello = 500 h = np.linspace(0,1,Nx) х = х + np.zeri ((Na, Nx)) h = np.trasposizione (h) a = np.linspace (1,4, Na) a=a+np.zeri((Nx,Na)) per i nell'intervallo (100): x=a*x*(1-x) pt = [[a_,x_] per a_,x_ in zip(a.appiattito(),x.appiattito())] punto (pt, dimensione = 1, dimensione fig = (7,5))

Dovremmo ottenere qualcosa di simile alla figura (3). Come interpretare questo disegno? Ad esempio, con il valore del parametro a = 3.3, abbiamo 2 punti fissi stabili (la dimensione della popolazione è la stessa ogni seconda stagione). Tuttavia, per il parametro a = 3.5 abbiamo 4 punti costanti (ogni quarta stagione la popolazione ha lo stesso numero), e per il parametro a = 3.56 abbiamo 8 punti costanti (ogni ottava stagione la popolazione ha lo stesso numero). Ma per il parametro a≈3.57, abbiamo infiniti punti fissi (la dimensione della popolazione non si ripete mai e cambia in modi imprevedibili). Tuttavia, con un programma per computer, possiamo modificare l'ambito del parametro a ed esplorare la struttura geometrica infinita di questo diagramma con le nostre mani.

Questa è solo la punta dell'iceberg. Migliaia di articoli scientifici sono stati scritti su questa equazione, ma nasconde ancora i suoi segreti. Con l'aiuto della simulazione al computer, puoi, senza nemmeno ricorrere alla matematica superiore, interpretare il pioniere del mondo della dinamica non lineare. Ti invitiamo a leggere la versione online contenente i dettagli su molte delle interessanti proprietà dell'equazione logistica e modi interessanti per visualizzarle.

1 Una legge deterministica è una legge in cui il futuro è determinato unicamente dallo stato iniziale. Il contrario è la legge probabilistica. 2 In matematica, "discreto" significa ottenere valori da un determinato insieme numerabile. Il contrario è "continuo".

Aggiungi un commento