Sei sulla pagina 1di 2

Studio Numerico dei Diagrammi di Biforcazione

Si consideri un sistema dinamico unidimensionale

ẋ = f (x; r) (1)

che descriva l’evoluzione della funzione x(t) al variare del parametro r. Vogliamo fare
il grafico del diagramma di biforcazione, cioè calcolare l’insieme degli zeri x∗ (r) di f
(ovvero i punti di equilibrio del sistema dinamico), in modo da studiarne la dipendenza
dal parametro r. In questa dispensa analizzeremo un metodo per calcolare i punti di
equilibrio x∗ (r) e illustreremo un codice MATLAB che implementi il metodo.
L’idea è abbastanza semplice: in generale la curva di biforcazione può essere una funzione
a più valori, ossia, per un dato valore di r può esistere più di un punto fisso. Dunque
non conviene cercare di calcolare x∗ (r) direttamente. Cercheremo dunque l’espressione
delle curve di biforcazione in forma parametrica.
Introduciamo dunque il parametro s e supponiamo che la curva dei punti fissi sia data
parametricamente da r = r(s) e x∗ = x(s). Detta curva dovrà dunque soddisfare a :

f (x(s), r(s)) = 0

per tutti gli s in qualche intervallo. Calcolando la derivata totale rispetto ad s otteniamo:

df (x(s), r(s)) ∂f (x(s), r(s)) 0 ∂f (x(s), r(s)) 0


= x + r ≡ 0, (2)
ds ∂x ∂r
dove x0 ≡ dx 0 dr
ds , r ≡ ds . Il modo più semplice di soddisfare la (2) è di porre

∂f (x(s), r(s))
r0 = , (3a)
∂x
∂f (x(s), r(s))
x0 = − . (3b)
∂r
Ricordiamo che possiamo scegliere r0 ed x0 in questo modo visto che la scelta del pa-
rametro s è irrilevante. Ai fini del calcolo della curva ciò che importa è il rapporto
x0 /r0 .
Quale dato iniziale (r0 , x0 ) assegnare per risolvere univocamente il sistema (3)? Il dato
iniziale del sistema (3) andrà naturalmente scelto sulla curva, in modo che f (x0 , r0 ) = 0.
La soluzione (r(s), x(s)) del problema ai dati iniziali (3) è un ramo del diagramma di
biforcazione.
Per la biforcazione nodo–sella, l’integrazione del sistema (3) per un intervallo di valori
di s sufficientemente lungo, produrrà l’intero diagramma di biforcazione. Viceversa, si
Corso di Sistemi Dinamici con laboratorio
CDS Matematica
Anno Accademico 2019/20

osservi come, nelle biforcazioni transcritica e pitchfork, il punto di biforcazione (rc , x∗ )


sia un punto critico del sistema (3), in quanto sia ∂f /∂x che ∂f /∂r si annullano nel
punto di biforcazione. Dunque non possiamo integrare oltre il punto di biforcazione (ciò
corrisponde al fatto che due o tre curve di zeri di f si incontrano nel punto di biforcazione,
e dunque non è possibile continuare univocamente una curva oltre quel punto). In questi
casi sarà necessario scegliere un ulteriore dato iniziale oltre il punto di biforcazione e
ripetere la procedura di integrazione.

Useremo il sistema (3) con la condizione iniziale (r0 , x0 ) per calcolare i diagrammi di
biforcazione di alcuni sistemi dinamici utilizzando il software MATLAB.
Per prima cosa è necessario individuare il dato iniziale (r0 , x0 ): a partire da un valore ar-
bitrario del parametro r0 , si determina il punto di equilibrio x0 che soddisfa all’equazione
f (x0 , r0 ) = 0 (ciò viene fatto usando il comando fzero). Ciò potrà portare a più di una
soluzione, ossia x0 , x1 , . . . . Tutte le soluzioni (r0 , xi ) trovate saranno dunque altrettanti
dati iniziali a partire dai quali bisognerà integrare il sistema (3).

A questo punto è possibile creare la funzione che definisce il secondo membro del sistema
dinamico (3), in modo da poterlo poi integrare tramite uno dei solutori della ODE suite.
Le integrazioni andranno fatte, a partire dal dato iniziale, sia per valori di s maggiori di
zero che per valori di s minori di zero, in modo da potere costruire l’intero ramo. I due
grafici (grafico della soluzione per s > 0 e per s < 0) andranno quindi riportati in colori
diversi, ciò al fine di potere studiare, a partire dal grafico la stabilità di ciascun ramo del
diagramma.

Supponiamo, per schematizzare, di riportare in rosso i rami integrati per tempi positivi
(avanti nel tempo, cioè ds > 0) e in blu i rami integrati per tempi negativi (indietro nel
tempo, cioè ds < 0). In ciascun ramo il dato iniziale r = r0 , x = x0 si trova nel punto in
cui la curva rossa e la curva blu si incontrano. Supponiamo adesso di muoverci lungo il
ramo a partire dal dato iniziale, per esempio, verso destra (ossia facciamo aumentare r):
avremo dr > 0. Il colore del ramo (blu o rosso) ci dirà il segno di ds: supponiamo che il
ramo sia rosso, dunque ds > 0. Il rapporto dr/ds sarà dunque positivo. Ma, dal sistema
(3) si ha che dr/ds = ∂f /∂x, il che ci consente di avere il segno della derivata della f
calcolata nel punto di equilibrio, ossia di determinarne la stabilità. Nel caso esemplificato
∂f /∂x > 0, dunque il ramo considerato è instabile.
Attenzione!! i colori rosso e blu non indicano, di per sè, stabilità o instabilità. Il diverso
colore indica semplicemente che l’integrazione è avvenuta avanti o indietro nel tempo.

Pag. 2