Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
- Esercitazione 1 -
- Sistemi di equazioni differenziali ordinarie –
Alberto Corbelli
2 Gennaio 2007
Parte 1
Considerato il sistema di equazioni differenziali:
dq
= Aq
dt
q (0) = q
q = { q1 q2 } '
n +1
1) Metodo di Eulero: qa = qa + Aqa Dt
n n
Al fine di valutare la consistenza del metodo si procede a comparare la soluzione esatta del
n
problema proposto con quella approssimata ottenuta dal metodo. Detta qe la soluzione esatta al
passo n-simo, vale la seguente relazione, ottenuta mediante lo sviluppo in serie di Taylor:
n
n +1 dq
q e = q + Dt + o( Dt 2 )
n
e
dt e
Se, data la conoscenza delle condizioni iniziali del problema, e 0 = 0 , si ottiene, al passo n-esimo:
e n = n ⋅ o( Dt 2 )
1
Secondo la relazione ottenuta, possiamo maggiorare l’errore come:
lim e n = 0
Dt →0
qcn = qan + σ n
ε n +1 = ε n ( I + ADt ) + σ n
Se si suppone che all’inizio del metodo l’unico errore introdotto sia imputabile alla precisione del
calcolatore, ed in più, per semplicità di rappresentazione, si decida di trattare un problema
monodimensionale, varrà:
ε0 =σ0
ε 1 = aε 0 + σ 1 = aσ 0 + σ 1
...
n n
σ
ε n = ∑ a n −k σ k < σ ∑a n −k
=
k =0 k =0 1− a
2
Nelle simulazioni successive si richiederà quindi che siano soddisfatte le relazioni:
adt < 2
bdt < 2
n +1
2) Metodo dei Trapezi: ( I − ADt / 2)qa = ( I + ADt / 2) qa
n
Senza riproporre i passaggi logici necessari alla discussione di consistenza, accuratezza e stabilità
del metodo numerico, possiamo affermare che l’accuratezza del metodo dei trapezi è del secondo
ordine, poiché l’errore di approssimazione e è proporzionale a Dt 2 ; ovviamente, il metodo è
consistente. Come si può notare dagli autovalori del sistema, il bacino di stabilità del metodo
coincide con tutto il semipiano a parte reale negativa del piano complesso, incluso l’asse
immaginario: l’unico vincolo agli autovalori del problema sarà quindi di avere parte reale negativa.
β1 + β 2 = 1
3
che permette il troncamento dell’errore al secondo grado di Dt, rendendo identici i termini
moltiplicati per Dt nell’espressione dello sviluppo di Taylor della soluzione esatta e nell’espressione
della soluzione approssimata ottenuta dal metodo numerico.
Se inoltre vale:
1
α1 β 2 =
2
anche i termini moltiplicati per Dt 2 nelle due espressioni risultano identici, venendo così ad
eliminarsi vicendevolmente nell’equazione di evoluzione dell’errore, rendendo il metodo accurato
al secondo ordine.
Volendo rappresentare in un grafico il bacino di stabilità di tale metodo numerico si ottiene un ovale
di estensione superiore all’area descritta dal cerchio di stabilità marginale del metodo di Eulero e
con parte del perimetro posta sull’asse immaginario del piano complesso, a dimostrare come il
metodo di Runge-Kutta a 2 stadi non sia solamente più stabile, ma permetta anche di comprendere
autovalori immaginari puri.
Tale grafico riassume quanto appena detto:
Fig. 2 – Bacino di stabilità del metodo di Runge Kutta a 2 stadi – piano complesso
q (1) = q n
q ( k ) = q n + Dtα k −1 Aq( k −1) k = 2,.., 4
4
q n +1 = q n + Dt ∑ β k q( k )
k =1
4
stadi, se sono verificate le condizioni:
4
∑β
k =1
k =1
1
α1 = α 2 = ; α3 = 1
2
n+2 n +1 3 n +1 1 n
5) Metodo di Adams-Bashforth (multistep esplicito a due passi): q = q + Dt ( Aq − Aq )
2 2
Al fine di valutare l’applicabilità dei metodi numerici considerati al problema in questione, risulta
necessario attribuire un valore numerico alle costanti a,b,c all’interno della matrice A: tutti e cinque
i metodi richiedono, con condizioni più o meno stringenti, che gli autovalori del problema siano a
parte reale negativa, quindi si opererà su A in tal senso. In particolare, la costante c non ha influenza
sul modulo degli autovalori, avendo la matrice stessa la parte triangolare inferiore nulla.
Si vedano alcune relazioni allora per determinare le costanti a e b in riferimento ai metodi descritti (
per comodità, tratteremo a e b solamente reali.
5
aDt < 2 , a < 0
- metodo di Eulero:
bDt < 2 , b < 0
a<0
- metodo dei Trapezi:
b<0
6
Parte 2
Si procede ora al calcolo della soluzione analitica del problema proposto, dopo aver assegnato i
valori numerici delle costanti a,b,c all’interno della matrice A, nonché delle condizioni iniziali
q0 = { q0 (1), q0 (2)} . In relazione ai metodi numerici descritti, è stato fissato:
Dt = 0.0001953125 s
i _ max = 51200
a = −0.5
b = −1.5
ossia un incremento temporale dimezzato rispetto a quello proposto nelle esercitazioni durante il
corso ed un numero di iterazioni doppio, a vantaggio della precisione della soluzione ottenuta; il
tempo di integrazione T rimane comunque inalterato a pari a 10 s. In questo caso, ovviamente, non
si discuterà di alcun tipo di accuratezza né di stabilità in quanto la soluzione è ottenuta per via
analitica, appunto, e quindi esatta.
L’espressione risultante per le due componenti del problema sarà allora:
q1 (t ) = 5e −0.5t
q2 (t ) = 10e −1.5t
q0 = { 5 10} '
Il valore del parametro c è stato posto una prima volta pari a 0 ed una seconda pari a 1, osservando
il variare della soluzione con esso.
Fig. 4 – Andamento nel tempo delle due componenti della soluzione, posto c=1
7
2) Soluzione analitica, c=0:
Fig. 5 – Andamento nel tempo delle due componenti della soluzione, posto c=0
Come si può notare dal diverso della componente q1 (t ) della soluzione, l’annullarsi del parametro c
disaccoppia l’evoluzione nel tempo delle due componenti q1 (t ) , q2 (t ) , che decadono quindi in
maniera esponenziale come se si trattassero delle soluzioni di due problemi distinti.
E’ possibile osservare il problema per c=1 nella sua forma modale, effettuando un cambio di base
attraverso la matrice di rotazione R per cui q = Rz .
In questo particolare caso:
1 −0.7071
R=
0 0.7071
15
z0 = R −1q0 =
14.1421
z1 (t ) = 15e −0.5t
z2 (t ) = 14.1421e −1.5t
8
Parte 3
Si prosegue ora l’esercitazione applicando al problema dato due dei metodi di approssimazione
numerica analizzati. Nello specifico, verranno utilizzati per la soluzione il metodo di Eulero e di
Runke-Kutta a quattro stadi.
Allo scopo di discutere della bontà della soluzione, è riportato per ogni metodo un particolare
ingrandito numerose volte delle curve ottenute in riferimento al raffronto tra la soluzione analitica e
quella approssimata, che servirà ad evidenziare l’errore introdotto.
Per entrambe le soluzioni si è scelto un intervallo temporale di 10 s, con un Dt pari a 1/n, dove n è il
numero di iterazioni richieste: imposto n=51200, non eccessivamente pesante per il calcolatore
utilizzato, grazie anche al linguaggio Fortran77, risulta Dt = 0.0001953125 s , sufficientemente
piccolo per poter imporre le costanti numeriche a e b della matrice piuttosto a piacimento. Come
prima annunciato, sono state scelti:
a = −0.5
b = −1.5
decisamente all’interno dei bacini di stabilità dei due metodi, secondo i vincoli dichiarati
nell’ultimo paragrafo di Parte 1.
1) Metodo di Eulero:
La sovrapposizione della soluzione esatta (analitica) e di quella approssimata è ottenuta nel grafico
seguente:
Fig. 6 – Andamento nel tempo delle due componenti della soluzione approssimata e di quella esatta
9
di cui si riporta, come detto, un particolare:
Si nota chiaramente come questo si mantenga dell’ordine di 10−5 per entrambe le componenti della
soluzione, con una migliore approssimazione sulla componente q1 (t ) , per cui addirittura tende quasi
a zero.
Analogamente a quanto mostrato per il metodo precedente, si riporta l’andamento della soluzione
10
approssimata, sovrapposta a quella analitica, esatta:
Fig. 9 – Andamento nel tempo delle due componenti della soluzione approssimata e di quella esatta
11
Come previsto dalla trattazione teorica, il metodo di Runge-Kutta a quattro stadi si dimostra molto
più accurato, mantenendosi immediatamente dall’inizio del calcolo nell’ordine di 10−6 , quindi di
almeno un ordine più accurato rispetto al metodo di Eulero.
Vediamo ora cosa accade quando un metodo numerico viene applicato anche se gli autovalori del
problema in oggetto ricadono fuori dal suo bacino di stabilità.
A tale scopo, è stato considerato il metodo di Eulero, con i seguenti parametri:
Dt = 0.1 s
i _ max = 100
a = −20.5
b = −20.5
c =1
q0 = { 50 100}
Come si può immediatamente notare, gli autovalori del problema continuano ad essere a parte reale
negativa, ma non sono più rispettati i vincoli di applicabilità del metodo in quanto:
aDt = 2, 05 > 2
bDt = 2, 05 > 2
Pur avendo gli autovalori a parte reale negative, le soluzioni così calcolate mostrano un
comportamento instabile, con l’innescarsi di oscillazioni periodiche e amplificate, mentre
sappiamo dalla soluzione analitica che sia q1 che q2 dovrebbero decrescere nel tempo fino ad
esaurirsi.
12
Un’ulteriore conferma di instabilità del metodo ci viene data dal grafico di evoluzione nel tempo
dell’errore per le due componenti:
Vediamo da ultimo, sempre per il metodo di Eulero, un breve studio sulla convergenza dell’errore.
Secondo quanto ottenuto dalla teoria all’interno della Parte 1, risulta valida per l’errore di
approssimazione la relazione:
e n < nDt 2 = TDt = emax
Mentre l’ emax tende a crescere accumulandosi con il passare delle iterazioni, l’errore di
approssimazione diminuisce, fino alla convergenza, oltre la quale non si hanno miglioramenti
all’aumentare di n. L’errore massimo si mantiene, con i parametri risolutivi imposti in questa
esercitazione, dell’ordine di 10−7 , ben al di sotto dell’errore riscontrato con l’applicazione dello
stesso metodo di Eulero.
13
Se si volesse infine osservare la convergenza dell’errore massimo introdotto dal metodo, è
sufficiente ripetere il calcolo sullo stesso orizzonte temporale ma con Dt diversi, ed osservare il
verificarsi della relazione, ottenuta dalla precedente:
Come si può vedere velocemente, la pendenza media della curva dell’errore reale, riportato ancora
una volta solamente in riferimento alla prima componente della soluzione, si avvicina molto al
coefficiente -1 della retta teorica.
14