Meccanica Razionale per Allievi
Ingegneri “Aerospaziali”
Esercitazioni numeriche 2006
Realizzazione dei “Ritratti in Fase”
per alcuni problemi classici della
Meccanica
Obiettivi del Corso
Scopo del presente corso è fornire agli allievi
strumenti concettuali ed un primo training per lo
studio di problemi della Meccanica Razionale con i
metodi del calcolo computerizzato. In particolare si
fornisce una introduzione alla dinamica di sistemi
non lineari e di sistemi dotati di cicli limite e si
propone agli allievi l’uso critico di integratori
numerici per tracciare i ritratti in fase di alcuni
dispositivi classici particolarmente rappresentativi.
Programmazione “ben fatta”
• Un programma di calcolo “ben fatto” ha un
punto di inizio e una condizione di termine
ben definiti
• L’ obbiettivo del programma è definito ed
enunciato (espressamente)
• Sono assegnati i dati di ingresso e sono ben
definiti i risultati attesi
Primi programmi
• Programma uno: stampare un titolo con nome e
matricola dell’ allievo
• Programma due: scrivere su un file le coordinate di
nove punti equidistanti su una circonferenza (usare
le funzioni sin e cos)
• Programma tre : come due, ma ordinando i punti in
modo che siano i vertici di una stella, una volta
congiunti successivamente con corde opportune.
P.es. mediante l’uso del software “gnuplot” in
ambiente Linux o mediante applicazioni Excel in
ambiente Window .
Equazioni Differenziali Ordinarie
• Metodi numerici per ”Problemi di Caucy” (vedi il corso di
Analisi2).
• Vogliamo considerare equazioni differenziali:
• - lineari: particella libera, moto per gravità, crescita
Malthusiana, decadimento radioattivo, oscillatore e
repulsore armonico;
• - non lineari: pendolo, crescita di popolazioni con risorse
limitate, moto kepleriano, bipendolo;
• -dotate di ciclo limite: orologio meccanico, problema di
Lotka-Volterra, problema di Van Der Pol;
• Con esiti caotici: pendolo forzato, mappa standard
O.D.E Lineari. Part.Libera
• Particella libera: d2x/dt2 = 0 ;
Per la soluzione introduciamo la variabile v,
velocità, definita da v = dx/dt;
• l’equazione del secondo ordine (d2x/dt2 = 0) diviene
una coppia di equazioni del primo ordine:
dv/dt = 0 ; dx/dt = v ; con le condizioni iniziali
x(0) = x0 , v(0) = v0 .
• Vedi più avanti le traiettorie rettilinee parallele nel
piano delle fasi.
Moto per gravità
• d2x/dt2 = g. Come sopra introduciamo la variabile v,
velocità, definita da v = dx/dt;
• l’equazione del secondo ordine diviene una coppia
di equazioni del primo ordine: dv/dt = g; dx/dt = v ;
con le condizioni iniziali x(0) = x0 , v(0) = v0 .
• Più avanti sarà richiesto di tracciare anche per
questo caso le traiettorie nel piano delle fasi.
Oscillatore e Repulsore Armonico
L’equazione d2x/dt2 = - ω2x , con ω2 = k /m , detta
dell’oscillatore armonico, descrive il comportamento
di un punto materiale di massa m soggetto al richiamo di una forza elastica di costante k. L’equazione è
rappresentativa del comportamento di sistemi fisici
in prossimità della posizione di equilibrio stabile.
Se il coefficiente del termine lineare fosse invece
positivo, si avrebbe il “repulsore armonico”,
rappresentativo del comportamento di sistemi fisici
in prossimità degli equilibri instabili. Ne è esempio
il moto di un punto in un campo centrifugo, p.es. il
moto relativo di un punto materiale su una giostra.
Crescita Malthusiana e
decadimento nucleare
• I fenomeni sono descritti dalla equazione differenziale
ordinaria lineare del primo ordine dy/dt = A y , con A
positivo nel caso della crescita di popolazioni viventi. A
rappresenta il numero di nuovi nati nella unità di tempo
(vedi anche il modello di crescita del capitale bancario).
• Per A negativo il modello può rappresentare il decadimento
radioattivo o lo svuotamento di una spugna (o di uno strato
di terreno) impregnati di acqua (o l’evoluzione di una
popolazione senile in cui A è il numero di decessi nella unità
di tempo).
• Gli esiti numerici dei due problemi possono essere
sorprendenti in termini di precisione di calcolo e di
dominanza degli errori numerici sulla vera soluzione.
Sviluppo di Taylor per il problema di
Cauchy: crescita Malthusiana.
• Gli allievi hanno studiato ampiamente la teoria delle serie e
delle successioni nei corsi precedenti. Il Calcolo Numerico
richiede effettive utilizzazioni di tale teoria. Invitiamo a
rileggere nei testi di analisi la teoria dello sviluppo in serie
di Taylor-McLaurin per le funzioni più comuni.
• Come primo esempio si consideri l’equazione
dy/dt = A y , rappresentativa per numerosi problemi
concreti, dagli interessi bancari fino alla crescita delle
popolazioni biologiche.
• Nel nostro esempio, semplificato e standardizzato, si ponga
la condizione iniziale y(0) = 1 ed anche il coefficiente A sia
costante (ed uguale ad 1). Vogliamo capire cosa significa il
termine “ordine di precisione del solutore numerico”.
Il grafico dell’ esponenziale
• Si cerca y(T).
• Cerco uno sviluppo di Taylor, quindi ho bisogno delle
successive derivate di Y, calcolate nel punto iniziale.
• A è costante, da dy/dt = A y, si ha: d2y/dt2 = A dy/dt = A2
y; d3y/dt3 = A d2y/dt2 = A2 dy/dt = A3 y . Quindi:
y(T)= y(0) ( 1+ AT + ½ (AT)2+1/6 (AT)3+ 1/24…).
Con le consuete osservazioni per la convergenza della
serie (prodotto AT < 1) e per la valutazione del resto.
Accorgimenti per il calcolo
Una volta scelto il numero di termini della serie, il calcolo va
organizzato evitando di calcolare grandi fattoriali con i loro
inversi e potenze successive di AT, ma raccogliendo i fattori
comuni così da ridurre l’errore di troncamento che si
verifica quando si sommano termini via via più piccoli
y=yo (1+AT(1+1/2 AT(1+1/3 AT(1+1/4 AT(1+1/5 AT(…).
Come esercitazione richiesta si costruisca una procedura che
chieda in input l’ordine massimo e realizzi il prodotto dei
termini annidiati a partire dal più interno. In uscita la
procedura fornirà, oltre al risultato approssimato voluto,
anche una stima del primo termine trascurato.
Esempi : passo passo
• Per valutare y a tempi t > R (raggio di convergenza), è
possibile valutarla per t < R e quindi scegliere il nuovo
valore di y come nuovo punto iniziale per lo sviluppo in
serie di Taylor. L’espressione dello sviluppo in serie resta
la medesima ed è sufficiente aggiornare i valori della
funzione e delle derivate.
• La scelta del valore di y al termine del primo passo come
valore iniziale per un passo successivo illustra la filosofia
generale dei metodi numerici che intendiamo adottare.
• Attenzione: gli errori commessi in ciascun passo vanno
sommati in valore assoluto per ottenere la stima dell’errore
complessivo.
DA SVOLGERE PER L’ESAME
• Può convenire accorciare il passo elementare, aumentando
il numero dei passi, e simultaneamente riducendo il
numero dei termini dello sviluppo in serie. La scelta
dipende dal problema particolare ed è conveniente quando
diviene grande l’onere del computo delle successive
derivate.
• La semplicità dell’esempio suggerito consente almeno in
questi primi casi di valutare la soluzione dell’equazione
proposta dapprima con passi piuttosto lunghi, prossimi ad
R, e numerosi termini della serie di Taylor, poi con serie
di Taylor più brevi e con un maggiore numero di brevi
passi di calcolo.
Si può scegliere A=1,T=0.5. Sviluppo fino alla 4 o alla 6
potenza, poi, per confronto T =1, T=0.25,T=0.125
Esempi : seni e coseni
• Consideriamo ora la coppia di equazioni:
dx/dt= -y ; dy/dt= x ; con x(0)= 1 ; y(0)=0.
• È immediato calcolare le derivate successive delle
due espressioni e quindi ottenere
d2x/dt2= - dy/dt= - x
d2y/dt2= dx/dt= - y
d3x/dt3= - dx/dt= y
d3y/dt3= - dy/dt= -x
eccetera.
• Svolgendo quindi lo sviluppo in serie di Taylor:
x(T)= x(0) – y(0) T – ½ x(0) T2 + 1/6 y(0) T3 ……
y(T)= y(0) + x(0) T – ½ y(0) T2 – 1/6 x(0) T3 ……
Esempi : seni & coseni, segue
• E quindi si possono riorganizzare i termini:
x(T)=x(0) (1-1/2 T2+1/(2x3x4)T4–1/(2x3x4x5x6) T6 ….)–
y(0)T(1-1/(2x3)T2 +1/(2x3x4x5)T4–1/5040 T6….)
y(T)=y(0) (1-1/2 T2 + 1/24 T4 – 1/720 T6 ….) +
+ x(0)T(1-1/6 T2 +1/120 T4 – 1/5040 T6 ….)
• Anche ora è opportuno trasformare le somme di termini
rapidamente decrescenti in prodotti come p.es
x(T)=x(0) (1-(1/2 T2(1-1/(3x4)T2(1+1/(5x6) T2 (….)–
y(0)T(1-1/(2x3)T2(1+(1/(4x5)T2(1-1/(6x7)T2 (….)
etc... e quindi valutare se la scelta di compiere numerosi
passi di piccola ampiezza può essere complessivamente
vantaggiosa in termini di precisione dei risultati.
Seni & coseni, integrali primi
Risulta particolarmente utile, nello studio dei sistemi
dinamici, considerare gli eventuali “Integrali Primi” o
“Costanti del moto” ammessi dal sistema.
Per la coppia di equazioni dx/dt= -y ; dy/dt= x ; si può
notare, moltiplicando la prima per x e la seconda per y e
sommando i prodotti,
x dx/dt= -x y ; y dy/dt= y x ; d(x2)/dt +d(y2)/dt= 0
da cui si deduce che la somma x2+y2 deve restare costante
ed uguale al valore iniziale (in questo caso x(0)2+y(0)2=1).
Poter valutare nel corso della integrazione numerica se e
come varia la costante del moto consente di misurare
direttamente l’errore numerico che si commette.
Metodi numerici generali
• Gli argomenti presentati oggi servono per costruire
un linguaggio didattico comune.
• Dovrebbero essere tutti a voi completamente noti e
serviranno nelle prossime lezioni per costruire
strumenti di lavoro più sofisticati ed efficaci.
• Ma dovrebbero altresì essere utilizzabili per
verificare e per scegliere metodi risolutivi adeguati
ai problemi che si porranno alla vostra attenzione.
DA PORTARE ALL’ESAME
Per casa:
• Organizzare il calcolo della funzione esponenziale
per passi successivi, impiegando sviluppi in serie
di Taylor a 4, a 6 ed a 10 termini,
• Con passi temporali di ampiezza prossima ad R
fino a 4R , poi con passi di R/2 e di R/8
• Illustrare brevemente i risultati in termini di
precisione e rapidità di calcolo.
• Organizzare similmente il calcolo di seni e coseni
fino a raggiungere 4 π e 8 π .
Oscillatore armonico 1
• L’esempio sviluppato per seni e coseni si trasferisce
immediatamente alla descrizione del sistema
dinamico chiamato “oscillatore armonico”
• La realizzazione fisica elementare è rappresentata da
un punto materiale dotato di massa, soggetto a forza
centrale elastica
• Inizialmente lo immaginiamo vincolato su una retta.
Si potrà constatare che il moto deve essere piano e
che opportune condizioni iniziali consentono il moto
rettilineo.
Oscillatore Armonico 2
• L’equazione del moto può essere scritta :
m d2x/dt2 = - k x
• Con m massa, k costante elastica, origine delle
coordinate nel centro della forza elastica e
coordinate iniziali compatibili con il moto rettilineo
che si intende descrivere.
Velocità; equazioni del primo
ordine.
• Introduco la variabile v =dx/dt
• Il sistema di O.D.E. diviene
• m dx/dt = m v
• m dv/dt = -k x
• Una prima trasformazione usualmente operata è
dividere entrambe le equazioni per il fattore m
(massa: costante positiva).
Normalizzazione
• Si ottiene così:
dx/dt = v
dv/dt = - k/m x
Anche k/m è una costante positiva e ciò permette di
introdurre il nuovo parametro ω con ω2 = k/m.
La seconda equazione diviene: dv/dt= -ω2x. Se
cambio l’unità di misura dei tempi tale equazione
diviene dv/dt= - x dove in luogo dei secondi
utilizzo come unità dei tempi la “pulsazione” ω.
Condizioni iniziali
• L’ equazione dunque può scriversi :
d2x/dt2 = -x
• Oppure
dx/dt = v
dv/dt = -x
Alla equazione vanno aggiunte le condizioni iniziali,
che consentono di selezionare una soluzione
particolare nella famiglia (a due parametri) di tutte
le soluzioni possibili.
Serie di Taylor per l’oscillatore
• Scelgo come come condizioni iniziali i valori di x e
di v = dx/dt al tempo iniziale, t0 e li chiamo x0 e v0 .
Posso subito esprimere la soluzione nella forma
dello sviluppo in serie di Taylor.
• x = x0 + dx/dt (t- t0) + ½ d2x/dt2 (t- t0)2 +
+ (½ *1/3) d3x/dt3 (t- t0)3 + . . .
con le successive derivate espresse dalla equazione
originale: d2x/dt2 = dv/dt = -x;
d3x/dt3=- dx/dt =-v e calcolate nel tempo t0
Oscillatore, seni, coseni.
• Si ottiene :x(t) = x0 + v0 (t- t0) - ½ x0 (t- t0)2 +
-(1/6) v0(t- t0)3 + 1/24 . x0 (t- t0)4 + . . .
Cioè x(t) = x0 ( 1- (t- t0)2 (1/2-1/12 (t- t0)2 (….)))
+ v0 (t- t0) ( 1- 1/6 (t- t0)2 (…)))
• Si riconoscono nelle espressioni che moltiplicano x0
e v0 le espressioni di Taylor per cos(ωt) e sin(ωt),
con ω = 1 per la particolare scelta effettuata per
l’unità di misura del tempo.
• Si noti che abbiamo scelto anziché la forma di
somma di termini (rapidamente) decrescenti, la
forma di prodotto di fattori sempre più prossimi ad
1, per ragioni di precisione numerica complessiva.
DA PORTARE ALL’ESAME
Il programma richiesto
• Le espressioni sopra individuate permettono di
valutare x(t) e v(t) per successivi valori di t. Si
suggerisce di scegliere l’intervallo 0 <= t <=10 ed in
tale intervallo 100 punti.
• Si costruisca un file testo con 101 record di terne
t,x(t),v(t) e, mediante il software gnuplot, si
rappresentino su un grafico le curve x(t) ed y(t)
sovrapposte e su un altro grafico la curva ottenuta
unendo tutte le coppie (x,t) di ciascun tempo
successivo.
Metodo di Eulero
A partire dal punto P(x(0),v(0)) = P, si valuti il vettore
ΔP = (dx/dt*Δt, dv/dt*Δt), mediante le espressioni
dx/dt = v ; dv/dt = - x Si valuti ora il nuovo punto P1 =
P(0+Δt) = P0+ ΔP. Il vettore ΔP è ortogonale ad OP ( il
prodotto scalare dei due è x dx+v dv = xv – vx = 0 ) ed
è tangente alla traiettoria. Ripetere la costruzione
ottenendo P2 = P(0 + 2Δt).
Nel programma (programma 5) si registrino sul file
uscita le successive coppie di coordinate relative ai
successivi valori t+ nΔt e si tracci la traiettoria così
ottenuta, confrontandola con quella ottenuta mediante
lo sviluppo di Taylor.
Eulero con correttore
• Nel metodo di Eulero l’arco di traiettoria percorso
nell’intervallo t — t + Δt viene approssimato con un
segmento rettilineo tangente alla traiettoria in t .
È una approssimazione del primo ordine e l’errore
vale circa derivata seconda per dt2 .
• Una approssimazione migliore si otterrebbe
sostituendo al segmento di retta un arco di parabola,
che oltre a partire da P(t) con tangente dP(t),
giungesse a P(t+Δt ) con tangente dP(t+Δt).
• Tale risultato potrebbe essere ottenuto se si potesse
calcolare la tangente nel punto P(t+1/2Δt)
Predictor-corrector
• Proviamo ad utilizzare come valore approssimato
della tangente nel punto P(t+Δt) il valore dato dalla
derivata calcolata in P+ΔP. Si valuti un nuovo valore
di ΔP come valor medio di quello calcolato al tempo
t e di quello valutato nella approssimazione al primo
ordine. L’errore che si commette ora è del terzo
ordine e consente di ricalcolare la traiettoria con
errore ancora minore.
• Il metodo complessivo può essere definito un
“predictor-corrector-evaluation-corrector”,
esemplare di metodi più elaborati che si studieranno
in seguito.
Implementazione
•
•
•
•
•
•
•
•
•
•
•
STAMPA DI TITOLO ED AUTORE
Float tempo,tmax,delt,x,v,u,w,xa,va
Integer i,j,k,npunti,ndiv,nru
Leggi tmax, npunti,ndiv,nru
delt=0.5*(tmax/npunti)/ndiv
Leggi x0,v0 ;Tempo=0 ; x=x0; v=v0
(Oscar: ) dx=v;dv=-x
For i=1 to npunti ;Registra tempo,x,v,dx,dv
For j=1 to ndiv ;xa=x+dx*delt;va=v+dv*delt;
For k=1 to nru ;x=xa+dx*delt;v=va+dv*delt
(Oscar:) dx=v;dv=-x;
Next k; Next j; Next i;
FINE
Suggerimenti per l’esecuzione
• xa e va sono variabili ausiliarie. Si userà la
medesima struttura di programma anche per un altro
metodo.
• Si scelga inizialmente tmax =10, npunti =100, ndiv
=1, 2, 4, 8, 16.
• Nru =1 realizza il metodo di Eulero; = 2 Eulero con
correttore; =3 con ulteriore correzione
• Si chiede di confrontare le traiettorie ottenute con
nru=1 e con ndiv diversi e le traiettorie con ndiv=1
ed nru diversi e scegliere e motivare la scelta
combinata preferibile.
Serie di Taylor (complementi)
Si chiede di trovare sull’intervallo [to, to+T] la soluzione
dell’equazione differenziale: dy/dt = G ( y , t ) con la
condizione iniziale y(to) = yo. G è analitica nel punto
(yo,to). Vale lo sviluppo y(t)= (1/i!) y(i) (to) (t-to)i
Se [t-to] è più grande del raggio di convergenza della
serie , l’errore di troncamento non tende verso zero al
crescere del numero dei termini. Ma si può
suddividere l’intervallo [to to+T] in una catena di
intervalli parziali definiti dai successivi punti tj .
Supponendo ora di avere già trovato nel punto tj la y
e tutte le derivate necessarie, posso scrivere
l’approssimazione di Taylor per t compreso tra tj e tj+1 :
y(t)  zj(t) = (1/i!)y(i)(t-to)i .
Formule di integrazione del
2do ordine che usano le sole derivate prime
Nel caso si intenda arrestare lo sviluppo di Taylor al termine di
grado 1, si ottiene yj+1 =zj(tj+1) = yj + h G(yj,tj). È la formula che
descrive il “metodo di Eulero”, impiegato per la dimostrazione
costruttiva della esistenza ed unicità della soluzione y(t) al
problema di Cauchy proposto.
Considero l’uguaglianza y(t+h)=y(t)+G(y,t+) d

Se l’integrale è sostituito dal prodotto h·G(y(t),t), l’errore è O(h2)
.Una approssimazione dell’ordine di O(h3) si ottiene valutando
l’integrale con la formula dei Trapezi: ½ h (G(y(t),t) + G(y(t+h),t+h)
Ma non è ancora noto il valore di y al tempo t+h.Ne conosco però
una approssimazione: y(t+h)= y(t)+h G(y,t) +O(h2)
L’integrale può essere ottenuto come prodotto di h per G(y,t) con
y valutato in un opportuno punto interno all’intervallo h di
integrazione.
Errore O(h2) ed O(h3)
• Una prima approssimazione di y è:
y* = yi + h G(yi,ti) = yi+1 + O(h2)
tale approssimazione consente di valutare :
yi+1= yi + ½ h (G(yi,ti)+G(y*,ti+1)). Che errore si
commette utilizzando y* anziché yi+1 ?
• L’errore è espresso da:
½ h (G(yi+1,ti)-G(y*,ti+1))= ½ hGy(yM,ti)(y*-yi+1))
dove la derivata parziale di G va valutata in un
opportuno yM , intermedio tra y* e yi+1.. L’errore
quindi è O(h3).
Altre formule di 2do ordine
• Un’altra formula al 2do ordine è:
y* = yi + ½ h G(yi,ti)
yi+1 =yi + h(Gy*,ti + ½ h)
• Nei casi in cui le derivate terze sono piccole,
una formula del secondo ordine con errore
minimo è data da:
• k1=h G(y,t) ; k2=h G(y+2/3 k1,t+2/3 h) ;
Δy= ¼ ( k1+3 k2)
Formule del 4to ordine
• È molto diffusa la formula del 4to ordine:
k1=hG(y,t);
k2=hG(y+ ½ k1,t+ ½ h);
k3=h(G(y+ ½ k2, t+ ½ h);
k4=h(G(y+k3, t+h);
yi+1= yi + 1/6 (k1+2k2+2k3+k4)
Formule parametriche
(complementi)
• Tale formula del 4to ordine è dedotta per s=1 da
una formula nel parametro libero s:
k1=hG(y,t);
k2=hG(y+ ½ k1,t+ ½ h);
k3=h(G(y+ ½k1+1/(2s)(k2-k1), t+ ½ h);
k4=h(G(y+k2 + s (k3-k2), t+h);
yi+1= yi + 1/6 (k1+4k2+2s(k3-k2)+k4)
Altre formule (complementi)
La formula Runge – Kutta – Gill che
suggeriamo impiega il valore s=(0.5)
e la vedremo esplicitamente più avanti.
Un’altra formula al 4to ordine è:
k1=hG(y,t);
k2=hG(y+ 1/3 k1,t+ 1/3 h);
k3=h(G(y+k2-1/3 k1, t+2/3 h);
k4=h(G(y+k3+k1-k2, t+h);
yi+1= yi + 1/8 (k1+3k2+3k3+k4).
Metodi di Runge – Kutta di
ordine > 4 (complementi)
Negli esempi visti si sono costruiti i vettori ki di incrementi
attribuibili ad y, per valutare diverse determinazioni di G(y,t).
I metodi visti si generalizzano proponendo i vettor α e p e la
matrice β costanti, di dimensione q e q x q-1, mediante i quali si
valuterà il vettore k degli incrementi da assegnare ad y, per
calcolare G in punti diversi del dominio, in modo simile a come
si sono calcolate le k1 e k2 nei metodi del secondo ordine.
Posto qm=q-1
k1= h G(y,t);
k2= h G(y+b21 k1, t+a2 h);
k3= h G(y+b31 k1 + b32 k2 , t+a3 h );
kq= h G(y+bq1 k1+…+ b q qm k qm , t+aq h).
y(t+h)  z(h) = y(t)+
i pi ki
Metodi di Runge – Kutta
espliciti (complementi)
La matrice beta sarà triangolare inferiore, giacché si valutano i
successivi elementi di k solo mediante gli elementi già calcolati.
(è questo il significato dell`aggettivo “espliciti “).
Le componenti di alfa, p e beta vanno scelte in modo da
realizzare la precisione prevista.
A tal fine si definisce le scarto E(h) tra la soluzione cercata y(t+h)
ed il valore fornito dall’algoritmo, z(h). Tale E può essere
sviluppata in serie di Taylor e, per metodi di ordine s, E deve
annullarsi ad h=0 con le sue prime s derivate
Per metodi del primo ordine (q=1) si ha z(h)=y + p1 h G(y,t);
E(h) = y(t+h) - z(h) = y(t+h)-y(t)- p1h G(y,t). Si può scrivere la
serie di Taylor per E in funzione di h e si vede che p1 deve
valere 1.
Il piano delle fasi
Le immagini dei “ritratti in Fase” sono tratte dagli appunti delle lezioni di G.Benettin per gli
allievi ingegneri dell’Informazione
• Uno strumento prezioso per lo studio di problemi
della Fisica Matematica è l’uso del “piano delle
fasi”, cioè la rappresentazione delle curve
‘posizione-velocità’ nel piano cartesiano x-y. Nel
caso dell’oscillatore armonico tali curve sono ellissi
concentriche, o, con scelta opportuna della scala,
cerchi, con il raggio determinato dal valore
dell’invariante x2+v2 . Le condizioni iniziali con x0
=0 sono rappresentate da punti sulla retta verticale,
quelle con v0 = 0 sulla retta orizzontale.
Alcuni ritratti in fase
Verso di percorrenza dell’orbita
Nei sistemi meccanici il verso con cui il punto rappresentativo percorre le orbite è orario: un punto in x=0 con v>0
parte dal ramo positivo dell’asse verticale ed invade il primo
quadrante man mano che x aumenta (perché v è >0) e v
diminuisce (allorché dv/dt è ~-x, quindi < 0). Poi quando
v=0, x raggiunge il massimo positivo ed il punto entra nel
quarto quadrante, con x >0, decrescente e v che diviene <0.
Nella immagine sono illustrate le ellissi dell’oscillatore
armonico, così percorse, le iperboli del repulsore armonico,
per le quali vale la medesima osservazione, le rette della
particella libera, percorse da sinistra a destra per v >0 e da
destra verso sinistra per v<0. L’asse delle x (v=0) non è una
traiettoria ma un insieme di punti di equilibrio isolati.
Moto per gravità
• L’equazione è d2x/dt2 = -mg (con g = 9.81)
• Le orbite sono parabole ad asse orizzontale.
• Presentare come esercizio un esempio di moto per
gravità del punto libero, con condizioni iniziali
diverse ( p. es. velocità iniziali positive di valori
diversi e posizioni iniziali positive con v=0 )
Equazioni differenziali ordinarie
non lineari
• Pendolo, crescita con risorse limitate, moto
kepleriano, bipendolo
• Equazioni con ciclo limite: Van der Pol,
Lotka Volterra
• Equazioni con esiti caotici: pendolo forzato,
mappa standard
Moto del pendolo
• Si distinguono tre tipi di moto assai diversi:
• Le librazioni, od oscillazioni, rappresentate da
ellissi, (con centro in (0, 0) ed in (2nπ , 0), n intero
positivo o negativo), ellissi che assomigliano sempre
più a cerchi per oscillazioni di piccola ampiezza.
• Una curva limite, rappresentata da v = 0, x = ± π,
punto isolato in equilibrio instabile, e da due
traiettorie che partono e terminano quanto si vuole
vicino al punto isolato, passano per x = 0, v = ± 2 e
vengono percorse in tempo infinito!!!
• Le rotazioni, orarie p.es. passanti per x = 0, v >2 ed
antiorarie, p.es. passanti per x = 0, v < –2
Ritratto in fase: oscillatore
armonico,buca di potenziale
Buca con colle, doppia buca
Ritratto in fase per il pendolo,
relazione con il potenziale
Tempi di percorrenza delle
traiettorie
• Mediante i programmi di integrazione definita già
noti dal corso di Analisi Numerica si possono
valutare i tempi di percorrenza delle traiettorie .
• Si suggerisce di valutare il tempo necessario per il
pendolo per compiere l’oscillazione completa
(periodo) in funzione della semiampiezza o della
energia del pendolo, p.es. graficando il periodo T per
oscillazioni di 2 gradi, 5° , 15° 30° 90° e fino a 179
gradi e valutando v dalla espressione v2+2mgh=cost.
e T dalla T=4  0 xmax ( 1/v)dx
Periodo del pendolo
Struttura dell’algoritmo per
grafici nel piano delle fasi
• L’algoritmo per il tracciamento dei grafici nel piano delle
fasi prevede le routines fondamentali:
1)Scelta del problema differenziale da risolvere e delle scale
grafiche di rappresentazione
2)Scelta del metodo di integrazione numerica e della
tolleranza accettabile per gli eventuali integrali primi
3)Assegnazione dei parametri del calcolo: tempo iniziale e
finale dell’integrazione, numero di punti da rappresentare
nell’intervalli, n di ulteriori suddivisioni per il raffinamento
della precisione.
4)Assegnazione dei valori iniziali
5)Ripetizione del calcolo con altri valori iniziali
6)Ripetizione con altri parametri o con altri metodi.
Struttura dei dati
• Un primo blocco di variabili contiene gli estremi
dell’intervallo di integrazione, l’ampiezza del passo di
calcolo e gli estremi dei cicli di ripetizione dei passi
elementari e delle rappresentazioni dei successivi punti
• Il blocco delle variabili risultato della integrazione conterrà
per esempio il tempo t, le variabili x e y, le velocità u e v ,
assieme alle relative derivate ed a variabili ausiliarie da
impiegare nel Runge Kutta. Le variabili possono essere
organizzate in vettori: vettore y, di componenti t,x,v ed
indice da 0 a 2, vettore r , di componenti dt/dt=1, dx/dt =v,
dv/dt e vettore ya contenente le variabili ausiliarie. Oppure
con indici da 0 a 4 per il bipendolo e per il problema di
Keplero in coord. rettangolari.
Il passo base di calcolo
• Per ogni problema va assegnata una
particolare funzione vettoriale che assegna le
derivate delle funzioni incognite valutate al
tempo attuale
• Per l’oscillatore armonico: dx/dt= -y;dy/dt=x;
• Per il pendolo:
dx/dt=v;dv/dt=-sin(x)
• Per il problema di Lotka-Volterra:
dx/dt = α x - βx y
dy/dt = - γ y +δ x y
Oscillatore armonico smorzato e
amplificato
L’equazione per l’oscillatore armonico con effetti di
smorzamento o di amplificazione è:
d2x/dt2 + β dx/dt +x =0;
dove se β è una costante positiva si descrive un moto
smorzato, se β è una costante negativa si descrive un
moto amplificato (provare a graficare le mappe con
valori diversi di β )usando la consueta
trasformazione in due variabili.
Oscillatore di Van der Pol:
• L’equazione di Van der Pol è:
d2x/dt2 + µ(x) dx/dt +x =0
• Dove µ(x) è una funzione che assume valori negativi
per x “piccolo” e valori positivi per x “grande”,
descrivendo il comportamento di alcuni dispositivi
elettronici impiegati nei circuiti amplificatori ed
esemplarmente la valvola “triodo”, L’equazione
descrive il comportamento di oscillatori elettronici
disegnati per produrre onde di varie forme ed in
particolare onde “quadre”.
Van der Pol
• Rappresentiamo la funzione µ(x) con l’espressione
µ0( x2 /a2– 1) che è negativa se x è compreso tra -a e
+a e positiva fuori di tale intervallo. L’equazione di
Van der Pol è : d2x/dt2+β ( x2– 1) dx/dt + x = 0,
ottenuta con un fattore di scale nelle x, evidenziando
β, parametro adimensionale significativo.
• Si può scrivere: d/dt ( dx/dt + β ( x3/3 –x ) ) =-x,
cioè dy/dt = -x/ β, posto β y= dx/dt + β ( x3/3 –x) ,
da scriversi come: dx/dt = β (y- γ (x)). L’equazione
di secondo grado è così trasformata in una coppia di
equazioni di primo grado. Si è posto: γ(x)= x3/3 –x.
Come d’uso faremo attenzione al caso β >> 1.
Van der Pol osservazioni
• Sulla cubica γ, dx/dt è = 0 e la traiettoria ha tangente
verticale, con dy/dt di segno opposto a x; fuori dalla
cubica γ, la dx/dt non è più zero, ma è fortemente
condizionata dalla presenza del parametro β >> 1.
Lontano dalla cubica la traiettoria è pressoché
orizzontale, essendo dx/dt moltiplicato per β. In
prossimità della cubica dy/dt diviene rilevante,
negativo se x>0, e la traiettoria si piega. Discesa
sotto la γ, la traiettoria scende, perché dy/dt è
negativo, ma punta verso la γ, perché anche dx/dt è
negativo, senza tuttavia mai poterla attraversare
perché la pendenza dx/dt, che è negativa, diminuisce
ancor più in vicinanza di γ.
Van der Pol
Crescita con risorse limitate
• Si desidera talora descrivere l’evoluzione di
popolazioni che risentono di effetti di
sovraffollamento. Tali effetti possono essere descritti
dall’equazione: dx/dt = α x -ζ x2. Esistono due
“punti critici”, valori di x per i quali la crescita è
zero: x=0 ed x= α/ζ. Per tali valori di x il grafico ha
tangente orizzontale. La pendenza del grafico è
massima per x= α / (2ζ).
• A tale valore conviene attestare la dimensione della
popolazione se si intende utilizzare economicamente
la produzione e massimizzare il prelievo, che potrà
essere uguale alla crescita corrispondente a tale
dimensione, cioè α2 / (2ζ).
Problema di Lotka-Volterra
• Si intende descrivere l’interazione tra due popolazioni
viventi: le prede x ed i predatori y. Le prede dispongono di
risorse alimentari illimitate e si riproducono con tasso α.
I predatori, in assenza di prede, muoiono con tasso γ.
In assenza di predatori le prede crescono in modo
esponenziale: dx/dt =αx; in assenza di prede i predatori
decadono: dy/dt =- γy. L’interazione tra le due popolazioni
è descritta dai parameri β e δ : nell’unità di tempo in
presenza di y  0 la x diminuisce per il termine –β xy
mentre in presenza di x  0 la y aumenta del termine δ xy
Le equazioni sono dunque:
dx/dt = α x – β x y ;
dy/dt = - γ y + δ x y
Le equazioni di Lotka-Volterra
• dx/dt = α x – β x y ;
dy/dt = - γ y + δ x y
• Le derivate si annullano nei “punti critici” o “di
stazionarietà” : (x=0,y=0) e (y= α/ β , x= γ/δ)
• Sono l’origine degli assi ed un punto, intersezione di due
rette, orizzontale e verticale, tagliate ortogonalmente da
tutte le traiettorie
• In certe condizioni le prede possono risentire effetti di
“affollamento”, che descriviamo con il termine – ζ x2 e che
produce un altro punto critico in (y=0,x= α / ζ ).
• dx/dt = α x – β x y – ζ x2
• dy/dt = - γ y + δ x y
Problema di Lotka-Volterra
Lotka Volterra modificato dal
termine di affollamento
Altri problemi
• Pendolo smorzato
Pendolo forzato
bipendolo
• Bipendolo: Piano verticale, origine fissa O e due punti, Q e
P, con O Q =const,QP = const; d(OQ )/dt = v, d(QP)/dt
=w, quindi d(OP)/dt =v + w. Le equazioni cardinali vanno
proiettate sulle direzioni di v e di w, così da annullare
l’effetto delle reazioni vincolari, che restano non calcolate
fino alla determinazione delle leggi del moto.Energia
cinetica e potenziale hanno le espressioni:
• W= ½ mQ v2 + ½ mP(v+w)2,
V= g(mQ hQ + mP hP),
W= ½(mQ +mP) v2 + ½mP (w2 + 2 v w) =
½ (mQ +mP) θ’ 2 + ½ mP (φ’2 +2 θ’ φ’ cos (θ-φ)).
Posti ad uno i moduli OQ e QP ed indicando con θ’, φ’
le derivate temporali delle coordinate angolari.
• h Q= - cos θ; hP = hQ - cos φ;
V= - g( (m + m ) cos θ+ m cos φ)
Grafica bipendolo
Equazioni di Lagrange
• OQ=OQ(θ); QP=QP(φ);
vQ=d(OQ)/dt= (OQ)/ θ dθ/dt = d(OQ)/ θ θ’
• vP =d(OP)/dt= (OP)/ θ θ’ + (OP)/ dφ φ’
• Nota che (OP)/ φ è uguale a vP/ φ’
• Si cerca una espressione per aP•(OP)/θ .
Si valuti vP • (OP)/θ che si può calcolare come
vP •  vP/  θ’ e quindi ½ (v2P) /  θ’.
• Lagrange suggerisce di valutare aP • (OP)/θ come
d/dt((v2P/2)/θ’)- (v2P/2)/  θ
Equazioni di Lagrange
• Le Equazioni di Lagrange possono essere ottenute
come equazioni cardinali proiettate sul sistema di
vettori v e w, ortogonali alle reazioni vincolari, che
definiscono gli “spostamenti virtuali”:
• d/dt (W/(θ’) - W/  θ = -  V/ d θ
• d/dt (W/(φ’) - W/  φ = -  V/  φ
• (mP + mq) d2θ/dt2 + mq cos (θ-φ) d2φ /dt2 =
= -g (mP + mq) sin θ+ mq (d φ / dt) 2 sin (θ – φ)
• mq cos (θ-φ) d2θ/dt2 +
mq d2φ /dt2 =
= -g mq sin φ - mq (d θ /dt) 2 sin (θ – φ)
Forma matriciale
•  (mP +mq) , mqcos(θ-φ)  d2 θ/dt2 
|
||
|=
•  mqcos(θ-φ)
, mq d2 φ /dt2
•
=
•
- g(mP +mq)sin θ + mq (d φ /dt)2 sin (θ – φ) 
|
|
 -g mq sin φ
- mq (d θ /dt)2 sin (θ – φ) 
Soluzione (regola di Cramer)
Il sistema espresso dalla relazione matriciale:
A B x =  C
D E y =  F
si risolve con le posizioni:
den=AE-BD; numx=CE-BF;numy=AF-CD;
e quindi:
x=numx/den; y=numy/den
Soluzioni particolari
• Una volta individuate le formule per esprimere le
derivate prime delle velocità, il sistema di derivate può
essere scritto all’interno del ciclo di integrazione.
• Vanno assegnate le condizioni iniziali su posizioni e
velocità.
• Poste le velocità iniziali uguali a zero suggerisco due
tipi di condizioni iniziali per le posizioni:
• 1) la sola  oppure la sola  diverse da zero; p.es.
uguale ad 1 o a valori diversi più o meno piccoli
• 2)  = 2  e  = -  2  e  con valori diversi più o
meno piccoli
Cond.
iniz.
Tipo 1
Modi di oscillazione
Le condizioni iniziali di tipo1 presentano inizialmente
eccitata solo una delle coordinate, ma nel moto la
reazione vincolare mobilizza immediatamente anche
l’altra coordinata e le due coordinate evolvono in
modo apparentemente indipendente e scoordinato.
Nel piano [ , ] le traiettorie riempiono con “figure
di Lissajous” quadrilateri centrati in O, con assi propri
obliqui agli assi coordinati e poggiati sul valore della
variabile assegnata.
Cond.
iniz.
Tipo2
Modi normali (ortogonali)
Le condizioni iniziali di tipo 2 evolvono in modo da
mantenere la proporzione iniziale tra le due variabili,
che inoltre si muovono con la medesima frequenza.
Nel piano [ , ] le traiettorie occupano sottili rettangoli
centrati in O ed orientati nel 1° e 3° oppure nel 2° e
4° quadrante.
Le condizioni di tipo 2 eccitano i “modi normali”,
indipendenti. Le condizioni generiche, e quindi anche
le 1, vanno lette come combinazioni di moti tipo 2.
AUTOVETTORI
Il sistema A B x =  λ x
D E y =  λ y
determina particolari vettori (x,y) che, moltiplicati
dalla matrice, sono amplificati o ridotti dal fattore λ,
ma si mantengono della medesima direzione ed
hanno il nome di “autovettori”. Sono possibili due
determinazioni di λ , che prendono il nome di
“autovalori” . I vettori (x,y ) corrispondenti sono gli
“autovettori” associati a ciascun λ .
AUTOVALORI
La soluzione della equazione matriciale richiede che
det (A-λ) B  =0
D (E- λ) 
Cioè ((A-λ)(E-λ) –BD) = 0; λ2 – (A+E) λ +AE –BD =0
( (A+E) è la “traccia”, AE –BD è il “determinante”)
Ciascun autovalore permette di calcolare una possibile
determinazione del quoziente x/y o y/x) e quindi un
autovettore , per il quale è indeterminata la attuale
lunghezza.
Le “condizioni iniziali di tipo 2” corrispondono ad
autovettori della matrice del sistema lineare proposto.
Forze elastiche su punti allineati
• Si considerino ora i punti O, Q, P allineati. O è fisso,
Q ha la coordinata x, P ha la coordinata y entrambe
relative ad O. Su Q agisce una forza elastica k1 di
centro O ed una forza elastica k2 agisce tra Q e P.
• Si scrivano le equazioni del moto, per le due
funzioni incognite x ed y .
Forze elastiche su punti allineati (gr)
Due punti con forze elastiche.
•
•
•
•
•
FQ = -k1 x + k2 (y-x)
FP = - k2 (y-x)
mQ d2x/dt2 = - (k1 + k2 ) x + k2 y
mP d2y/dt2 =
k 2 x - k2 y
Poste uguali ad 1 , per semplicità, le masse e le costanti
elastiche, l’equazione agli autovalori è (–2 –λ)(–1–λ) –1 = 0
Cioè λ2 + 3λ + 1 = 0, con soluzioni (-3 ± sqrt(5))/2,
-0.381966 e -2.618 . Introdotti tali valori nella equazione
matriciale si ottiene x = 0.618 y e x = - 1.618 y.
Questi sono gli autovettori che danno luogo ai “modi
normali” di oscillazione.
Moto Kepleriano
In coordinate rettangolari x ed y:
• r2 = x2 + y2 ; r3 = r2 sqrt(r2)
• dx/dt=v ; dv/dt=-Kx/(r3);
• dy/dt=w; dw/dt=-Ky/(r3)
In coordinate centrali r e θ : posto OP = ru, u è il versore
radiale e v ad esso ortogonale è il versore trasverso.
La velocità d(ru)/dt ha componenti
dr/dt u+ r(du/dt) = dr/dt u+ r (dθ/dt) v
e l’accelerazione
(d2 r/dt2 - r (d θ /dt) 2) u + (r (d2θ /dt2) +2 (dr/dt) (dθ/dt)) v=
(d2 r/dt2 - r (d θ /dt) 2) u + 1/r (d(r 2(dθ/dt)) /dt) v.
Moto Kepleriano 2
Conforme la legge di Newton l’accelerazione è radiale:
a= (-K/r2)u . L’annullarsi di d(r 2(dθ/dt)) /dt
conduce all’integrale primo r2ω = cost; con ω = dθ/dt , e
dθ/dt = cost/r2 ; dr/dt = dr/dθ dθ/dt = - cost d(1/r)/dθ.
d2r/dt2 = dθ/dt d(dr/dt) / dθ = - cost dθ/dt d2 (1/r)/dθ2
= - cost2 (1/r2) d2 (1/r) / dθ2 = - K/r2 .
Appare come se la variabile naturale fosse anziché r la y=1/r.
si può infatti scrivere
-cost2(1/r2) +d2 (1/r)/dθ2 = y2 +d2 y/dθ2 = cost2 /K, che è
analoga alla equazione del pendolo, con un termine non
omogeneo.
Moti centrali coord,radiali
Moti caotici
• Moti caotici
Mappa standard :
• (x,v) -> Φ (x,v) ->(x+v,v+εsin(x))
il comportamento caotico è regolato dal
valore del piccolo parametro ε.
Moti caotici
Runge Kutta del secondo
ordine
• Un Runge Kutta del secondo ordine nella
incognita (vettoriale) y può essere
programmato prevedendo la variabile
(vettoriale) ausiliaria ya ( e l’ulteriore variabile
yo destinata a contenere i valori iniziali) . La
variabile (vettoriale) r contiene, dopo
ciascuna invocazione della routine “derivate”,
i valori delle derivate delle componenti di y,
calcolate dai valori delle y attuali.
Metodo di Heun
• Si valuti dunque r, derivata di y; si valuti un
incremento parziale ½ h r e si memorizzi ya=y
+ ½ h r. Un valore provvisorio per y al tempo
t+h si ottiene sommando ancora l’incremento
parziale: y=ya+ ½ h r. Tale valore è quello che
si otterrebbe con il metodo di Eulero (preciso
entro O(h2)). Si invoca nuovamente la routine
per il calcolo delle derivate e si ottengono i
nuovi valori delle componenti di r che offrono un
valore di y preciso entro O(h3) y=ya+ ½ h r.
Una ulteriore correzione si ottiene, una volta
valutata r nel più preciso valore più recente di y,
ripetendo ancora il calcolo y=ya+ ½ h r.
Precisione del 4to ordine
punti da rappresentare e passi di integrazione
• L’intervallo complessivo di calcolo 0-T va
suddiviso in intervalli minori, tra uno e l’altro dei
punti da rappresentare in uscita , e quindi, se
necessario, in sottointervalli che consentano di
restare in un conveniente raggio di convergenza per gli sviluppi formali. L’effettivo passo elementare di calcolo sarà caratterizzato dall’incremento temporale : step = T/(npunti*ndiv)
Precisione del
to
4
ordine
cicli interni di calcolo
Tale passo elementare comprende un ciclo
(passoru) ripetuto quattro volte (indice iru) che
inizia con la chiamata a deriv e contiene un ciclo
interno (incre), da ripetere per ciascuna variabile
del sistema dinamico (indice ivar).
Tale ciclo interno è il nocciolo dell’integratore e
definisce due variabili interne, rr ed aum, cui va
consentita la massima precisione disponibile.
Runge Kutta Gill
• q = (0.5); aa = [1/2,1-q,1+q,1/6] ;
• bb=[2,1,1,2]; cc=[1/2,1-q,1+q,1/2];
• Iniziotraccia ;Valin;
(la routine assegna i valori iniziali e determina il valore logico FINE)
• : Ripeti per ipunti = 1 to npunti
• Ripeti per idiv= 1 to ndiv; Ripeti per iru = 1 to 4; deriv
• Ripeti per ivar = 1 to nvar(questo è il ciclo interno “incre”)
rr=r(ivar)*step;
aum=aa(iru)*(rr-bb(iru)*ya(ivar))
y(ivar)=y(ivar)+aum
ya(ivar) =ya(ivar) +3*aum –cc(iru)*rr
Fineivar ; Fineiru ; Fineidiv ; segnapunto;
Fineipunti; Valin; se non fine vai a iniziotraccia ; FIN
procedure
• Costanti vettoriali : sono aa,bb,cc; “vettori” sono y, che
contiene le variabili del problema, r che contiene le derivate,
ya che contiene variabili ausiliarie, corrispondenti alle y , y0
che contiene i valori iniziali, chiesti dalla procedura valin ed
assegnati dalla medesima alle y , ad ogni inizio di traiettoria.
• Valin : assegna i valori iniziali per il giro successivo e
stabilisce il valore logico della variabile “fine”
• Deriv: assegna le espressioni delle derivate
• Incre: assegna gli incrementi alle variabili
• Passoru: valuta gli incrementi parziali secondo il metodo
Runge-Kutta
• Segnapunto: trasferisce al file output ( o ai vettori da plottare
i valori delle variabili integrate
• Iniziotraccia inizializza una nuova tavola per lo stesso
problema, modificando npunti,ndiv.
Runge Kutta Gill
Le formule Runge – Kutta - Gill realizzano la
precisione del 4to ordine. Si definiscono in
primo luogo la costante q = (0.5) e tre vettori di
costanti: aa = [1/2,1-q,1+q,1/6], bb=[2,1,1,2] e
cc=[1/2,1-q,1+q,1/2].
Tali costanti vengono impiegate nel ciclo interno,
di indice iru che va da 1 a 4 per esplorare le quattro determinazioni di G che realizzano il processo. Ciascuna iterazione del ciclo iru inizia con la
chiamata alla funzione deriv e viene applicata,
con l’indice ivar, a ciascuna variabile dinamica.
Integratori passo passo Runge-Kutta
• L’intervallo complessivo di calcolo 0 - T va
suddiviso in intervalli minori, tra l’uno e l’altro
dei punti da rappresentare in uscita , e quindi,
se necessario, in sottointervalli che consentano
di restare in un conveniente raggio di
convergenza per gli sviluppi formali. L’effettivo
passo elementare di calcolo sarà:
step = T/(npunti*ndiv).
Ciclo interno Runge-Kutta Gill
• Tale passo elementare comprende un ciclo
(passoru) ripetuto quattro volte (indice iru) che
inizia con la chiamata a deriv e contiene un
ciclo interno (incre), da ripetere per ciascuna
variabile del sistema dinamico (indice ivar).
• Il ciclo interno di indice iru è il nocciolo
dell’integratore e definisce due variabili interne,
rr ed aum, cui va consentita la massima
precisione disponibile.
Metodi simplettici
Runge-K,Multipasso,problemi
stiff
Scarica

Esercitazioni numeriche