Modelli Numerici 2 - Dipartimento di Matematica

Transcript

Modelli Numerici 2 - Dipartimento di Matematica
Modelli Numerici 2
Laboratorio MatLab No. 1
M. Semplice
8 maggio 2007
Indice
1 Metodi di Eulero esplicito ed implicito
1.1 Metodo esplicito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Metodo implicito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1
1
2 Equazione differenziale logistica
2.1 Spazio delle fasi . . . . . . . . .
2.2 Ruolo dei parametri . . . . . .
2.3 Implementazione del modello .
2.4 Interpretazione . . . . . . . . .
3 Equazione logistica per due
3.1 Spazio delle fasi . . . . . .
3.1.1 α > M . . . . . . .
3.1.2 α > M . . . . . . .
3.2 Simulazioni numeriche . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2
2
2
2
3
popolazioni
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
3
4
4
4
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4 Un modello matematico: Tacoma Narrows
1
5
Metodi di Eulero esplicito ed implicito
Vogliamo approssimare numericamente la soluzione del problema di Cauchy per l’equazione differenziale
ordinaria
(
y 0 = 10y(1 − y)
y(0) = 0.1
Consideriamo gli istanti temporali tn = n ∗ ∆t per n ≥ 0. Sia yn la soluzione numerica al tempo tn .
1.1
Metodo esplicito
Approssimando la derivata y 0 (tn ) con il rapporto incrementale
y 0 (tn ) '
yn+1 − yn
∆t
otteniamo il seguente metodo di integrazione:
(
y0 = 0.1
yn+1 = yn + ∆t · 10yn (1 − yn )
n≥1
(1)
Implementandolo in MatLab verifichiamo che questo metodo è stabile solo quando ∆t è sufficientemente
piccolo.
1.2
Metodo implicito
Approssimando la derivata y 0 (tn ) con il rapporto incrementale
y 0 (tn ) '
yn − yn−1
∆t
otteniamo il metodo di integrazione seguente
(
y0 = 0.1
yn = yn−1 + ∆t · 10yn (1 − yn )
n≥1
(2)
La difficoltà nella risoluzione è costituita dal fatto che i valori di yn devono ora essere ottenuti come
soluzioni di un’equazione non lineare. Ad esempio in MatLab si può usare la funzione fzero per calcolare
yn+1 a partire dal valore di yn (salvato nella variabile YN) nel modo seguente:
RHS = @(y) y-YN-dt*10*y.*(1-y);
next = fzero(RHS,[0,100]);
Osservate l’indicazione esplicita dell’intervallo in cui la soluzione deve essere cercata, per evitare che venga
individuata la soluzione negativa dell’equazione non lineare.
Possiamo ora verificare la stabilità e l’accuratezza dei metodi di Eulero esplicito ed implicito, per
diversi valori di ∆t.
2
Equazione differenziale logistica
Consideriamo l’equazione differenziale ordinaria
(
y 0 = ρy(M − y)
y(0) = y0
(3)
ove i parametri ρ e M sono due costanti reali e positive. Si richiede altresı̀ che ∀t ≥ 0 : y(t) ≥ 0.
2.1
Spazio delle fasi
Studiando il segno della derivata temporale y 0 = ρy(M − y), deduciamo che vi sono tre tipi di soluzione:
• costanti, se y0 = 0 oppure y0 = M
• decrescenti, se y0 > M
• crescenti, se 0 < y0 < M
Per l’unicità della soluzione del problema (3), le soluzioni decrescenti e quelle crescenti non possono
intersecare il grafico della soluzione costante y(t) = M e pertanto tale grafico sarà un asintoto a cui
tendono tutte le soluzioni non costanti dell’equazione differenziale.
2.2
Ruolo dei parametri
Lo studio qui sopra ha identificato M come il valore tale che
lim y(t) = M
t→∞
se y0 > 0
Poichè la derivata y 0 (t) è proporzionale al parametro ρ, quest’ultimo influenza la ‘velocità’ con cui le
soluzioni non costanti si avvicinano all’asintoto y = M .
2.3
Implementazione del modello
Ad esempio è possibile creare il seguente script in MatLab.
%% EQUAZIONE LOGISTICA PER UNA POPOLAZIONE
%% SCELTA DEI PARAMETRI
% I due parametri (r,M) sono salvati nel
% vettore k a due componenti.
k=[0.2,10];
times=[0 10];
y0=13;
%% DEFINIAMO L’EQUAZIONE DIFFERENZIALE
% Usiamo una ’function handle’ per gestire i parametri
LogisticODE = @(t,y) k(1) * y * (k(2) - y);
%% RISOLVIAMO L’EQUAZIONE DIFFERENZIALE
[t,y] = ode45(LogisticODE,times,y0,k);
plot(t,y,’.-g’);
La definizione della funzione LogisticODE sfrutta il concetto delle ’function handle’ di MatLab:
k(1) ∗ y ∗ (k(2) − y) ;
LogisticODE = @(t, y)
|
| {z }
{z
}
variabili espressione con parametri
Attenzione: in questo modo, i valori di k(1) e k(2) utilizzati sono quelli definiti al momento della definizione di LogisticODE e non quelli contenuti nella variabile k al momento in cui la funzione
LogisticODE viene valutata!
Richiamando lo script appena salvato, si ottiene un grafico dell’andamento della soluzione per i
parametri e il dato iniziale scelto. Sovrapponendo i grafici di diverse soluzioni (comando hold on), si può
ottenere una figura come la seguente, che illustra ad esempio il ruolo dei parametri M e ρ nel modello.
2.4
Interpretazione
Il modello (3) viene utilizzato per descrivere l’andamento temporale di una popolazione con tasso di
crescita ρ e che vive in un ambiente in cui le risorse sono limitate e permettono al più la soporavvivenza
di M individui.
3
Equazione logistica per due popolazioni
Vogliamo ora considerare il caso di due popolazioni in competizione per la stessa quantità (limitata) di
risorse. Dette y1 (t) e y2 (t) il numero di individui di ciascuna popolazione al tempo t, proponiamo la
seguente equazione differenziale:
(
y10 = y1 − (M y12 + αy1 y2 )
(4)
y20 = y2 − (M y22 + αy1 y2 )
con un’opportuna condizione iniziale su ~y (0).
Rispetto alla (3), vi sono ora due termini che causano il decremento della popolazione: quello con
fattore M è un termine logistico, che descrive la limitatezza delle risorse ambientali a disposizione e quello
con fattore α invece descrive la competizione fra le due popolazioni.
3.1
Spazio delle fasi
Vogliamo ora tracciare un grafico che rappresenti l’andamento delle soluzioni tali che y1 (t) ≥ 0 e y2 (t) ≥ 0.
Osserviamo innanzitutto che se y1 (0) = 0, allora y1 è costante e y2 soddisfa un’equazione logistica del
tipo (3) e pertanto tenderà verso il valore limite y2 → 1/M . Un ragionamento analogo si può ripetere
scambiando i ruoli di y1 e y2 .
Nel primo quadrante del piano cartesiano con variabili y1 in ascissa e y2 in ordinata, lungo i due
semiassi vi sono traiettorie della soluzione del sistema (4). In particolare, per l’unictà della soluzione al
problema di Cauchy, tutte le soluzioni con dato iniziale nel primo quadrante, saranno sempre contenute
in esso.
Osserviamo ora che
1 − M y1
y10 > 0 ⇔ y2 <
α
e pertanto la popolazione y1 sarà crescente se l’altra popolazione y2 non supera il limite descritto dalla
formula precedente. Analogamente,
1 − αy1
.
y20 > 0 ⇔ y2 <
M
Lo spazio delle fasi è ora determinato dalle reciproche posizioni delle rette y2 =
3.1.1
−M y1
α
e y2 <
1−αy1
M .
α>M
L’analisi evidenzia la presenza di due punti di equilibrio stabili e due instabili. I due punti instabili sono
1
1
l’origine e il punto (y1 , y2 ) = ( α+M
, α+M
). Quelli stabili, invece sono i punti (M, 0) e (0, M ).
y2
1
M
equilibrio stabile
1
α
equilibrio instabile
equilibrio stabile
equilibrio instabile
1
α
1
M
y1
Dallo spazio delle fasi qui sopra riportato, osserviamo che se ad un dato istante una popolazione è più
numerosa dell’altra, la più piccola è destinata ad estinguersi: infatti la soluzione coverge (per t → ∞)
ad uno dei due punti di equilibrio stabile. Se invece, ad un dato istante y1 = y2 6= 0, allora la soluzione
converge al punto di equilibrio instabile sulla bisettrice del primo quadrante.
Questo modello presenta, come punti di equilibrio stabili solo le due situazioni in cui una delle due
popolazioni è estinta. Il modello potrebbe avere una certa attinenza con casi reali, se si considera come in
parecchie rocce sedimentarie si evidenzia la presenza quasi esclusiva di una sola di due specie di chioccioline
fra loro identiche tranne che per l’orientazione delle spirali sul guscio (destrorsa o sinistrorsa).
3.1.2
α>M
Con uno studio simile al precedente, si mostra che i punti di equilibrio sono gli stessi; tuttavia, in questo
1
1
caso, il punto (y1 , y2 ) = ( α+M
, α+M
) è stabile, mentre gli altri 3 sono instabili.
3.2
Simulazioni numeriche
Effettuiamo ora delle simulazioni numeriche del modello usando MatLab e riportiamo il grafico delle
curve (y1 (t), y2 (t)) ottenute nel piano cartesiano dello spazio delle fasi.
Il punto fondamentale è la definizione della funzione che calcola il membro destro del sistema di
equazioni differenziali:
LogisticODE = @(t,y) y -k(1)*y.*y -k(2)*[0,1;1,0]*y.*y;
Il resto dello script è analogo, salvo la differenza che ora y0 è un vettore a due componenti.
Sovrapponendo più curve, si ottengono grafici simili a quelli riportati qui sotto, nei quali ho riportato
anche i dati essenziali estratti dallo studio dello spazio delle fasi: i punti marcati con ∗ sono punti di
equilibrio stabili, quelli marcati con ◦ sono punti di equilibrio instabili e i dati iniziali delle traiettorie sono
indicati con un puntino all’inizio della linea verde corripondente.
4
Un modello matematico: Tacoma Narrows
Il ponte sullo stretto Tacoma Narrows (USA) fu inaugurato il 1/7/1940. Era un ponte sospeso in due
campate, per una lunghezza totale di 1524 metri.
Fin dall’apertura, il ponte presentava oscillazioni del piano stradale molto pronunciate, ma la sezione
trasversale del piano stradale rimaneva parallela all’orizzonte. La mattina del 7 Novembre 1940 questo
moto oscillatorio si mutò bruscamente in un movimento torsionale che, amplificandosi, portò alla rottura
dei cavi si sospensione e alla caduta in mare di un’intera campata del ponte. (È un esempio molto famoso,
descritto ad esempio su http://www.enm.bris.ac.uk/anm/tacoma/tacoma.html, su Wikipedia, etc)
Sebbene fosse chiaro fin dall’inizio che il forte vento aveva innescato le oscillazioni, solo nel 2001 è
stato pubblicato un modello matematico che spiegasse in maniera convincente l’insorgere del un moto
torsionale.
Una sezione trasversale del ponte è modellizzata come una trave rigida sospesa a due funi, la cui
risposta elastica è non lineare: detto y lo scostamento dall’equilibrio, la forza esercitata dalla fune è
f (y) = −K(eay − 1)/a anzichè quella prevista dalla legge di Hookes per l’elasticità lineare f (y) = −Ky.
Siano y lo scostamento verticale del centro della sede stradale dalla sua posizione di equilibrio e θ
l’inclinazione del piano stradale. Secondo il modello 1 , queste due variabili soddisfano il sistema di ODE
non lineare
00
sin(θ(t))
+ ea(y(t)+l sin(θ(t)) − 2 +f (t)
y (t) = −dy 0 (t) − MKa ea(y(t)−l
(5)
3K
a(y(t)−l sin(θ(t))
θ00 (t) = −dθ0 (t) + lM
− ea(y(t)+l sin(θ(t))
a cos(θ) e
Le costanti sono state stimate da dati sperimentali e dal video del crollo come: d = 0.01, a = 0.2, l = 6,
m = 2500, K = 1000. f (t) rappresenta il termine forzante dovuto al vento e la situazione al momento del
crollo si può approssimare con f (t) = 0.2 ∗ W ∗ sin(2π · 38/60) ove W è la velocità del vento in nodi.
• Si riformuli il sistema come una sistema di quattro equazioni di primo ordine nelle variabili x1 = y,
x2 = y 0 , x3 = θ, x4 = θ0 .
• Si scriva una function tacoma.m che calcoli il termine destro del sistema di ODE, definendo al suo
interno tutti i parametri.
• Si usi il comando ode45 per integrare nel tempo il sistema di ODE sull’intervallo temporale [0, 1000]
con condizione iniziale [0, 0, 0.01, 0].
• Qual è il significato fisico della condizione iniziale? Modificare la velocità del vento e osservare che
la struttura del ponte è in grado di smorzare le oscillazioni trasversali se W < 50 (condizione non
verificata la mattina del crollo, in cui c’era un vento a 80 nodi.)
• ottenere la soluzione della ODE ai tempi 0, 0.1, 0.2, . . . , 1000 e produrre grafici rispetto al tempo per
opportune quantità significative (e diversi valori del parametro W ). Riuscite anche a generare un
“filmato” della soluzione?
Per un esempio molto più recente di un ponte con comportamenti oscillatori, si veda
http://en.wikipedia.org/wiki/London_Millennium_Bridge,
http://www.arup.com/MillenniumBridge/indepth/pdf/linking_london.pdf e
http://www2.eng.cam.ac.uk/~gm249/MillenniumBridge/.
1 McKenna, Tuama – Large Torsional Oscillations in Suspension Bridges Visited Again: Vertical Forcing Creates Torsional
Response – The American Mathematical Monthly, Vol. 108, No. 8. (Oct., 2001), pp. 738-745.