metodi multistep per l'integrazione numerica … oppure tridimensionale ... ogni cellula viene...

33

Upload: phungliem

Post on 17-Feb-2019

228 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: METODI MULTISTEP PER L'INTEGRAZIONE NUMERICA … oppure tridimensionale ... Ogni cellula viene descritta come un piccolo sistema a sé stante, ... pertanto bisogna costruire algoritmi

UNIVERSITÁ DEGLI STUDI DI TRIESTE

FACOLTÁ DI SCIENZE MATEMATICHE, FISICHE E NATURALI

TESI DI LAUREA IN FISICA

METODI MULTISTEP

PER L'INTEGRAZIONE NUMERICA

NELLA SIMULAZIONE

DI SISTEMI BIOFISICI

Relatore: Laureando:

Chiar.mo Prof. Edoardo MILOTTI Andrea CEPELLOTTI

ANNO ACCADEMICO 2008-2009

Page 2: METODI MULTISTEP PER L'INTEGRAZIONE NUMERICA … oppure tridimensionale ... Ogni cellula viene descritta come un piccolo sistema a sé stante, ... pertanto bisogna costruire algoritmi

La simulazione di un sistema bio�sico richiede l'integrazione di siste-

mi di equazioni di�erenziali ordinarie. Nella descrizione di fenomeni di

di�usione di molecole all'interno di un sistema di cellule, e della loro

distruzione o sintesi da parte di enzimi, vengono coinvolte equazioni

di�erenziali sti�, caratteristica che rende di�cile la loro integrazione.

In questa tesi studio gli algoritmi di integrazione multistep e il loro

comportamento su questo tipo di equazioni.

Page 3: METODI MULTISTEP PER L'INTEGRAZIONE NUMERICA … oppure tridimensionale ... Ogni cellula viene descritta come un piccolo sistema a sé stante, ... pertanto bisogna costruire algoritmi

1 Introduzione al problema bio�sico

I modelli matematici per sistemi bio�sici o biochimici sono per la maggior parte costruiti con sistemi diequazioni di�erenziali non lineari. Questo rende impraticabile uno studio analitico e richiede quindi unaintegrazione numerica delle equazioni.I recenti sviluppi tecnologici dei computer mettono oggi a disposizione potenti strumenti per il calcolo eci pongono di fronte a nuovi orizzonti per quanto riguarda la simulazione. Nonostante tutto la principaledi�coltà che uno studio numerico comporta consiste nel riuscire a realizzare algoritmi che possano esseresu�cientemente veloci da integrare.Si può fare un esempio per capire il numero di calcoli che possono essere richiesti [1]. Si consideri unacellula sferica di raggio 5µm, la sua massa è di circa 5 ·10−13 kg e quindi per ogni cellula ci sono circa 1013

- 1014 atomi. Teoricamente è possibile descrivere un sistema a partire dalle molecole e studiarle con ladinamica molecolare, ovvero studiarne l'esatta evoluzione. Se si prova una risoluzione spaziale di 0.01nm( 1

10 delle dimensioni di un atomo di idrogeno ) su un sistema cubico di dimensioni di 1mm, ciascun lato èsuddiviso in 10−3m/10−11m = 108 ≈ 226 intervalli. Quindi per la simulazione servono più di 3 bytes perogni coordinata, segue che per ogni atomo servono almeno 19 bytes ( 3 coordinate, 3 velocità e un indicedi atomo) e dunque per ogni cellula circa 1015 bytes. In un piccolo sistema biologico si possono avere106 cellule, perciò in totale servono almeno 1021 bytes di dati con cui eseguire la simulazione. Questomostra che i soli requisiti di memoria rendono impossibile realizzare una simulazione di questo tipo coni computer oggi disponibili.Ciononostante è stato fatto almeno un tentativo [2] per realizzare una simulazione di una singola cellulaper tempi estremamente brevi, ma le ridotte scale su cui si svolgono queste simulazioni non permettonodi confrontare i risultati con sistemi bio�sici reali e ne limitano l'utilità.Per ovviare alla complessità del problema e sempli�care le equazioni che ne descrivono l'evoluzione, sipuò ricorrere a trattazioni fenomenologiche e a parametrizzazioni che, a scapito di una più rigorosatrattazione, permettono una considerevole sempli�cazione matematica del problema e di conseguenzapermettono la simulazione di sistemi bio�sici su larga scala (circa 106 cellule o più).Con questo approccio al problema nasce il progetto VBL (Virtual Biophysics Lab), volto a simularela crescita di sistemi di cellule tumorali [1]. I sistemi di cellule tumorali non sono facili da studiaredirettamente poichè gli studi in vivo nell'uomo comportano problemi anche di tipo etico. Si possonoinvece studiare in laboratorio facendo crescere le cellule in colture in vitro. Le colture possono avere unatopologia quasi-bidimensionale (colture in capsule di Petri con cellule adese alla super�cie della capsula)oppure tridimensionale (colture in pozzetti con un gradiente di densità - in questo caso le cellule restanosospese nel liquido e formano strutture 3D), dove assumono una struttura sferoidale e perciò vengonochiamati sferoidi tumorali. Questo tipo di studi permette di osservare molti comportamenti altrimentinon accessibili negli studi in vivo. Con il progetto VBL si ambisce ad introdurre uno studio in silico

delle cellule tumorali tramite la simulazione numerica della cinetica tumorale, fornendo uno strumentoversatile e capace di simulare diverse condizioni, per poter meglio studiare e comprendere il sistemabio�sico e per sviluppare nuove tecniche terapeutiche.Ogni cellula viene descritta come un piccolo sistema a sé stante, che interagisce con l'ambiente e con altrecellule, con fenomeni governati da leggi sia deterministiche che casuali, intervallate da eventi improvvisie discontinui come la mitosi. In questo lavoro si focalizzerà l'attenzione sui fenomeni di di�usione neglispazi extracellulari.Una simulazione di un sistema che dipende fortemente dall'ambiente in cui è immerso deve poter es-sere condotta in diverse condizioni anche mutevoli nel tempo, pertanto bisogna costruire algoritmi diintegrazione che possano essere più versatili possibile.Tali algoritmi devono inoltre avere ottime proprietà di stabilità, indipendentemente dalle condizioni alcontorno, ma tali richieste in genere non sono sempre soddisfatte dai metodi di integrazione più comuni.In mancanza di questa condizione, non c'è garanzia che variabili di tipo bio�sico mantengano valori�sicamente accettabili (ad esempio non avere masse negative). Da questa esigenza nasce la richiesta diuno studio più approfondito dei metodi matematici di integrazione, e diventa necessario trovare algoritmiche siano stabili ad ogni passo. Al tempo stesso gli algoritmi devono restare su�cientemente leggeri pernon richiedere tempi di calcolo eccessivi.

1

Page 4: METODI MULTISTEP PER L'INTEGRAZIONE NUMERICA … oppure tridimensionale ... Ogni cellula viene descritta come un piccolo sistema a sé stante, ... pertanto bisogna costruire algoritmi

2 Modello Bio�sico

Nel lavoro seguente viene approfondito lo studio delle equazioni di di�usione su un modello sempli�cato,costituito da una singola cellula. In particolare ci si limita allo studio del trasporto di glucosio tra lacellula e l'ambiente circostante e del suo metabolismo, che corrisponde alla conversione in G6P (Glucosio6 Fosfato); questo modello di di�usione, trasporto e metabolismo è simile anche per altri tipi di molecole.Il sistema qui schematizzato [3] consiste in una singola cellula che viene rappresentata da una semplicesfera di raggio r ≈ 5µm, e quindi di super�cie S = 4πr2 = 3 · 10−10m2. Attorno la sfera è circondatada uno spazio extracellulare, il quale a sua volta è immerso in un ambiente a concentrazione [Genv], cherappresenta un parametro �sso del modello.Le variabili di interesse sono la concentrazione di glucosio all'interno della cellula [Gin], e la concentrazionenello spazio extracellulare [Gextra].Lo spazio extracellulare viene introdotto per sempli�care la trattazione della di�usione all'interfaccia trala cellula e l'ambiente circostante. Quando la cellula è a contatto diretto con l'ambiente, la concentrazionedi una sostanza al suo interno è generalmente diversa da quella dell'ambiente.In questo caso lo spazio extracellulare rappresenta un volume �ttizio intermedio tra l'ambiente a con-centrazione costante che di�onde le sostanze e la cellula.Quando la cellula si trova invece all'interno di uno sferoide e non è a contatto diretto con l'ambiente, lospazio extracellulare rappresenta una matrice extracellulare. Questa matrice è una struttura spugnosache separa le cellule e attraverso la quale le sostanze possono di�ondere all'interno del sistema biologico.Si possono ora costruire le equazioni di�erenziali per poter descrivere il trasporto di glucosio. Per quantoriguarda l'interno della cellula la variazione nel tempo di [Gin] dipende principalmente da:

• il trasporto di glucosio dall'esterno all'interno e il viceversa, reso possibile dalla presenza di ap-posite proteine dedite al trasporto dette GLUT. Tali meccanismi di trasporto possono essereparametrizzati nella forma di Michaelis - Menten:

vmax,1[Gextra]K1 + [Gextra]

(1)

dove vmax,1 è una velocità di trasporto, proporzionale alla super�cie della cellula, e K1 è unparametro sperimentale.

• la conversione del glucosio in G6P, indipendente dai parametri geometrici della cellula.

Combinando i termini, si ottiene:

Vind[Gin]dt

=vmax,1[Gextra]K1 + [Gextra]

− vmax,1[Gin]K1 + [Gin]

− vmax,2[Gin]2

(K2 +Gin) (Ka +Gin)

− vmax,22[Gin]2

(K22 +Gin) (Ka +Gin)(2)

Dove Vin rappresenta il volume della cellula, vmax,2 e vmax,22 sono due velocità di trasporto e K2, K22 eKa sono parametri sperimentali. Per quanto riguarda la concentrazione [Gextra], bisogna anche in questocaso tenere conto della variazione causata dal trasporto, con segno opposto al caso precedente. Inoltrebisogna aggiungere un termine di di�usione del glucosio dall'ambiente circostante allo spazio extracellu-lare. Si assume che tale scambio avvenga attraverso la super�cie di dimensioni S (approssimativamentela super�cie della membrana) e che lo spessore dello spazio extracellulare sia ∆ (≈ 0.2µm).

Vextrad[Gextra]

dt= −vmax,1[Gextra]

K1 + [Gextra]+vmax,1[Gin]K1 + [Gin]

+DS[Genv]− [Gextra]

∆(3)

Dove D è il coe�ciente di di�usione. Nella simulazione si preferisce esprimere le variabili in funzionedelle masse al posto delle concentrazioni, perchè la massa deve conservarsi in questi scambi.

2

Page 5: METODI MULTISTEP PER L'INTEGRAZIONE NUMERICA … oppure tridimensionale ... Ogni cellula viene descritta come un piccolo sistema a sé stante, ... pertanto bisogna costruire algoritmi

dmin

dt=vmax,1mextra

K1 +mextra− vmax,1min

K1 +min− vmax,2m

2in

(K2 +min) (Ka +min)

− vmax,22m2in

(K22 +min) (Ka +min)(4)

dmextra

dt= −vmax,1mextra

K1 +mextra+vmax,1min

K1 +min+DS

∆([Genv]−

mextra

Vextra) (5)

I valori dei parametri utilizzati sono riassunti nella tabella (1).

Tabella 1: Valori dei parametri

Parametro Valore

r 5 · 10−6m raggio della cellula

S 3 · 10−10m super�cie

Vin 5 · 10−16m2 volume

∆ 0.2 · 10−6m spessore dello spazio extracellulare

Vextra = S∆ 6 · 10−17m3 volume extracellulare

vmax,1 6 · 10−19kg · s−1 massima velocità di attività tramiteGLUT

vmax,2 1.2 · 10−19kg · s−1 massima velocità di attività di glucoli-nase

vmax,22 1.2 · 10−18kg · s−1 massima velocità di attività di hexoli-nase

K1 0.27024kg ·m−3 coe�ciente di trasporto di glucosio

K2 1.8kg ·m−3 coe�ciente di glucolinase

K22 1.8 · 10−2kg ·m−3 coe�ciente di hexolinase

Ka 5.4 · 10−2kg ·m−3 coe�ciente di controllo di glucolinase ehexolinase

D 7 · 10−10m2 · s−1 coe�ciente di di�usione del glucosio inacqua

Genv 0.9kg ·m−3 concentrazione di glucosio dell'ambi-ente

La simulazione in�ne include anche eventi discreti che caratterizzano la vita di cellule tumorali. Tali eventiimprovvisi corrispondono principalmente alla mitosi e alle transizioni tra fasi cellulari. Questi eventi siri�ettono sul sistema causando discontinuità nell'evoluzione temporale delle cellule e dell'ambiente. Inprima approssimazione si può dire che globalmente la distribuzione statistica di questi eventi nel sistemadi cellule è Poissoniana.L'incertezza sperimentale negli aspetti stocastici dell'evoluzione del sistema rende in molti casi trascur-abili le incertezze numeriche. Quindi non ci sono particolari richieste su quanto piccolo debba esserel'errore locale dell'algoritmo scelto.La scelta di metodi di integrazione per questo sistema di equazioni di�erenziali ordinarie appare moltoampia. Tuttavia si è legati dalla necessità di ricorrere a dei metodi che non richiedano troppi calcoli, perpoter trovare applicazione nei metodi di simulazione a larga scala.Nella prossima sezione vengono introdotti due dei metodi di integrazione più semplici, ovvero i metodi diEulero, che permettono di capire meglio la di�coltà di integrazione delle equazioni di�erenziali oggettedi studio.

3

Page 6: METODI MULTISTEP PER L'INTEGRAZIONE NUMERICA … oppure tridimensionale ... Ogni cellula viene descritta come un piccolo sistema a sé stante, ... pertanto bisogna costruire algoritmi

3 Metodi di Eulero

Il metodo esplicito di Eulero è stato uno dei primi metodi di integrazione numerica [4], ed è statointrodotto alla �ne del secolo XVIII. Dato il problema di Cauchy:

y′ (x) = f (x, y) , y (x0) = y0 (6)

L'algoritmo di Eulero consiste nel riscrivere l'equazione di�erenziale nel punto xn :

f (xn, yn) = y′ (xn) = limh→0

y (xn+1)− y (xn)h

(7)

Prendendo l'approssimazione discreta più semplice della derivata e rimaneggiando i termini si trova.

y (xn+1) = y (xn + h) = y (xn) + hf (xn, yn) (8)

Date le condizioni iniziali e scelto un passo di integrazione h, la soluzione approssimata y (x) è trovataiterando la formula.Per dare una stima dell'errore commesso a ogni passo di integrazione (errore locale) è su�ciente valutarela di�erenza tra la soluzione approssimata e quella esatta, espandendola in serie di Taylor.

y (x+ h)− yEul (x+ h) =(y (x) + hy′ (x) +

h2

2y′′ (x) + ...

)− (y (x) + hf (x, y))

= O(h2)

(9)

Il che signi�ca che nel limite in cui h tende a zero, l'errore locale è proporzionale a h2.Un secondo metodo di integrazione è Eulero implicito (o all'indietro), de�nito dalla formula:

y (xn+1) = y (xn) + hf (xn+1, yn+1) (10)

La derivazione di tale metodo è analoga all'algoritmo esplicito, semplicemente approssimando diversa-mente la derivata:

f (xn+1, yn+1) = y′ (xn+1) = limh→0

y (xn+1)− y (xn)h

(11)

E si dimostra che l'errore locale è anche in questo caso dell'ordine di h2.Nel metodo implicito, invece di approssimare la derivata �in avanti� la si approssima �all'indietro�: poichèla f è spesso una funzione non lineare questo implica che il valore al tempo n+ 1 esimo è de�nito implici-tamente e per poterlo trovare si deve risolvere un'equazione non lineare. La soluzione di un'equazionedi questo tipo in generale non è esprimibile analiticamente, ma può essere trovata ponendo l'equazionenella forma:

y (xn+1)− y (xn)− hf (xn+1) = 0 (12)

E poi sfruttando un algoritmo di ricerca degli zeri per trovare la soluzione.L'errore locale è facilmente stimabile, ma per valutare l'e�cienza di un algoritmo dopo molti passi diintegrazione è utile introdurre le regioni di stabilità [4]. Un metodo di integrazione è stabile per queivalori del passo di integrazione tali che la soluzione asintotica del metodo numerico tende a coincidere conla soluzione analitica. Questa è una richiesta particolarmente importante nella soluzione di equazionidi�erenziali. Là dove non è soddisfatta, la soluzione numerica diverge dalla soluzione reale e non èpossibile una simulazione per tempi lunghi del sistema biologico di nostro interesse.Le regioni di stabilità non vengono valutate per un'equazione di�erenziale arbitraria a causa della dif-�coltà di uno studio analitico. Si preferisce limitarsi nell'ambito delle equazioni di�erenziali lineari acoe�cienti costanti, all'equazione:

y′ (x) = qx (13)

4

Page 7: METODI MULTISTEP PER L'INTEGRAZIONE NUMERICA … oppure tridimensionale ... Ogni cellula viene descritta come un piccolo sistema a sé stante, ... pertanto bisogna costruire algoritmi

dove q ∈ C è un parametro. La regione di stabilità di un metodo di integrazione è de�nita come l'insiemedei valori di q per cui la soluzione numerica è limitata, (cioè, se si indica con n il numero di passi, siha che per n → ∞ la soluzione numerica tende a zero). Ciò comporta che se è stabile e vale anche< (q) < 0, allora la soluzione numerica tende asintoticamente alla soluzione esatta. All'aumentare delledimensioni della regione di stabilità, aumenta il numero di valori di q per cui l'algoritmo risulta esserestabile all'equazione di prova.Con queste sempli�cazioni si può cercare la regione di stabilità per i metodi di Eulero. Usando un passodi integrazione h �sso, si ha che la soluzione approssimata di Eulero yn al tempo xn = x0 +nh è de�nitadalla relazione di ricorrenza:

yn = yn−1 + hf(xn−1) = (1 + hq) yn−1 (14)

In questo caso semplice è possibile scrivere analiticamente la soluzione numerica:

yn = (1 + hq)n y0 (15)

Ma è anche possibile trovare analiticamente la soluzione dell'equazione di�erenziale:

y (xn) = y (x0) exp (nhq) = y (x0) exp (hq)n (16)

Ci si può sempre ricondurre a questo studio anche quando si stanno trattando, come nel nostro problema,sistemi di equazioni di�erenziali. In questo caso bisogna risolvere il problema

y′ (x) = Mx (17)

Dove M è una matrice di coe�cienti costanti. Si deve diagonalizzare la matrice e cambiare la basein quella de�nita dagli autovettori, in modo da disaccoppiare le equazioni e ricondursi all'equazione diprova. In questo caso q rappresenta un autovalore della matrice.Tenendo presente la possibilità della generalizzazione del metodo anche a sistemi di equazioni di�erenziali,si può tornare al problema monodimensionale. Per poter ottenere un comportamento convergente pern→∞ della soluzione numerica è necessario garantire che (1 + qh)n converga. Bisogna quindi richiedereche |1 + hq| < 1, la soluzione esatta invece converge se < (q) < 0. Un'analisi di questo tipo coinvolgecontinuamente il prodotto hq ed è uso indicarlo con z, z ∈ C.L'insieme dei punti z per cui il metodo ha questo comportamento stabile, cioè la regione di stabilità delmetodo di Eulero esplicito, consiste nella regione del piano complesso per cui |1 + z| < 1.

Figura 1: Le regioni di stabilità (colorate in blu) per i metodi di Eulero esplicito a sinistra e implicito adestra.

-3 -2 -1 0 1

-2

-1

0

1

2

-1 0 1 2 3

-2

-1

0

1

2

5

Page 8: METODI MULTISTEP PER L'INTEGRAZIONE NUMERICA … oppure tridimensionale ... Ogni cellula viene descritta come un piccolo sistema a sé stante, ... pertanto bisogna costruire algoritmi

In questo semplice caso si può anche dare una stima dell'errore globale, ovvero la di�erenza tra lasoluzione esatta e quella numerica dopo n passi di integrazione. Le soluzioni del problema numerico eanalitico sono date dalle equazioni (15) e (16), per cui si può studiare la loro di�erenza e sviluppando inserie di Taylor.

y (xn)− yny0

≈(

1 + nhq +n (n− 1)

2h2q2

)−(

1 + nhq +n

2h2q2

)≈ O

((nh)2

)≈ O

((t)2

)(18)

Quindi l'errore sul risultato �nale è dell'ordine di t2

In maniera simile a quanto trattato, si può studiare anche la stabilità del metodo di Eulero implicito.Dalla sua de�nizione, e sfruttando il fatto che yn = qf (xn), e hq = z si ha che

yn = yn−1 + zyn (19)

La soluzione numerica ricavata da questa relazione di ricorrenza è yn = (1− z)−n y0, ed è limitata se esolo se |1− z| > 1.Come già detto, una proprietà molto utile dei metodi di integrazione, è che qualora la soluzione esattasia convergente (tenda a zero per n→∞) anche la soluzione numerica lo sia. Questo vuol dire richiedereche la regione di stabilità per un metodo numerico ricopra tutto il z semipiano sinistro. I metodi chesoddisfano tale requisito sono detti A-stabili. Tra questi compare il metodo di Eulero implicito, mentrequello esplicito al contrario ricopre solo una piccola porzione del semipiano complesso. La richiesta diquesta ampia zona di stabilità non è solo una semplice formalità. Ci equazioni di�erenziali particolari,dette sti�, che per poter essere risolte numericamente, necessitano di algoritmi molto stabili.

4 Sti�ness

In analisi numerica, si parla di equazioni sti� ( rigide ) quando molti metodi numerici si rivelano numeri-camente instabili, a meno di non prendere un passo h estremamente piccolo [4]. Ad oggi una de�nizioneprecisa di questo fenomeno non esiste, ma si manifesta frequentemente qualora nella soluzione esatta sianopresenti scale di variazioni molto diverse. Si consideri come semplice esempio un oscillatore armonicosmorzato descritto da:

x′ (t) = v , v′ (t) = − 1m

(γv + kx)

O più succintamente in forma matriciale

(x′

v′

)=(

0 1− km − γ

m

)·(xv

)

R′ = AR

Le diverse scale di tempi coinvolte in questo sistema si possono vedere disaccoppiando le equazioni

nei modi normali. Si può mostrare che gli autovalori della matrice A sono q1,2 = −γ∓√γ2−4km

2m . Siindichi con Λ la matrice degli autovalori e con S quella degli autovettori. La matrice A può esserediagonalizzata A = SΛS−1 e de�nendo i modi normali Y ≡ S−1R il sistema di equazioni di�erenzialiviene disaccoppiato:

Y ′ = ΛY

ovvero

6

Page 9: METODI MULTISTEP PER L'INTEGRAZIONE NUMERICA … oppure tridimensionale ... Ogni cellula viene descritta come un piccolo sistema a sé stante, ... pertanto bisogna costruire algoritmi

y′1 = q1y1 , y′2 = q2y2

Queste equazioni hanno soluzioni di tipo esponenziale, con un tempo caratteristico determinato dal-l'autovalore. Se si scelgono ad esempio valori dei parametri tali che γ � km, ad esempio γ = 104 ek = m = 1, cioè con un forte smorzamento della velocità, si ha che q1 = −104 e q2 = −10−4. Le duesoluzioni esponenziali per i modi normali variano dunque su scale di tempi molto diverse e dunque sonoequazioni sti�. Si può provare a risolvere le equazioni dell'oscillatore con metodi di Eulero esplicito eimplicito di cui qui di seguito vengono riportati i gra�ci delle soluzioni numeriche.

Figura 2: Soluzione numerica per l'oscillatore smorzato per i metodi di Eulero esplicito (a sinistra) eimplicito (a destra).

2 4 6 8 10 12 14t

-5

-4

-3

-2

-1

0

1xHtL

10 000 20 000 30 000 40 000 50 000 60 000t

0.1

0.2

0.3

0.4

0.5

xHtL

Si può vedere come solo il metodo di Eulero implicito ha un comportamento che approssima correttamentela soluzione, mentre il metodo esplicito non converge, pur avendo scelto un passo di integrazione di 4ordini di grandezza più piccolo di quanto utilizzato dal metodo implicito.La di�erenza di comportamento è spiegabile in termini di A-stabilità. Il parametro q (riprendendo lanotazione della precedente sezione) può essere ciascuno dei due autovalori della matrice A che descriveil sistema di equazioni di�erenziali. Il metodo implicito possiede una regione di stabilità che si estendesu tutto il semipiano sinistro e quindi per tutti gli autovalori con parte reale negativa. Il metodoesplicito invece per garantire la stabilità richiede |1 + hq| < −1 per essere stabile, cioè una regioneche non si estende di molto nella parte sinistra del piano z. Nel caso studiato, per poter garantirecontemporaneamente 1 + hq1 < −1 e 1 + hq2 < −1, bisogna scegliere h < 2 · 10−4. Quindi mentre ilmetodo implicito è stabile per tutti i valori di h, il metodo esplicito richiede passi di integrazione moltopiccoli per poter convergere. In casi più complicati come sistemi non lineari, dove non si conosce a prioriil comportamento della soluzione, un metodo instabile può portare a risultati completamente errati.

5 Comportamento asintotico del modello bio�sico

Esaminiamo ora nel dettaglio le equazioni di�erenziali che devono essere integrate [3].Si espande l'equazione (5) di mextra per piccoli valori di massa, cioè nella regione asintotica, tenendopresente che Vin � Vextra e si trova:

dmextra

dt≈ −

(vmax,1VextraK1

+DS

Vextra∆

)mextra +

DS

∆[Genv] (20)

Utilizzando i dati dei parametri dalla tabella, si trova che la soluzione di questa equazione è del tipo:

mextra (t) ∼ A+B exp (−t/τ) (21)

Dove τ ≈ 6 · 10−5s. Si può notare che questo tempo caratteristico molto corto è determinato principal-mente dal coe�ciente di di�usione e dai piccoli volumi in cui di�ondono le molecole.

7

Page 10: METODI MULTISTEP PER L'INTEGRAZIONE NUMERICA … oppure tridimensionale ... Ogni cellula viene descritta come un piccolo sistema a sé stante, ... pertanto bisogna costruire algoritmi

Si procede nello studio approssimando anche l'equazione (4) per min per piccoli valori di massa allostesso ordine di quanto fatto per mextra.

dmin

dt≈ −vmax,1

VinK1min (22)

Questa equazione ha soluzione esponenziale di tipo exp (−t/τ), dove stavolta il tempo caratteristicoτ ≈ 225s.Dunque le scale di tempi variano su ordini di grandezza e pertanto le equazioni di�erenziali che si stannostudiando sono sti�.Nel semplice modello considerato i parametri sono �ssati e si hanno le scale di tempi mostrate. Nellasimulazione più complessa di sferoidi tumorali c'è una vasta gamma di tempi caratteristici, i quali possonoe�ettivamente variare su dodici ordini di grandezza [3].La ricerca di algoritmi stabili è così necessaria per la simulazione del modello bio�sico per garantireche le equazioni di�erenziali possano essere sempre integrate senza causare risultati che divergono dallavera soluzione o addirittura non �sici. Inoltre, se si utilizzano metodi stabili, si può allungare il passodi integrazione h, riducendo l'accuratezza numerica (trascurabile in confronto agli aspetti stocastici delproblema) ma senza causare problemi sulla convergenza della soluzione, e ciò si traduce in meno calcolida eseguire durante una simulazione e una maggiore e�cienza.Una prima classe di algoritmi che sembrano bene prestarsi all'integrazione delle equazioni di�erenzialidel modello è appunto il metodo di Eulero implicito. In secondo luogo si potrebbe provare lo studio dialgoritmi di Runge Kutta impliciti, che possano garantire le proprietà di stabilità. Tuttavia l'implemen-tazione di schemi di calcolo impliciti di questo tipo è complessa e non vantaggiosa dal punto di vista die�cienza.Si presentano invece con caratteristiche migliori i metodi multistep, non così largamente di�usi come imetodi di Runge Kutta ma che sembrano bene prestarsi all'integrazione di sistemi su larga scala. Infattiquesta tipologia di algoritmi evita una grossa quantità di calcoli sfruttando i valori dei punti calcolatiprecedentemente per trovare il passo successivo, e può essere molte volte più veloce di un algoritmo diRunge Kutta. Nasce così l'esigenza di approfondire la classe dei metodi di integrazione multistep.

6 Metodi multistep

I primi a proporre l'utilizzo di valori dei punti o di derivate di passi precedenti furono contemporanea-mente Bashforth e Adams nel 1883 e tale idea fu in seguito sviluppata da Moulton, Nystroem e Milnenegli anni 1920 [4]. L'implementazione predictor - corrector dei metodi multistep, modo in cui vengonopiù comunemente utilizzati, venne introdotta proprio da Milne, assieme alle prime tecniche di controllodell'errore. La moderna formulazione di questi metodi che qui viene riassunta fu sviluppata in largaparte da Dahlquist solamente negli anni '60.I primi algoritmi ad essere sviluppati, particolarmente di�usi per la soluzione di comuni equazioni dif-ferenziali sono i metodi espliciti di Adams-Bashforth, in cui la soluzione approssimata yn può esseretrovata per mezzo dell'espressione:

yn = yn−1 + h (β1f (xn−1, yn−1) + β2f (xn−2, yn−2) + . . .+ βkf (xn−k, yn−k)) (23)

Un secondo tipo di algoritmi, questa volta impliciti, sono quelli di Adams-Moulton, che sono de�niti da:

yn = yn−1 + h (β0f (xn, yn) + β1f (xn−1, yn−1) + . . .+ βkf (xn−k, yn−k)) (24)

Il termine che coinvolge f (xn, yn) fa sì che la soluzione yn sia de�nita implicitamente dall'equazione eciò complica l'applicazione di questo tipo di algoritmi.I coe�cienti βn vanno scelti in maniera tale da massimizzare l'ordine p del metodo, dove per ordine p siintende che la soluzione numerica di�erisce localmente dalla soluzione vera per un errore di O (hp). Inseguito verrà spiegata la derivazione dei coe�cienti.I metodi di Adams sono un caso particolare di metodi multistep senza dipendenza esplicita dai puntiyn−1, yn−2, . . . , yn−k. Si possono generalizzare tali metodi e de�nirli con la formula seguente:

8

Page 11: METODI MULTISTEP PER L'INTEGRAZIONE NUMERICA … oppure tridimensionale ... Ogni cellula viene descritta come un piccolo sistema a sé stante, ... pertanto bisogna costruire algoritmi

yn = α1yn−1 + α2yn−2 + . . .+ αkyn−k

+ h (β0f (xn, yn) + β1f (xn−1, yn−1) + . . .+ βkf (xn−k, yn−k)) (25)

Un caso particolare di questa ultima formula è la Backward Di�erentiation Formula, che verrà indicatasemplicemente con BDF, introdotta negli anni '60 da Gear [5].

yn = α1yn−1 + α2yn−2 + . . .+ αkyn−k + hβ0f (xn, yn) (26)

Per capire meglio il funzionamento dei metodi multistep si possono studiare i metodi di Adams, i qualisono solitamente implementati nella forma predictor-corrector. Per chiarire questo concetto si suppon-ga di voler costruire un algoritmo di ordine 2. Un primo passo di integrazione (Predict) è realizzatoutilizzando il metodo esplicito di ordine 2 di Adams-Bashforth.

y′n = yn−1 + h

(32f (xn−1, yn−1)− 1

2f (xn−2, yn−2)

)(27)

Una volta trovato esplicitamente il valore di y′n si passa a valutare (Evaluate) il valore di f in y′n.Utilizzando questo valore della derivata si corregge yn (Correct) sfruttando f (y′n) nell'algoritmo di AdamsMoulton, al posto di f (yn), aggirando così la di�colta che sorge nell'utilizzo di un metodo implicito,ovvero:

yn = yn−1 + h

(12f (xn, y′n) +

12f (xn−1, yn−1)

)(28)

Questa procedura viene anche indicata come PEC (Predict Evaluate Correct).Se a questi passaggi si aggiunge un ulteriore valutazione della f , che verrà utilizzata negli step successivial posto di f (xn−1, yn−1), lo schema viene detto PECE (Predict Evaluate Correct Evaluate).Ovviamente si possono reiterare questi passaggi di correzione e, se si ripete k volte la procedura questimetodi vengono generalmente indicati con P (EC)k o P (EC)k E.Per un metodo multistep di ordine k (dove k ora indica il numero di passi con cui si utilizza la for-mula), bisogna inizializzare i primi k − 1 passi, poichè non si conoscono tutti i valori della f nei puntix−(k−1), x−(k−2), . . . , x−1, necessari per utilizzare l'algoritmo. Si può implementare l'inizializzazione invari modi. Una delle cose più semplici da fare è usare metodi multistep di ordine inferiore, a partiredal metodo di Eulero (che non richiede passi precedenti), e via via aumentando l'ordine k del metodo.Così facendo però si perde il controllo sull'errore locale e si devono aspettare molti passi prima di avereun'andamento dell'errore pari a quello del metodo usato.Un altro procedimento è usare metodi di altro tipo, ad esempio di Runge - Kutta, per calcolare i primipunti, ma così facendo si è costretti a usare metodi diversi dai multistep.Un terzo metodo più elegante è quello di sfruttare procedimenti iterativi. Date le condizioni inizialix0, f (x0, y0), si considerano i punti x−(k−1), x−(k−2), . . . , x−1, e si assegna alla corrispettiva f il valoref (x0, y0). Quindi si può utilizzare il metodo multistep di ordine k e una volta trovata la soluzione �no alpunto xk si inverte il senso di integrazione (semplicemente usando −h) e si ricalcolano i valori dei punti�no a x−(k−1). Si reitera questa operazione �nchè i valori dei punti convergono.Quest'ultimo metodo sembra essere il più elegante e permette di usare sempre lo stesso algoritmo anchein fase di inizializzazione. Purtroppo, nelle equazioni di�erenziali in esame, la sti�ness fa sì che taleprocedimento converga a punti diversi da quelli esatti, rendendosi così inutilizzabile.Nella simulazione che verrà descritta in seguito è stato scelto il primo metodo preferendo così utilizzaresolamente i metodi multistep.

7 Derivazione dei coe�cienti e ordine del metodo

Si introducono due nuove grandezze, i polinomi α e β, de�niti da:

α (z) = 1− α1z − α2z2 − ...− αkzk (29)

β (z) = β0 + β1z + β2z2 + ...+ βkz

k (30)

9

Page 12: METODI MULTISTEP PER L'INTEGRAZIONE NUMERICA … oppure tridimensionale ... Ogni cellula viene descritta come un piccolo sistema a sé stante, ... pertanto bisogna costruire algoritmi

Sfruttando le nuove de�nizioni, il metodo multistep è univocamente determinato dai due polinomi checontengono i valori dei coe�cienti αi, βi. Si può anche riscrivere l'algoritmo multistep, ad α e β �ssati,in una forma più compatta:

y (xn)−k∑i=1

αiy (xn−i)−k∑i=0

βihy′ (xn−i) = 0 (31)

Ora ci si propone di trovare i valori dei coe�cienti in modo tale da trovare un metodo di ordine p, dovecioè l'errore locale è dell'ordine di p.L'unica richiesta necessaria è la di�erenziabilità della funzione, che nel caso del sistema biologico che sista studiando è garantita. Quindi si può sviluppare l'equazione (31) in serie di Taylor, trovando:

C0y (xn) + C1hy′ (xn) + . . .+ Cph

py(p) (xn) + Cp+1hp+1y(p+1) (xn) = 0 (32)

Per garantire che il metodo sia di ordine p bisogna imporre che i coe�cienti C0, . . . , Cp siano nulli. Lacostante Cp+1 invece può essere utilizzata per dare una stima dell'errore. Per questi coe�cienti valgonoi seguenti teoremi [4]:

Teorema 1 Le costanti C0, . . . , Cp sono date da

α(

exp (−z))− zβ

(exp (−z)

)= C0 + C1z + C2z

2 + . . . (33)

La dimostrazione di questo teorema può essere trovata semplicemente espandendo gli esponenziali inserie di Taylor e confrontando il risultato con l'espansione di Taylor dell'algoritmo multistep (per ladimostrazione vedere l'appendice B). Sfruttando la richiesta che i coe�cienti C0, . . . , Cp siano nulli eoperando una sostituzione t→ −z, si ricava immediatamente che:

Teorema 2 Un metodo multistep ha ordine p se

α(

exp (t))

+ tβ(

exp (t))

= O(tp+1

)(34)

Con una seconda sostituzione exp (t)→ (1 + u)−1, ovvero t→ − log (1 + u), e ricordando che lo sviluppoin serie del logaritmo è log (z) = z − z2/2 + z3/3 + . . . , si può riscrivere la formula precedente come

α(

(1 + u)−1)− log (1 + u)β

((1 + u)−1

)= O

(up+1

)(35)

Ancora si può operare una sostituzione (1 + u)−1 → (1 + z) e dividendo l'equazione per log (1 + z) siottiene il seguente risultato:

Teorema 3 Un metodo multistep ha ordine p se

z

log (1 + z)α (1 + z)

z+ β (1 + z) = O (zp) (36)

Ora si hanno a disposizione gli strumenti per ricavare esplicitamente i valori dei coe�cienti.Ad esempio si può trattare il caso del metodo di Adams-Moulton. Il polinomio α (z) è �ssato dallade�nizione del metodo e vale 1− z. Si esplicita β (1 + z) dalla formula (36) e così si trova:

β (1 + z) =1

1− 12z + 1

3z2 − 1

4z3 + . . .

= 1 +12z − 1

12z2 +

124z3 − 19

720z4 +

3160

z5 − 86360480

z6 + . . . (37)

Se si vuole trovare un metodo di ordine p, bisogna troncare l'espansione al termine zp. Ad esempio perp = 2:

β (1 + z) = 1 +12z (38)

10

Page 13: METODI MULTISTEP PER L'INTEGRAZIONE NUMERICA … oppure tridimensionale ... Ogni cellula viene descritta come un piccolo sistema a sé stante, ... pertanto bisogna costruire algoritmi

Ciò signi�ca che

β (z) =12

+12z (39)

E quindi β0 = β1 = 12 sono i coe�cienti del metodo detto anche trapezoidale.

I metodi BDF sono un'importante sottoclasse dei metodi multistep in cui viene �ssato β = β0. Inmaniera simmetrica a quanto fatto precedentemente, si ricava α (z) dalla formula (36) e lo si espandein serie di Taylor. Qui per ricavare esplicitamente i valori dei coe�cienti e di β0 bisogna imporre unacondizione aggiuntiva, cioè che α (0) = 1.Nelle tabelle (2),(3) vengono riportati i valori dei coe�cienti di alcuni metodi multistep.

Tabella 2: Coe�cienti per i metodi di BDF

k α1 α2 α3 α4 α5 α6 β0

1 1 1

2 43 − 1

323

3 1811 − 9

11211

611

4 4825 − 36

251625 − 3

251225

5 300137 − 300

137200137 − 75

13712137

60137

6 12049 − 150

49400147 − 75

492449 − 10

1472049

Tabella 3: Coe�cienti per i metodi di Adams Moulton

k β0 β1 β2 β3 β4 β5 β6

1 12

12

2 512

23 − 1

12

3 38

1924 − 5

24124

4 251720 − 323

360 − 1130

53360 − 19

720

5 95288

14271440 − 133

240241720 − 173

14403

160

6 1908760480

27132520 − 15487

20160586945 − 6737

201602632520 − 275

24192

I coe�cienti possono anche essere ricavati con un altro procedimento, basato sull'interpolazione polino-miale di Lagrange. Dati N punti si può costruire un polinomio P (x) di grado N − 1 che li interpola. Sipuò dimostrare che tale polinomio è:

P (x) =N∑j=1

yj∏k 6=j

x− xkxj − xk

(40)

Nel caso di punti equispaziati, come nel caso che si sta studiando, si può sempli�care la formula scrivendoxk = kh.

P (x) =N∑j=1

yj∏k 6=j

x− kh(j − k)h

(41)

Ora si consideri una generica equazione di�erenziale:

y′ (x) = f (x, y) , y (x0) = y0 (42)

11

Page 14: METODI MULTISTEP PER L'INTEGRAZIONE NUMERICA … oppure tridimensionale ... Ogni cellula viene descritta come un piccolo sistema a sé stante, ... pertanto bisogna costruire algoritmi

La soluzione esatta su un intervallo di tempo è data integrando l'equazione

yn+1 − yn =∫ xn+1

xn

f (x, y) dx (43)

Nel metodo esplicito di Adams - Bashforth si conoscono gli N valori precedenti, per cui si può costruireun'approssimazione polinomiale della f (x, y).

f (x, y) ≈N−1∑j=0

fn−j∏k 6=j

x− xn−kxn−j − xn−k

(44)

quindi

yn+1 − yn ≈∫ xn+1

xn

N−1∑j=0

fn−j∏k 6=j

x− xn−kxn−j − xn−k

dx

=N−1∑j=0

fn−j

∫ xn+1

xn

∏k 6=j

x− xn−kxn−j − xn−k

dx. (45)

Per sempli�care la trattazione si mostra qui solo il caso N = 2, per cui

f (x, y) ≈ P (x) = fnx− xn−1

xn − xn−1+ fn−1

x− xnxn−1 − xn

(46)

Inoltre i punti sono equispaziati, quindi:

yn+1 − yn =∫ xn+1

xn

f (x, y)dx

≈∫ xn+1

xn

(fnx− xn−1

h+ fn−1

x− xnh

)dx

= fn

12

(x2n+1 − x2

n

)− xn−1 (xn+1 − xn)h

− fn−1

12

(x2n+1 − x2

n

)− xn (xn+1 − xn)h

= fn

h2 (xn+1 + xn)− xn−1h

h− fn−1

h2 (xn+1 − xn)− xnh

h

= fn

(xn+1 + xn

2− xn−1

)− fn−1

(xn+1 + xn

2− xn

)=

32fnh−

12fn−1h (47)

Così si è trovato il metodo di Adams Bashforth di secondo ordine. Similmente si possono ricavarei coe�cienti per i metodi di ordine superiore. Per quanto riguarda il metodo implicito di Adams -Moulton bisogna includere nell'approssimazione polinomiale anche il punto successivo.

f (x, y) ≈N−1∑j=0

fn+1−j∏k 6=j

x− xn+1−k

xn+1−j − xn+1−k(48)

A parte questa di�erenza, si possono ripetere i ragionamenti precedenti e ricavare così i coe�cienti per ilmetodo implicito. Questa trattazione, sebbene sia più semplice, non permette però di trovare i coe�cientiper metodi multistep qualsiasi, tra i quali i metodi BDF.

12

Page 15: METODI MULTISTEP PER L'INTEGRAZIONE NUMERICA … oppure tridimensionale ... Ogni cellula viene descritta come un piccolo sistema a sé stante, ... pertanto bisogna costruire algoritmi

8 Regioni di stabilità

Analogamente a quanto visto per il metodo di Eulero, si possono cercare le regioni di stabilità dei metodimultistep [4], ricorrendo all'usuale equazione di�erenziale di prova:

y′ (x) = qy (x) (49)

Si esamina ora nel dettaglio un metodo, per poi poter generalizzare il procedimento; ad esempio si puòstudiare il metodo di Adams-Bashforth di ordine 2:

yn = yn−1 + h32f (xn−1, yn−1)− h1

2f (xn−2, yn−2) (50)

Considerando l'equazione di prova e ponendo hq = z si ha

yn =(

1 +32z

)yn−1 −

12z (51)

Si cercano soluzioni del tipo yn = wn, per cui questa equazione ha soluzioni limitate quando il polinomioin w associato all'equazione (51)

w2 −(

1 +32z

)w +

12z = 0 (52)

ha entrambi gli zeri nella circonferenza unitaria ( |w| < 1 ), o, qualora le radici coincidano, al suo interno.A questo punto si può già disegnare la regione di stabilità, che viene mostrata in �gura (3), come il luogodei punti z, per cui w è all'interno del disco unitario ( |w| < 1 ).

Figura 3: La regione di stabilità per il metodo di Adams Bashforth di ordine 2.

-2 -1 0 1 2

-2

-1

0

1

2

Si può notare immediatamente che questo metodo non è A-stabile. In generale questo accade per ognimetodo multistep esplicito, quindi per la ricerca di un metodo multistep adatto a risolvere le equazionisti�, bisognerà rivolgere l'attenzione soprattutto verso i metodi impliciti.Ora si può generalizzare questa procedura a un generico metodo multistep. Considerando l'equazionedi�erenziale di prova, l'algoritmo multistep generico diventa:

(1− zβ0) yn − (α1 − zβ1) yn−1 − (α2 − zβ2) yn−2 − ...− (αk − zβk) yn−k (53)

Come prima bisogna considerare il polinomio associato all'equazione de�nito da:

13

Page 16: METODI MULTISTEP PER L'INTEGRAZIONE NUMERICA … oppure tridimensionale ... Ogni cellula viene descritta come un piccolo sistema a sé stante, ... pertanto bisogna costruire algoritmi

α(w−1

)− zβ

(w−1

)= 0 (54)

Allora z sarà un punto della regione di stabilità se le radici dell'equazione (54) sono entrambe all'internocirconferenza unitaria. In altre parole, questo signi�ca che se w è al di fuori della circonferenza unitaria,allora z non è nella regione di stabilità. Per valutare i punti della regione di stabilità conviene prima ditutto mappare i punti w sulla circonferenza unitaria, ovvero disegnare la curva

w →α(w−1

)β (w−1)

(55)

dove w = exp (iθ) con θ ∈ [0, 2π]. Questa curva divide il piano complesso z in due zone e la regione distabilità è quella che corrisponde ai punti w interni alla circonferenza unitaria. Per individuarla bisognaricordare che la curva w (θ) lascia alla sua sinistra l'interno della circonferenza unitaria e di conseguenzaè la regione alla sinistra della curva tracciata. Questa procedura è detta boundary locus method [4].Le regioni di stabilità per alcuni metodi sono mostrate in �gura (4) e sono disegnate seguendo la proceduradescritta.

Figura 4: La regione di stabilità per il metodo di Adams Moulton (ord. 2), BDF (ord. 2), BDF (ord. 3)e Adams Moulton (ord. 4).

-2 -1 0 1 2

-2

-1

0

1

2

-4 -2 0 2 4

-4

-2

0

2

4

Α

-3 -2 -1 0 1 2 3

-3

-2

-1

0

1

2

3

-4 -2 0 2 4

-4

-2

0

2

4

14

Page 17: METODI MULTISTEP PER L'INTEGRAZIONE NUMERICA … oppure tridimensionale ... Ogni cellula viene descritta come un piccolo sistema a sé stante, ... pertanto bisogna costruire algoritmi

Non è un caso che solo i metodi multistep impliciti di ordine 2 siano A-stabili, ciò è dovuto alle cosiddettebarriere di Dahlquist [4]. Infatti la A-stabilità è una richiesta molto stringente per i metodi multisteped è una caratteristica che verrà descritta nel prossimo paragrafo. Sono quindi stati scelti per l'im-plementazione anche algoritmi non A-stabili, ma che abbiano in ogni caso regioni di stabilità moltoestese.I metodi BDF si presentano con alcune buone caratteristiche. Sebbene i metodi di ordine superiore alsecondo non siano A-stabili, presentano un'altra caratteristica, la A(α) stabilità. Con questa proprietàla regione di stabilità non ricopre tutto il semipiano, ma si estende su una regione illimitata di aperturaangolare α rispetto all'origine, come si può vedere in �gura (4). Anche questa caratteristica è utile nelcaso di problemi sti�, poichè per garantire la stabilità del metodo è cruciale che la regione di stabilità siestenda sia nella regione più a sinistra del piano, cioè là dove si veri�cano le variazioni più brusche dellasoluzione, sia nei pressi dell'origine, dove una soluzione tende lentamente a un valore di equilibrio.

9 Barriere di Dahlquist

Approfondendo il problema della sti�ness, Dahlquist (1956) [6] dimostrò un risultato noto come secondabarriera di Dahlquist, riguardante la proprietà della A-stabilità.

Teorema 4 Un metodo multistep A-stabile non può avere ordine p maggiore di 2.

Questo teorema dà una limitazione forte ai metodi multistep, in contrasto con i metodi A-stabili diRunge Kutta che invece possono essere di ordine arbitrario. Dunque gli algoritmi multistep più stabilisono i metodi di ordine al massimo 2.La prima barriera di Dahlquist [6], che qui si riporta per completezza, a�erma che per un metodomultistep di ordine p, che utilizza k passi precedenti, allora p ≤ k+ 1 per k dispari, p ≤ k+ 2 per k pari.

10 Scelta degli algoritmi e loro costruzione

Dagli studi sulla sti�ness delle equazioni, ci si aspettano risultati migliori dall'uso di algoritmi implic-iti. Tali metodi però richiedono ad ogni passo di integrazione un numero maggiore di calcoli e sonoquindi molto dispendiosi da un punto di vista di e�cienza. Per avere una conferma numerica dell'im-postazione teorica e per controllare se sia possibile evitare una mole maggiore di calcolo sono stati perciòimplementati due algoritmi espliciti, il metodo Predictor Corrector (PC) e il metodo esplicito di Eulero.La computazione di un metodo implicito nella forma (31), come già suggerisce il nome, richiede di estrarredalla formula il valore del passo successivo. Data la complessità delle equazioni, per poter estrarre talevalore non si può procedere in maniera analitica ma si deve ricorrere all'uso di un algoritmo iterativo diricerca degli zeri. La costruzione di tali algoritmi può essere molto complicata a seconda della velocitàdi convergenza che si vuole ottenere.Uno dei più semplici ma e�caci è il metodo delle secanti [7]. Sia g (t) la funzione di cui si deve cercarela radice. Partendo da due punti tn e tn−1, si costruisce la retta passante per i punti (tn−1, g (tn−1)) e(tn, g (tn)). Da semplici considerazioni di geometria analitica, l'equazione di tale retta è

y − g (tn) =g (tn)− g (tn−1)

tn − tn−1(t− tn) (56)

Di questa equazione, si cerca la sua radice, ovvero il valore tn+1 in cui la y si annulla, e quindi si reiterail procedimento �no alla convergenza. La formula che si deve implementare è dunque:

tn+1 = tn −tn − tn−1

g (tn)− g (tn−1)g (tn) (57)

Si può dimostrare che tale metodo converge se i punti iniziali sono scelti su�cientemente vicini allo zero,e, sotto le ipotesi di di�erenziabilità della funzione (qui rispettate), vi converge con ordine di circa 1.63.Tale metodo ha il pregio di evitare il calcolo esplicito di una derivata, cosa che sarebbe ine�ciente daimplementare sia per via analitica, data la complessa forma delle equazioni, sia numericamente, in cuitale calcolo farebbe perdere molte cifre signi�cative o ancora aumentare il numero di calcoli necessari.

15

Page 18: METODI MULTISTEP PER L'INTEGRAZIONE NUMERICA … oppure tridimensionale ... Ogni cellula viene descritta come un piccolo sistema a sé stante, ... pertanto bisogna costruire algoritmi

I punti iniziali devono essere scelti in maniera opportuna e si è scelto di utilizzare per t0 il punto giàcalcolato all'istante precedente, e un nuovo punto per t1 trovato con un metodo multistep esplicito dellostesso ordine di quello utilizzato.Da quanto osservato sperimentalmente, il metodo delle secanti, pur nella sua semplicità, converge a unvalore esatto a 16 cifre signi�cative già dopo una decina di iterazioni e quindi si rivela e�ciente.Avendo a disposizione tale algoritmo si possono immediatamente implementare i metodi multistep. L'u-nica di�erenza tra i vari algoritmi è la de�nizione della g (t) e la costruzione dei punti iniziali. Si puòquindi costruire gli algoritmi di Eulero implicito e della famiglia dei metodi Adams - Moulton e BDF,dall'ordine più basso (2) �no all'ordine 6. Oltre è sconsigliabile procedere poiché i metodi multistep, giàprivi della proprietà di A-stabilità, non possiedono più regioni di stabilità adatte.L'inizializzazione di un metodo multistep richiede modi�che particolari rispetto al resto dell'algoritmo,e si potrebbe ricorrere a metodi ad esempio di Runge - Kutta impliciti. La scelta fatta invece è stataquella di rimanere nell'ambiente dei metodi multistep utilizzando metodi di ordine via via crescente, apartire da Eulero implicito, che richiede solamente un punto iniziale per funzionare.Nella famiglia dei metodi di Adams-Moulton (AM) l'inizializzazione è fatta utilizzando sempre metodi diAM ma di ordine inferiore, e lo stesso per i metodi BDF. Ovviamente i metodi di ordine 2 hanno richiestosolo un passo di inizializzazione con Eulero implicito. I metodi di ordine superiore a 2 permettono diversescelte: ad esempio per BDF di ordine 4 sono necessari 3 passi per inizializzare e quindi si può sceglieretra:

• Eulero, Eulero, Eulero

• Eulero, BDF di ordine 2, BDF di ordine 2

• Eulero, BDF di ordine 2, BDF di ordine 3

Tale procedura fa perdere la stretta dipendenza dell'errore dall'ordine del metodo, ma se si controllanoi risultati numerici della soluzione, si può vedere che le di�erenze tra i vari tipi di inizializzazione siannullano alle cifre signi�cative già dopo una decina di passi.

11 Implementazione dell'Algoritmo

Si può ora discutere nel dettaglio come viene implementato l'algoritmo di simulazione, scritto in lin-guaggio C. Ci si è attenuti a un principio di programmazione modulare, cioè separare il programma invari pezzi il più possibile distinti gli uni dagli altri. Il vantaggio di questa procedura è che se si vuolecambiare l'inizializzazione dell'algoritmo o cambiare l'algoritmo di integrazione, si deve intervenire soloin una parte ben speci�ca del programma con un guadagno di versatilità.Si costruisce il programma seguendo una struttura gerarchica partendo dal programma principale (main)il quale chiama le diverse parti dell'algoritmo. Il main contiene solamente:

• dichiarazione delle variabili

• inizializzazione dell'algoritmo multistep

• avanzamento nel tempo e chiamata alla funzione di integrazione

• operazioni ausiliarie come il salvataggio dei dati su �le

Il metodo multistep cambia da programma a programma, e quindi è risultato conveniente descriverlo inun blocco separato. Qui per semplicità ci si riferisce alla funzione di integrazione con il metodo di Euleroimplicito, 'Eulero'. Anche la f (x, y) viene calcolata in un blocco separato dalla omonima funzione 'f',per poter permettere eventuali modi�che delle equazioni di�erenzili. Ad Eulero vengono passati comeargomento le variabili necessarie al calcolo, dopodiché la funzione è strutturata nel seguente modo:

• La prima operazione che esegue è calcolare i punti per l'inizializzazione del metodo delle secanti,attraverso metodi di integrazione esplicita.

• Dopo sfrutta il metodo delle secanti per trovare l'approssimazione per il passo successivo xn.

16

Page 19: METODI MULTISTEP PER L'INTEGRAZIONE NUMERICA … oppure tridimensionale ... Ogni cellula viene descritta come un piccolo sistema a sé stante, ... pertanto bisogna costruire algoritmi

• Finchè l'errore è maggiore di un numero arbitrario, reitera il procedimento �no a convergenza, doveper errore si intende l'errore relativo sulla di�erenza tra le successive iterazioni 2 |xn−xn−1|

|xn|+|xn−1| .

• terminato l'algoritmo delle secanti aggiorna i punti di integrazione precedenti ai nuovi valori trovati.

Per gli algoritmi multistep di ordine superiore è stata mantenuta la stessa struttura delle funzioni. Gliunici cambiamenti stanno nel diverso numero di variabili, poiché i multistep di ordine superiore richiedonola memorizzazione di più punti precedenti. Anche il metodo delle secanti va modi�cato leggermente,nella costruzione del punto iniziale e nella de�nizione delle equazioni da cui estrarre la radice. Il codicecompleto per il programma che utilizza il metodo BDF di ordine 2 è riportato in appendice A.

12 Distribuzione di intervalli casuali

L'implementazione di intervalli di tempo di ampiezza casuale richiede dei generatori di numeri casuali oper meglio dire pseudo-casuali, poichè si tratta di algoritmi deterministici.Il primo oggetto necessario è un generatore di numeri interi, per cui si può utilizzare la funzione rand(),funzione implementata nello standard ANSI C. Essa restituisce un numero intero compreso nell'intervallocompreso tra [0,Rand Max = 32767].Avendo a disposizione questo generatore di numeri interi, si può ottenere facilmente un generatore dinumeri reali nell'intervallo (0, 1), semplicemente implementando:

(double)rand()(double)Rand Max + (double)1

(58)

dove (double) converte un numero nella rappresentazione a 64 bit. Da questo generatore si può basarela costruzione di un generatore di numeri distribuiti normalmente. È stato scelto l'algoritmo di Box -Müller, che permette di calcolare coppie di punti distribuiti normalmente, e che ora verrà spiegato neldettaglio.Siano x1 e x2 due numeri distribuiti uniformemente nell'intervallo (0, 1) e con y1 e y2 le quantità de�nitedalla seguente trasformazione di x1 e x2 rispettivamente:

y1 =√−2 log x1 cos (2πx2) y2 =

√−2 log x1 sin (2πx2) (59)

Invertendo le due relazioni si trova:

x1 = exp(−1

2(y2

1 + y22

))x2 =

12π

arctan(y2

y1

)(60)

Calcolando il determinante dello jacobiano si trova facilmente:∣∣∣∣∂ (x1, x2)∂ (y1, y2)

∣∣∣∣ = −(

1√2π

exp(−y

21

2

))(1√2π

exp(−y

22

2

))(61)

È un prodotto di due funzioni in cui vengono separate le variabili y1 e y2, da cui si può vedere che essesi distribuiscono secondo la distribuzione normale.Un ulteriore modi�ca che si può apportare al modello è quella di passare a coordinate polari per evitare ilcalcolo delle funzioni trigonometriche. Mentre x1 e x2 sono scelti come due punti all'interno del quadrato[0, 1]x[0, 1], ora si considerino due valori v1 e v2 de�niti come le coordinate di un punto distribuitocasualmente all'interno della circonferenza unitaria. Cioè si generano due numeri nell'intervallo [−1, 1]scrivendoli come v1,2 = 2x1,2 − 1 e si controlla che il punto appartenga all'interno della circonferenza,eventualmente scartando i punti che non soddisfano tale requisito.La distanza dall'origine, r2 = v2

1 + v22 , diventa un numero distribuito uniformemente in (0, 1) e che può

essere utilizzato ad esempio al posto di x1, con il vantaggio che ora il coseno può essere scritto come v1r .

Il numero casuale z è quindi dato da :

z =√−2 log x1 cos (2πx2) =

√−2 log r2

(v1√r2

)= v1

√−2 log r2

r2(62)

17

Page 20: METODI MULTISTEP PER L'INTEGRAZIONE NUMERICA … oppure tridimensionale ... Ogni cellula viene descritta come un piccolo sistema a sé stante, ... pertanto bisogna costruire algoritmi

Se ora z è distribuito secondo la distribuzione normale, si può estendere l'algoritmo ad una distribuzioneGaussiana di media a e deviazione standard d, semplicemente dando in uscita il numero a+ v1zd.L'uso della forma polare consente di evitare l'uso di funzioni trigonometriche che sono costose in terminidi calcolo e di sostituirle con una semplice divisione. Tuttavia il metodo scarta tutte le coppie di valoriv1 e v2 che non stanno all'interno della circonferenza unitaria. Si possono fare dei test per vedere quantinumeri vengono scartati e si trova che circa il 27 per cento delle coppie generate vengono scartate perogni numero generato, un termine dovuto alla di�erenza tra le aree del quadrato e della circonferenza.Per questa ragione, se si vogliono generare grandi quantità di numeri casuali è preferibile usare altrialgoritmi, come il metodo a ziggurat, che ne migliorano l'e�cienza, ma per la simulazione in questioneè su�ciente il metodo di Box - Müller.Ora si dispone di tutti gli strumenti necessari per poter implementare variazioni casuali delle masse nellasimulazione. Nel modello proposto gli intervalli di tempo a cui avvengono le variazioni di massa internasono distribuiti secondo la statistica di Poisson. Si può mostrare che se la media della distribuzione diPoisson è un numero molto maggiore di 10, questo tipo di statistica si confonde con una distribuzioneGaussiana in cui la media è uguale alla varianza. Non serve quindi implementare una nuova speci�cadistribuzione e si può utilizzare l'algoritmo per la generazione di numeri Gaussiani. Nelle simulazionidescritte in seguito è stata scelta una media maggiore di 200s e dunque vale l'approssimazione Gaussiana.Anche la deviazione di massa viene generata in modo casuale, ovvero Gaussiano, attorno a uno sposta-mento medio di circa il 15 per cento.L'ultimo accorgimento sugli eventi discontinui di variazione di massa a cui bisogna prestare attenzione,riguarda l'implementazione dell'algoritmo multistep. Se si sta utilizzando un metodo multistep di ordinesuperiore al primo, l'algoritmo richiede l'utilizzo di punti precedenti. Ma la deviazione discontinua dellamassa rende necessaria una nuova inizializzazione dell'algoritmo, che viene fatta in modo coerente conquanto fatto con la prima inizializzazione.

13 Risultati della simulazione

La prima simulazione, eseguita senza l'implementazione delle variazioni casuali di massa, è stata fattascegliendo i valori iniziali come:

min (0) = 0.1[Genv]Vin , mextra (0) = 0.1[Genv]Vextra (63)

Per prima cosa sono stati implementati alcuni algoritmi espliciti per veri�care la teoria; come ci siaspetta, questi metodi non convergono. Ad esempio si può vedere in �gura (5) i risultati della simu-lazione numerica per il metodo di Eulero esplicito per mextra −min: la soluzione che viene tracciata èuna retta crescente. Per confrontare questo risultato si noti che in realtà la di�erenza di massa tendeasintoticamente a una costante.I metodi impliciti rivelano un comportamento migliore come è lecito aspettarsi. Ad esempio con Euleroimplicito, pur nella sua semplicità, la soluzione numerica converge alla soluzione, che viene riportata in�gura (5).

Figura 5: Risultati della simulazione per Eulero esplicito ed Eulero implicito.

0.0002 0.0004 0.0006 0.0008 0.0010tHsL

-4. ´ 10 -17

-3. ´ 10 -17

-2. ´ 10 -17

-1. ´ 10 -17

1. ´ 10 -17

mextra - minH kg L

0.0002 0.0004 0.0006 0.0008 0.0010tHsL

2. ´ 10 -18

4. ´ 10 -18

6. ´ 10 -18

8. ´ 10 -18

mextra - minH kg L

18

Page 21: METODI MULTISTEP PER L'INTEGRAZIONE NUMERICA … oppure tridimensionale ... Ogni cellula viene descritta come un piccolo sistema a sé stante, ... pertanto bisogna costruire algoritmi

Figura 6: Risultati della simulazione per Adams Moulton (ord. 2) e BDF (ord. 6).

0 500 1000 1500 2000tHsL0

1. ´ 10 -16

2. ´ 10 -16

3. ´ 10 -16

4. ´ 10 -16

5. ´ 10 -16minH kg L

0.0002 0.0004 0.0006 0.0008 0.0010tHsL

-5. ´ 10 -17

5. ´ 10 -17

1. ´ 10 -16

mextra - minH kg L

Si può ragionevolmente dire che approssima la soluzione in quanto presenta un'andamento esponenzialecosì come previsto dalle formule (22) e (20) in approssimazione di piccoli valori di massa. Questo fattoconferma l'e�cacia della A-stabilità riguardo al metodo di Eulero implicito.Considerando i metodi BDF si osserva che nessun metodo di ordine superiore al 4◦ converge. Ad esempioè riportato in �gura (6) il risultato divergente della simulazione calcolata con il metodo BDF di ordine 6,dove si può vedere che la soluzione numerica ha un comportamento irregolare. Alcuni di questi algoritmiriescono a convergere, ma solo utilizzando passi di integrazione di molti ordini di grandezza inferiori aquelli utilizzati e quindi impiegando molto più tempo per essere calcolati.I metodi BDF di ordine maggiore di 4 vengono così scartati, mentre i restanti metodi vengono tenutiper essere testati nelle prossime simulazioni. Dei rimanenti si vede che pur provando diversi tipi diinizializzazioni, questi metodi convergono e le di�erenze tra metodi dello stesso ordine spariscono dopopoche decine di passi.La scelta del metodo di inizializzazione quindi non è fondamentale.

I metodi di Adams-Moulton sembrano invece godere di migliori proprietà di convergenza, in quantoconvergono �no all'ordine 6, fatta eccezione per l'ordine 3. Tuttavia se si va ad analizzare più neldettaglio la regione asintotica si può osservare un comportamento oscillatorio smorzato, al posto diuna coda esponenziale come dovrebbe essere la soluzione vera, presente anche se si riduce il passo diintegrazione. Questa proprietà tipica dei metodi Adams Moulton verrà analizzata nel dettaglio nellaprossima sezione.Per la seconda simulazione sono stati scelti valori iniziali maggiori, in modo da poter osservare dellevariazioni più grandi nella soluzione:

19

Page 22: METODI MULTISTEP PER L'INTEGRAZIONE NUMERICA … oppure tridimensionale ... Ogni cellula viene descritta come un piccolo sistema a sé stante, ... pertanto bisogna costruire algoritmi

Figura 7: Confronto tra i metodi BDF (ord. 2) ed Eulero.

0 500 1000 1500 2000tHsL0

1. ´ 10 -16

2. ´ 10 -16

3. ´ 10 -16

4. ´ 10 -16

5. ´ 10 -16minH kg L

BDF

Eulero

min (0) = 0.9[Genv]Vin , mextra (0) = 0.1[Genv]Vextra (64)

La scelta di valori di massa più lontani dall'equilibrio accentua la sti�ness delle equazioni. Infatti dairisultati di questa seconda simulazione bisogna scartare tutti i metodi di ordine superiore al 2, i qualinon convergono. Rimangono così solamente 3 algoritmi a�dabili: Eulero implicito (E), BDF e AdamsMoulton (AM) di ordine 2. Da qui in avanti ci si riferirà solo a questi metodi. La caratteristica che lidistingue dagli altri metodi e che permette la convergenza è la A-stabilità. Tale caratteristica risultaquindi necessaria per le equazioni di�erenziali fortemente sti� che si vuole integrare. Qualsiasi altraregione di stabilità non A-stabile è inadatta, compresi i metodi BDF che sono A(α) stabili.I rimanenti metodi però si possono distinguere per alcuni dettagli nel loro comportamento. Il metodo AMconserva la caratteristica di avere un comportamento ondulatorio nella regione asintotica come mostratoin �gura (6), cosa che non è riscontrata per gli altri algoritmi. Questa peculiarità mette in dubbio il suoutilizzo in quanto in una simulazione di problemi su larga scala è preferibile evitare queste oscillazioni.Si possono confrontare i metodi BDF ed E, come fatto in �gura (7), e si osserva che il metodo BDFconverge più velocemente di E. Inoltre se si e�ettuano simulazioni con passo h via via decrescente, sivede che entrambe le soluzioni convergono con un tempo di transiente sempre più ridotto. Alla luce diqueste ulteriori simulazioni, si può quindi concludere che il metodo BDF approssima meglio la soluzionerispetto a E, poichè converge prima. Si nota però, quando il passo di integrazione non è su�cientementepiccolo, un leggero undershoot del metodo BDF che è una caratteristica indesiderabile. Infatti le quantitàdi interesse bio�sico - le concentrazioni - devono essere strettamente non negative, ed un undershoot diquesto tipo è estremamente deleterio quando la soluzione asintotica è vicina a zero. Nel caso del metododi Eulero implicito, si può dimostrare che le soluzioni restano strettamente non-negative.L'ultima simulazione è stata e�ettuata con gli stessi valori iniziali precedenti, ma implementando levariazioni casuali sulle masse. Le variazioni sulla massa sono distribuite attorno a una variazione mediadel 15 per cento, mentre per gli intervalli di tempo τ sono stati scelti valori medi prima pari a τ = 2000 eτ = 200. Con il valore più grande di τ si ha che la soluzione esaurisce completamente il transiente primadell'evento discontinuo, mentre con il secondo valore si è ancora in fase di transiente. Non si notanodi�erenze sostanziali di comportamento al variare di τ , solamente per piccoli τ le variazioni di massacambiano leggermente tra i vari algoritmi. Le piccole di�erenze diventano comunque trascurabili dopoalcuni passi di integrazione perchè la soluzione numerica tende a raggiungere sempre lo stesso valore diequilibrio.

20

Page 23: METODI MULTISTEP PER L'INTEGRAZIONE NUMERICA … oppure tridimensionale ... Ogni cellula viene descritta come un piccolo sistema a sé stante, ... pertanto bisogna costruire algoritmi

Inoltre si ha un'ulteriore conferma di quanto visto nella precedente simulazione. Il metodo AM presentacomportamenti oscillatori ancora più marcati, mentre il metodo BDF tende a convergere più velocementedi E, ma non sembra garantire la positività delle concentrazioni.

14 Analisi della simulazione

Dai risultati precedenti, si è visto che per integrare le equazioni di�erenziali fortemente sti� è necessariala richiesta di A-stabilità. Ci sono tuttavia diversi comportamenti riguardo la velocità di convergenza ole oscillazioni e in questa sezione cercheremo di darne una motivazione.Per poter studiare il fenomeno bisogna richiamare alcuni semplici risultati sulle relazioni di ricorrenzalineari, ovvero equazioni del tipo:

xn+1 = αxn + β (65)

Si può mostrare per induzione che la soluzione di questa equazione con punto iniziale x0 è:

xn = αnx0 + β1− αn

1− α(66)

Facendo tendere n→∞, se |α| < 1, la soluzione converge al punto di equilibrio xeq = β1−α . Con questa

condizione si può riscrivere la soluzione:

xn = xeq + αn (x0 − xeq) (67)

Si può ora studiare il comportamento di x ≡ min nella regione asintotica, dove cioè l'equazione di�eren-ziale è approssimabile alla (20), ovvero del tipo:

dx

dt= ax+ b = f (x) , a ≈ −1.75 · 104 , b ≈ 9.45 · 10−13 (68)

Si scrive il metodo di Eulero implicito per l'equazione asintotica in esame, esplicitando xn+1.

xn+1 = xn + hf (xn+1) = xn + haxn+1 + hb (69)

xn+1 =1

1 + h |a|xn +

hb

1 + h |a|(70)

In pratica, data la semplicità di questa equazione di�erenziale, si è potuto rendere esplicito un metodoche in generale non lo è. Con queste approssimazioni si è ricavata una relazione di ricorrenza la cuisoluzione è nota. Utilizzando la formula (67) e dopo pochi passaggi si può scrivere la soluzione per ilmetodo di Eulero implicito in regime asintotico con dato iniziale x0.

xn = xeq +(

11 + h |a|

)n(x0 − xeq) (71)

xeq =b

|a|(72)

In particolare si può dare una stima del valore di equilibrio

xeq =DS∆ [Genv]

1 +(

vmax,1VextraK1

+ DSVextra∆

) ≈ 5.39968 · 10−17 (73)

in accordo con i risultati della simulazione numerica.La convergenza della soluzione è assicurata se |α| < 1. Nel caso di Eulero implicito in esame, la costantevale, per un valore di passo h di 10, circa come quello utilizzato:

α =1

1 + h |a|= 5.71425 · 10−6 (74)

Quindi è garantita la condizione per la convergenza, in accordo con quanto osservato nelle simulazioni.

21

Page 24: METODI MULTISTEP PER L'INTEGRAZIONE NUMERICA … oppure tridimensionale ... Ogni cellula viene descritta come un piccolo sistema a sé stante, ... pertanto bisogna costruire algoritmi

Gli stessi ragionamenti possono essere estesi anche per il metodo di Adams Moulton con poche modi�che.Le relazioni che si ricavano sono:

xn+1 = xn +h

2(f (xn+1) + f (xn)) = xn +

h

2axn+1 +

h

2axn + hb (75)

e quindi

xn+1 =1− h

2 |a|1 + h

2 |a|xn +

hb

1 + h2 |a|

(76)

Si può veri�care la consistenza della trattazione valutando il punto di equilibrio e si trova che è lo stessodel metodo di Eulero. In questo caso la costante α che è determinante al �ne della convergenza, valeα ≈ −0.999977 e in particolare è negativa. Ricordando che la soluzione è del tipo xn = αnx0 + xeq la si

può riscrivere nella forma xn = (−1)n |α|n x0 + xeq. In questo modo si evidenzia che, a seconda della

parità si n, la soluzione oscilla attorno al valore di equilibrio, lo stesso comportamento osservato nelle

simulazioni.

Alla luce di questi risultati si può provare la stessa trattazione anche per il metodo BDF. Si scriveesplicitamente l'algoritmo in regime asintotico.

xn+1 =43xn −

13xn−1 +

23hf (xn+1) =

43xn −

13xn−1 +

23haxn+1 +

23hb (77)

ovvero

xn+1 =1

1 + 23h |a|

(43xn −

13xn−1 +

23hb

)(78)

In questo caso la relazione di ricorrenza coinvolge più punti precedenti. Per la soluzione bisogna quindidisporre di due condizioni iniziali: un punto è x0, il secondo punto viene ricavato con il metodo diEulero, proprio come fatto nella simulazione. La soluzione di questa equazione non è banale come neicasi precedenti, tuttavia è ancora possibile risolverla analiticamente. Si può dimostrare che l'equazioneammette una soluzione del tipo:

xn = xeq +A

(2 +√

1− 2ha3 + 2ha

)n+A

(2−√

1− 2ha3 + 2ha

)n(79)

Dove la costante A può essere trovata imponendo le condizioni iniziali.Per avere un ulteriore parametro di confronto si può introdurre la velocità di convergenza v de�nita da:

v ≡∣∣∣∣xn+1 − xeqxn − xeq

∣∣∣∣ (80)

Se v > 1 la soluzione diverge, se v < 1 la soluzione converge a un punto di equilibrio, mentre il caso limitev = 1 rappresenta una soluzione costante. Al tendere di v a zero, la soluzione converge rapidamente alpunto di equilibrio, mentre se v → 1 la soluzione converge sempre più lentamente.Note le soluzioni per il metodo di Eulero, v può essere calcolato, vale 1

1+h|a| e coincide proprio con il

fattore α = 5.71425 · 10−6 prima discusso. Per il metodo AM v ≡ |α| ≈ 0.999977. Tuttavia in AMv assume valori prossimi ad 1 e quindi converge lentamente, in E v assume valori prossimi allo zero edunque converge rapidamente.Per quanto riguarda il metodo BDF, v può essere calcolata analiticamente, ma la sua espressione risultamolto complicata e si può mostrare che non è costante. Quindi lo studio analitico asintotico del metodoBDF non è praticabile e non si riesce a mostrare la maggiore convergenza di questo metodo rispettoal metodo E. In ogni caso dalle simulazioni numeriche risulta che il metodo BDF ha una maggiorevelocità di convergenza rispetto al metodo di Eulero soprattutto nella fase di transiente e non in regimeasintotico. Uno studio analitico di questa proprietà non è quindi praticabile in quanto non valgono piùle approssimazioni fatte su min.

22

Page 25: METODI MULTISTEP PER L'INTEGRAZIONE NUMERICA … oppure tridimensionale ... Ogni cellula viene descritta come un piccolo sistema a sé stante, ... pertanto bisogna costruire algoritmi

15 Conclusioni

Le equazioni di tipo sti� presentano grosse di�colta nella loro integrazione. Gli algoritmi che possonointegrarle devono necessariamente godere della proprietà di A-stabilità, limitando così la possibile sceltadegli algoritmi. Il metodo di Adams Moulton porta comportamenti oscillanti nella soluzione e perciò nonpuò essere un buon algoritmo.Bisogna limitare la scelta o al metodo di Eulero implicito o al metodo BDF di ordine 2. Il metododi Eulero si presenta particolarmente semplice da implementare. Il metodo BDF porta un guadagnosull'errore, ma questo a prezzo di memorizzare il passo di integrazione precedente e di una possibilenon-positività delle soluzioni del sistema bio�sico. Nonostante la sua semplicità il metodo di Euleroimplicito sembra essere dunque la scelta migliore, e i metodi multistep non sembrano praticabili nel casodei complicati sistemi di�erenziali che vanno risolti all'interno del simulatore VBL.

23

Page 26: METODI MULTISTEP PER L'INTEGRAZIONE NUMERICA … oppure tridimensionale ... Ogni cellula viene descritta come un piccolo sistema a sé stante, ... pertanto bisogna costruire algoritmi

16 Appendice A

Si riporta qui di seguito il programma usato per l'implementazione del metodo BDF. Il metodo di Euleroè riportato al suo interno in quanto viene utilizzato nell'inizializzazione dell'algoritmo BDF.

#include<stdlib.h>

#include <stdio.h>

#include<math.h>

#define NEQ 2

#define T0 (double)0.0

#define T1 (double)10000

#define Genv (double)0.9

#define D (double)7e-10

#define Ka (double)5.4e-2

#define K22 (double)1.8e-2

#define K2 (double)1.8

#define K1 (double)0.27024

#define vmax22 (double)1.2e-18

#define vmax2 (double)1.2e-19

#define vmax1 (double)6e-19

#define S (double)3e-10

#define Vin (double)5e-16

#define delta (double)0.2e-6

#define Vextra (double)6e-17

#define m00 (double)0.9*Genv*Vin

#define m10 (double)0.1*Genv*Vextra

#define EPS (double)1e-15

int main()

{

double gaussian(double a, double d);

void Eulero (double *m, double *dmdt, double h, int n_equazioni,

void (*f)(double *m, double *dmdt));

void f (double *m, double *dmdt);

void BDF2 (double *m, double *mmuno, double *dmdt, double *dmdtmuno,

double h, int n_equazioni, void (*f)(double *m, double *dmdt));

srand( 317 );

FILE *miofile,*miofile2,*miofile3;

double dmdt[NEQ], m[NEQ],h,t,mmuno[NEQ],dmdtmuno[NEQ],segno,tau,dtau;

int i,n;

miofile = fopen("datig.txt","w");

miofile2 = fopen("datigt.txt","w");

miofile3 = fopen("datigp.txt","w");

i=0;

n=0;

m[0] = m00;

m[1] = m10;

t=T0;

h=(double)100;

f(m,dmdt);

tau=gaussian( 1000.,sqrt(1000.));

I

Page 27: METODI MULTISTEP PER L'INTEGRAZIONE NUMERICA … oppure tridimensionale ... Ogni cellula viene descritta come un piccolo sistema a sé stante, ... pertanto bisogna costruire algoritmi

fprintf(miofile," %E\t %.16E\t %.16E\t %.16E\t %.16E\t\n",

t,m[0],m[1],dmdt[0],dmdt[1]);

fprintf(miofile2," %E\t %f\n",tau,0.);

for(i = 0; i < NEQ; i++)

{

mmuno[i] = m[i];

dmdtmuno[i] = dmdt[i];

}

Eulero (m,dmdt,h,NEQ,f);

t=T0+h;

fprintf(miofile," %E\t %.16E\t %.16E\t %.16E\t %.16E\t\n",

t,m[0],m[1],dmdt[0],dmdt[1]);

for(n = 2; n <= 10000000; n++)

{

if ( t >= T1 )

{

break;

}

if ( t+h >= tau )

{

dtau = gaussian(1000.,sqrt(1000.));

tau=tau+dtau;

if ( ( (double)rand() / ((double)(RAND_MAX)+(double)(1)) ) > 0.5 )

{

segno=(1.);

}

else

{

segno=(-1.);

}

m[0]=m[0]*(1.+segno*gaussian(15.,2.)/100.);

fprintf(miofile2," %E\t %f\n",dtau,segno*gaussian(15.,2.)/100.);

f(m,dmdt);

for(i = 0; i < NEQ; i++)

{

mmuno[i] = m[i];

dmdtmuno[i] = dmdt[i];

}

Eulero (m,dmdt,h,NEQ,f);

t=T0+h*n;

fprintf(miofile," %E\t %.16E\t %.16E\t %.16E\t %.16E\t\n",

t,m[0],m[1],dmdt[0],dmdt[1]);

n=n+1;

}

II

Page 28: METODI MULTISTEP PER L'INTEGRAZIONE NUMERICA … oppure tridimensionale ... Ogni cellula viene descritta come un piccolo sistema a sé stante, ... pertanto bisogna costruire algoritmi

BDF2 (m,mmuno,dmdt,dmdtmuno,h,NEQ,f);

t = T0 + h * n;

fprintf(miofile," %E\t %.16E\t %.16E\t %.16E\t %.16E\t\n",

t,m[0],m[1],dmdt[0],dmdt[1]);

}

fclose(miofile);

fclose(miofile2);

system("PAUSE");

return 0;

}

//////////////////////////////////////////////////////////////////////////

double gaussian(double a, double d)

{

double v1,v2,r;

do {

v1 = 2.0 * ( (double)rand() / ((double)(RAND_MAX)

+(double)(1)) ) - 1.0;

v2 = 2.0 * ( (double)rand() / ((double)(RAND_MAX)

+(double)(1)) ) - 1.0;

r = v1 * v1 + v2 * v2;

} while (r>=1.0 || r==0.0 );

r = sqrt((-2.0*log(r))/r);

return (a+v1*r*d);

}

//////////////////////////////////////////////////////////////////////////

void BDF2 (double *m, double *mmuno, double *dmdt, double *dmdtmuno,

double h, int n_equazioni, void (*f)(double *m, double *dmdt))

{

int i,iter;

double *control, *x0, *y, *x1, *d, *dmdtx1, *F0, *F1;

control = malloc( 15 * sizeof(double));

x0 = control+1;

y = x0+NEQ;

x1 = y+NEQ;

d = x1+NEQ;

F0 = d+NEQ;

F1 = F0+NEQ;

dmdtx1 = F1+NEQ;

for(i = 0; i < n_equazioni; i++)

{

x0[i] = m[i];

x1[i] = m[i]+h*( 3*dmdt[i]/2-dmdtmuno[i]/2 );

F0[i] = -m[i]/3 + mmuno[i]/3 -2*h/3*( dmdt[i] );

d[i] = (double)1;

III

Page 29: METODI MULTISTEP PER L'INTEGRAZIONE NUMERICA … oppure tridimensionale ... Ogni cellula viene descritta come un piccolo sistema a sé stante, ... pertanto bisogna costruire algoritmi

}

*control = (double)1;

iter = 0;

while( *control > EPS )

{

f(x1,dmdtx1);

for(i = 0; i < n_equazioni; i++)

{

F1[i] = x1[i] - 4*m[i]/3 + mmuno[i]/3 - 2*h/3*( dmdtx1[i] );

d[i] = -(x1[i]-x0[i])/(F1[i]-F0[i])*F1[i];

x0[i] = x1[i];

F0[i] = F1[i];

x1[i] = x1[i]+d[i];

y[i] = ( x1[i] - x0[i] ) / x1[i];

}

if( iter == 100 )

{

printf("non converge");

break;

}

if( abs(y[1])>abs(y[0]) )

{

*control=y[1];

}

else

{

*control=y[0];

}

iter=iter+1;

}

for(i = 0; i < n_equazioni; i++)

{

dmdtmuno[i] = dmdt[i];

mmuno[i] = m[i];

m[i] = x1[i];

}

f(m,dmdt);

free(control);

return;

}

//////////////////////////////////////////////////////////////////////////

IV

Page 30: METODI MULTISTEP PER L'INTEGRAZIONE NUMERICA … oppure tridimensionale ... Ogni cellula viene descritta come un piccolo sistema a sé stante, ... pertanto bisogna costruire algoritmi

void Eulero (double *m, double *dmdt, double h, int n_equazioni,

void (*f)(double *m, double *dmdt))

{

int i,iter;

double *control, *x0, *y, *x1, *d, *F0, *F1;

control = malloc( 13 * sizeof(double));

x0 = control+1;

y = x0+NEQ;

x1 = y+NEQ;

d = x1+NEQ;

F0 = d+NEQ;

F1 = F0+NEQ;

for(i = 0; i < n_equazioni; i++)

{

x0[i] = m[i];

x1[i] = m[i]+h*dmdt[i];

}

for(i = 0; i < n_equazioni; i++)

{

F0[i] = -h*dmdt[i];

d[i] = (double)1;

}

*control = (double)1;

iter = 0;

while( *control > EPS )

{

f(x1,dmdt);

for(i = 0; i < n_equazioni; i++)

{

F1[i] = x1[i]-m[i]-h*dmdt[i];

d[i] = -(x1[i]-x0[i])/(F1[i]-F0[i])*F1[i];

x0[i] = x1[i];

F0[i] = F1[i];

x1[i] = x1[i]+d[i];

y[i] = 2*(x1[i]-x0[i])/(x1[i]+x0[i]);

}

if( iter==100 )

{

printf("non converge");

break;

}

if( abs(y[1])>abs(y[0]) )

{

*control=y[1];

}

V

Page 31: METODI MULTISTEP PER L'INTEGRAZIONE NUMERICA … oppure tridimensionale ... Ogni cellula viene descritta come un piccolo sistema a sé stante, ... pertanto bisogna costruire algoritmi

else

{

*control=y[0];

}

iter=iter+1;

}

for(i = 0; i < n_equazioni; i++)

{

m[i]=x1[i];

}

f(m,dmdt);

free(control);

return;

}

//////////////////////////////////////////////////////////////////////////

void f (double *m, double *dmdt)

{

dmdt[0] = vmax1 * m[1]/(Vextra * K1 + m[1]) -

vmax1 * m[0] / (Vin * K1 + m[0]) -

vmax2 * m[0] * m[0]/(Vin * K2 + m[0])/(Vin * Ka + m[0]) -

vmax22 * m[0] * m[0] / (Vin * K22 + m[0])/(Vin * Ka + m[0]);

dmdt[1] = - vmax1 * m[1]/(Vextra * K1 + m[1]) +

vmax1 * m[0] / (Vin * K1 + m[0]) +

D * S / delta * ( Genv - m[1] / Vextra );

return;

}

VI

Page 32: METODI MULTISTEP PER L'INTEGRAZIONE NUMERICA … oppure tridimensionale ... Ogni cellula viene descritta come un piccolo sistema a sé stante, ... pertanto bisogna costruire algoritmi

17 Appendice B

Dimostrazione del Teorema 1.Utilizzando l'espansione di Taylor si nota che

y (xn−i) = y (xn − ih) =∞∑m=0

y(m) (xn)(−ih)m

m!

y′ (xn−i) =∞∑m=1

y(m) (xn)(−ih)m

m!

Si consideri la de�nizione di un metodo multistep data dalla (31) e la si espande in serie di Taylor nelpunto xn.

y (xn)−k∑i=1

αiy (xn−i)−k∑i=0

βihy′ (xn−i) = 0

y (xn)−k∑i=1

αi

∞∑m=0

y(m) (xn)(−ih)m

m!−

k∑i=0

βih

∞∑m=1

y(m) (xn)(−ih)m

m!= 0

y (xn)−∞∑m=0

y(m) (xn)k∑i=1

αi(−ih)m

m!−∞∑m=1

y(m) (xn)k∑i=0

βih(−ih)m

m!= 0

C0y (xn) + C1hy′ (xn) + . . .+ Cph

py(p) (xn) + Cp+1hp+1y(p+1) (xn) = 0

Dove il coe�ciente della serie di Taylor per y (xn) è

C0 = 1−k∑i=1

αi

mentre il coe�ciente per y(j) (xn) con j > 0 è:

Cj = −k∑i=1

αi(−i)j

j!−

k∑i=0

βi(−i)j−1

(j − 1)!

Ora si considera la funzione α(

exp (−z))− zβ

(exp (−z)

).

Sfruttando lo sviluppo in serie di Taylor per l'esponenziale

exp (−z) =∞∑m=0

(−z)m

m!

si può riscrivere la funzione:

α(

exp (−z))− zβ

(exp (−z)

)=

= 1 -∑ki=1 αi exp (−iz)− z

∑ki=0 βi exp (−iz)

= 1 -∑ki=1 αi

∑∞m=0

(−iz)m

m! − z∑ki=0 βi

∑∞m=0

(−iz)m

m!

=(

1−∑ki=1 αi

)+ z

(−∑ki=1 αi (−i)−

∑ki=0 βi

)+ z2

(−∑ki=1 αi

(−i)22 −

∑ki=0 βi (−i)

)+ . . .

= C0 + C1z + C2z2 + . . .

Dunque i coe�cienti Cj dell'espansione in serie delle due formule coincidono.

VII

Page 33: METODI MULTISTEP PER L'INTEGRAZIONE NUMERICA … oppure tridimensionale ... Ogni cellula viene descritta come un piccolo sistema a sé stante, ... pertanto bisogna costruire algoritmi

Riferimenti bibliogra�ci

[1] E. Milotti, R. Chignola: �Numerical Simulation of Tumor Spheroids Dynamics�, Physica A 338 (2004)261.

[2] J. A. Board, L. V. Kalé, K. Schulten, R. D. Skeel, T. Schlick: �Modeling biomolecules: Larger scales,longer durations�, IEEE Computational Science and Engineering 1 (1994) 19

[3] E. Milotti, A. Del Fabbro, R. Chignola: �Choice of integration methods for large-scale biophysicalsimulations�, Computer Physics Communications (in attesa di pubblicazione)

[4] J. C. Butcher: �Numerical Methods for Ordinary Di�erential Equations�, (Wiley, 2003)

[5] C. W. Gear: �The Numerical Integration of Ordinary Di�erential Equations�, Mathematics ofComputation 21 (1967) 146

[6] G. Dahlquist: �Convergence and Stability in the Numerical Integration of Ordinary Di�erentialEquations�, Mathematica Scandinavica 4 (1956) 33

[7] W. H. Press, S. A. Teukolsky, W. T. Vetterling, B. P. Flannery: �Numerical Recipes�, (CambridgeUniv. Press, 2007)

VIII