Matematica della vita
Fino a non molto tempo fa le scienze della vita per esempio la biologia non facevano grande uso della matematica, scienza esatta per eccellenza. E' in atto un cambiamento rivoluzionario, di cui pochi si accorgono. Molti biologi passano gran parte del loro tempo davanti al computer, studiando modelli matematici che simulano i risultati delle loro ricerche.
Uno dei problemi classici è quello della crescita di una popolazione. La popolazione di cui vogliamo occuparci può essere costituita da individui di vario tipo: batteri, cellule tumorali, animali in un dato ecosistema,
Il modello matematico necessariamente deve semplificare il problema, trascurando variabili o imponendo strutture conoscitive.
Nel seguito imponiamo al tempo una struttura discreta: il tempo passa per intervalli definiti, non è continuo. Per esempio avremo una popolazione iniziale P(0), al tempo 0, e ad essa si susseguiranno in ordine le generazioni successive P(1), P(2) P(n)
L'unità temporale che separa P(n+1) da P(n) può consistere in secondi, giorni o anni a seconda del problema che studiamo.
Cominciamo dal modello più semplice. Probabilmente la prima idea che ci viene in mente è che la popolazione al tempo n+1 sia proporzionale alla popolazione al tempo n mediante una costante k.
Esprimiamo matematicamente il modello:
Primo modello:
(1) P(n+1) = k P(n)
La relazione (1) è verificata in molti casi reali, per esempio nella crescita di una massa tumorale, o nelle prime fasi dello sviluppo di un embrione.
C'è un valore di soglia fondamentale: k=1. Se k=1, la popolazione è costante:
P(n+1) = P(n) = P(n-1) = P(0).
Se k è minore di 1, la popolazione diminuisce al passare del tempo Se k = ½ avremo:
P(1) = ½ P(0), P(2) = ½ P(1) = Ό P(0)
P(n)=
P(0).
La popolazione si estingue dopo un numero finito di passi.
Naturalmente non si possono avere frazioni di individui (è insito nell'etimologia stessa della parola individuo). Quindi se P(0) = 1000, allora P(1) = 500, P(2) = 250, P(3) = 125, P(4) = 62, P(5) =31, P(6) =15, P(7) = 7, P(8) = 3, P(9) = 1, P(10) = 0.
Se k è maggiore di 1, la popolazione tende all'infinito. Se k = 3 avremo:
P(1) = 3 P(0), P(2) = 3 P(1) = 9 P(0)
P(n) =
P(0).
La relazione (1) è una relazione ricorsiva. Le considerazioni fatte portano immediatamente ad una risoluzione del primo modello:
Risoluzione del primo modello:
(2) per ogni n
0 P(n) =
P(0)
Per comprendere quello che succede è importante fare degli esempi. Supponiamo che Carlo abbia una torta di 1 Kg e ogni giorno mangi 50 g di torta. Ovviamente finirà la torta in 20 giorni. Supponiamo ora che invece Carlo mangi ogni giorno
della parte di torta che avanza (che presumibilmente tiene nel frigorifero).
Se P(n) è il peso in Kg di quanto rimane al giorno n della torta abbiamo:
P(0) = 1 Kg;
P(n+1) =
P(n);
Utilizzando la (2) sappiamo che P(n) =
Kg
Con l'aiuto di una qualsiasi calcolatrice tascabile potete risolvere il Problema 1:
Problema 1:
Dopo quanti giorni il peso della parte di torta che rimane a Carlo è minore di ½ Kg?
Ho letto un libro molto bello di Albert Jacquard : "L'equazione delle ninfea", edito da Piemme (1999). Jacquard è un genetista, professore universitario, e racconta spesso ai suoi studenti questa storiella esemplificativa. C'è una ninfea che ha la proprietà ereditaria di produrre ogni giorno un'altra pianta; in altre parole la sua crescita può essere espressa dall'equazione (2) con k=2:
per ogni n
0 P(n) =
P(0), dove n è il numero dei giorni che sono passati dall'inizio dell'osservazione e P(0) è la popolazione iniziale delle ninfee. Nel giro di 30 giorni la ninfea e la sua discendenza ricoprono l'intera superficie di un grande lago, ma a questo punto l'intera specie, priva di spazio e di nutrimento, muore soffocata (è una storia triste L
).
Problema 2:
Dopo quanti giorni le ninfee coprivano soltanto la metà del lago?
Uno dei primi modelli di crescita di una popolazione è stato proposto da Leonardo Pisano (ca. 1200), detto Fibonacci (il padre di Leonardo era soprannominato Bonaccio, e quindi Leonardo era "Fibonacci" cioè filius Bonacci, "figlio del bonaccione"). Fibonacci si chiese quante coppie di conigli nascono alla n-esima generazione, partendo da una singola coppia e supponendo che ogni coppia di conigli di una generazione produca una coppia di conigli per la generazione successiva e una per la generazione dopo questa e poi muoia.
Diciamo P(n) il numero delle coppie di conigli che nascono alla n-esima generazione, partendo dalla generazione 0. Abbiamo P(0) = 0 (non nascono coppie all'inizio); P(1) = 1 (nasce una coppia); alla n-esima generazione P(n) = P(n-1) + P(n-2) perché alla generazione n nasce una coppia per ogni coppia della generazione n-1 e per ogni coppia della generazione n-2.
Otteniamo così il secondo modello:
Secondo modello:
P(0) = 0;
P(1) = 1;
(3) per ogni n
2 P(n) = P(n-1) + P(n-2)
In base alla (3) la generazione n-esima è la somma delle due precedenti.
I P(n) sono detti numeri di Fibonacci.
I primi elementi della successione dei numeri di Fibonacci sono:
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610
Problema 3:
Trovare P(100).
Risolvere con la bruta forza del calcolo il Problema 3 risulta essere piuttosto faticoso e noioso. Sarebbe assai utile avere una formula non ricorsiva, come la (2); questa formula, che risolve il primo modello, dice che P(n) =
P(0). Proviamo a sostituire questo valore di P(n) nella (3). Si ottiene:
,e dividendo per
si ha:
. Le soluzioni quest'ultima equazione sono:

Sostituendo P(0) con una costante arbitraria A e k con
otteniamo allora che P(n) = A
è una soluzione della (3), cioè per ogni n
2
. Ovviamente lo stesso vale per
. Poiché la (3) è una relazione lineare (P(n) è la somma dei due valori precedenti) se A
e B
sono soluzioni anche P(n) = A
+ B
è una soluzione. Noi vogliamo P(0) = 0 e P(1) = 1. Sostituendo a n i valori 0 e 1 otteniamo il sistema:
ovvero
. Risolvendolo troviamo i valori A e B, e infine abbiamo la risoluzione del secondo modello:
Risoluzione del secondo modello:
(4) per ogni n
0 ![]()
Si può ora calcolare P(100) in un colpo solo; il risultato è che alla centesima generazione nascono la bellezza di 354.224.848.179.261.915.075 conigli!
I numeri di Fibonacci appaiono sorprendentemente spesso nei fenomeni biologici, specialmente nella fillotassi, il nome botanico che riguarda la disposizione di foglie, petali etc.
Per esempio in questa figura è mostrata una margherita (la stessa) dove a destra sono evidenziate 34 spirali che vanno in senso antitorario, e a sinistra 21 spirali in senso orario. Quasi sempre l'angolo tra due entità botaniche (foglie, petali,
)che si susseguono cronologicamente nello sviluppo della pianta è vicino a 360 (1-1/
) = 137,5
gradi dove
è la sezione aurea, il numero che compare nella formula (4) e che si dimostra essere il limite per n che tende all'infinito del rapporto P(n+1)/P(n) tra due numeri di Fibonacci consecutivi. Una spiegazione di questo notevole fenomeno si trova nello splendido testo di J. H. Coway e R. K. Gui: "Il libro dei Numeri", edito da Hoepli (1999). Ottimo anche il libro di C. J. Snijders, "La Sezione Aurea", edito da Muzzio (1985), dove si mostra l'importanza di questo numero in arte, natura, matematica, architettura e musica.
Ovviamente i due modelli presentati sono estremamente semplici e trascurano, tra l'altro, la limitazione delle risorse disponibili nell'ambiente (si ricordi la fine delle ninfee ). In generale, in presenza di risorse illimitate e in assenza di nemici temibili, la crescita della popolazione segue da vicino il primo modello: "più siamo e più ci riproduciamo". Questo tipo di crescita viene detta esponenziale, e non è sostenibile nel mondo reale.
Assumiamo la validità del modello 1 per la crescita della popolazione umana. Osservando le tavole che descrivono l'aumento della popolazione mondiale (per esempio sul sito internet http://www.census.gov/ipc/www/worldpop.html ) possiamo tentare di calcolare il valore del parametro k che appare nella formula (1). Supponiamo che l'unità temporale (il passaggio da n a n+1) sia 10 anni. Nel 1950 la popolazione mondiale era di p1950 = 2.555.078.074 individui; nel 1960, una unità
temporale dopo, p1960 = 3.039.332.401 individui. Calcolando k = p1960/p1950 si trova k = 1,18953. La formula (2) diventa allora:
(5) P(n) = ![]()
Non ci sorprendiamo del fatto che la (5) funzioni per n = 0, 1 (non potrebbe non farlo!). Azzardiamo una previsione. P(0) è la popolazione nel 1950, P(1) quella del 1960, P(2) quella del 1970, , P(5) dovrebbe essere la popolazione nel 2000.
Eseguiamo il calcolo: p2000 = P(5) =
= 6.085.188.187 individui. Il numero riportato nella tavola è 6.080.188.311. La differenza tra i due dati è 5.003.876, con un errore percentuale di appena 0,0008 (otto decimillesimi). Non è male!
Questo significa che la crescita della popolazione umana negli ultimi 50 anni è stata esponenziale. Le organizzazioni mondiali vorrebbero abbattere questo tasso di crescita. Se andate avanti a leggere i dati nella tavola di www.census.gov trovate non le previsioni ma quello che si vorrebbe che fosse: nel 2050 la popolazione mondiale è ottimisticamente stimata a 9.104.686.693 individui.
Risolvete questi problemi (se ne avete voglia J ):
Problema 4:
Con il valore di k calcolato (k = 1,18953) quale sarebbe invece p2050?
Problema 5:
Quale deve essere il nuovo valore di k per passare veramente da p2000 = 6.080.188.311 a p2050 = 9.104.686.693?
Esistono modelli di crescita della popolazione assai più sofisticati e realistici; alcuni di essi, come la famosa equazione logistica hanno anche avuto un formidabile impatto in alcune aree della matematica. Esiste infatti oggi una straordinaria interazione tra scienze della vita e matematica (come classicamente tra fisica e matematica); le scienza che studiano il mondo sensibile pongono nuovi problemi alla matematica, che risponde elaborando nuovi strumenti e modelli, con un arricchimento reciproco altrimenti impossibile. Ritorneremo su questo argomento. A presto!
Umberto Cerruti
Università di Torino