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.