1. Che cos'è un'equazione differenziale
Un'equazione differenziale mette in relazione una funzione incognita y(t) con le sue derivate nel tempo. L'idea di base è: non descriviamo direttamente y(t), ma diciamo come cambia nel tempo.
Nei modelli applicati, y(t) rappresenta una grandezza fisica o logica (temperatura, popolazione, concentrazione, livello di attivazione fuzzy, ecc.) e f incorpora le ipotesi sul comportamento del sistema.
2. Esempio: raffreddamento di Newton
Il modello di raffreddamento di Newton descrive come un corpo caldo si avvicina alla temperatura ambiente. L'ipotesi è che la velocità con cui la temperatura cambia sia proporzionale alla differenza rispetto all'ambiente.
Ad esempio, se T_amb = 20 °C, k = 0.1 1/min e T(0) = 80 °C (acqua calda in una stanza), il modello descrive come la temperatura scende da 80 verso 20 con una velocità iniziale pari a dT/dt = -0.1 · (80 - 20) = -6 °C/min.
Questo tipo di modello è molto vicino a fenomeni che puoi simulare in Python, ad esempio campionando la soluzione a passi di tempo discreti o confrontandola con dati reali provenienti da sensori (come nella tua serra).
3. Esempio: crescita logistica
La crescita logistica è un modello classico per popolazioni o quantità che crescono ma incontrano un limite di capacità (risorse finite, saturazione di mercato, limite fisico di un sistema).
Un esempio tipico: P(0) = 10, r = 0.5 1/anno e K = 1000. All'inizio la crescita è quasi esponenziale, poi rallenta quando P(t) si avvicina a 1000, che rappresenta il limite di capacità del sistema (ad esempio risorse disponibili).
Questo modello ha due equilibri (0 e $K$) e mostra molto bene il concetto di dinamica non lineare pur restando comprensibile e facilmente simulabile.
4. Punto di equilibrio e stabilità qualitativa
Un'idea centrale nei modelli dinamici è quella di punto di equilibrio: un valore y* tale che, se il sistema parte da lì, resta lì per sempre. Formalmente è una soluzione costante dell'equazione.
Anche senza trovare la soluzione esatta, spesso possiamo capire se un equilibrio è attrattivo (il sistema tende verso di esso) o repellente (il sistema se ne allontana) guardando semplicemente il vettore campo.
5. Risolvere numericamente con Python
Nella pratica, le equazioni differenziali vengono spesso risolte numericamente. Anche per modelli semplici come il raffreddamento o la crescita logistica, usare uno schema numerico ti permette di collegare la teoria al codice e ai dati reali.
Per esempio, per il raffreddamento con passo h = 1 minuto, puoi partire da T_0 = 80 e calcolare T_1, T_2, ... aggiornando ogni volta T_(n+1) = T_n + h · (-k (T_n - T_amb)). In Python questo diventa un ciclo for che aggiorna una lista di valori T_n.
In una pagina dedicata ai metodi numerici potremo collegare questo schema ad algoritmi più stabili e precisi, e confrontare le soluzioni numeriche con le soluzioni analitiche dove sono disponibili.