Fisica - Corso di laurea Fisica - Fondamenti di Fisica Computazionale: A.A. 2019-20, Docente: Claudio Melis - UniCa
←
→
Trascrizione del contenuto della pagina
Se il tuo browser non visualizza correttamente la pagina, ti preghiamo di leggere il contenuto della pagina quaggiù
Fondamenti di Fisica Computazionale: A.A. 2019-20, Docente: Claudio Melis Fisica Corso di laurea 1 Fisica
Fondamenti di Fisica Computazionale: A.A. 2019-20, Docente: Claudio Melis B.1 - Equazioni Differenziali Ordinarie Orbite dei Pianeti • La figura mostra un ipotetico sistema solare con un pianeta che nominiamo Terra in orbita attorno al Sole Terra • L’unica forza in gioco è l’attrazione gravitazionale che, secondo la legge di Newton è: GMm FG = r2 Sole • dove M ed m sono le masse del sole della terra, r è la loro distanza, G la costante di gravitazione universale Corso di laurea 2 Fisica
Fondamenti di Fisica Computazionale: A.A. 2019-20, Docente: Claudio Melis B.1 - Equazioni Differenziali Ordinarie Orbite dei Pianeti • Assumiamo che la massa del sole sia sufficientemente grande da poterne trascurare il moto. Terra • Il nostro obiettivo è calcolare la posizione della terra in funzione del tempo utilizzando la seconda legge di Newton: d 2 x FG,x = dt 2 ME • dove FG,x ed FG,y sono le Sole componenti x e y della forza gravitazionale. d 2y FG,y = dt 2 ME Corso di laurea 3 Fisica
Fondamenti di Fisica Computazionale: A.A. 2019-20, Docente: Claudio Melis B.1 - Equazioni Differenziali Ordinarie Orbite dei Pianeti • Analizzando la figura risulta quindi: GMm GMm Terra FG,x = − 2 cosθ = − 3 x r r GMm GMm FG,x = − 2 sinθ = − 3 y r r Sole • Anche in questo caso abbiamo a che fare con le equazioni dif- ferenziali ordinarie, come nel caso dell’oscillatore. • La novità è che trattandosi di un sistema a due dimensioni, ne dovremo risolvere due contemporaneamente, una per componente. x = rcos(θ) , y = rsin(θ) Corso di laurea 4 Fisica
Fondamenti di Fisica Computazionale: A.A. 2019-20, Docente: Claudio Melis B.1 - Equazioni Differenziali Ordinarie Orbite dei Pianeti • Scegliamo il sistema di unità di misura. • L’opzione piu’ immediata è quella del Sistema Internazionale. Tuttavia la scelta dei metri e dei secondi rende la scala del problema difficilmente gestibile. • Per esempio, il raggio della terra è di circa 1.5x1011 m, perciò’ un grafico che mostra l’orbita terrestre dovrebbe avere dei label dell’ordine di 1011. • Per questo motivo è molto piu’ conveniente scegliere le unità astronomiche AU definite come la distanza media Sole-Terra =1.496x1011 m. • Inoltre è conveniente misurare il tempo in anni=3.2x107 s. Corso di laurea 5 Fisica
Fondamenti di Fisica Computazionale: A.A. 2019-20, Docente: Claudio Melis B.1 - Equazioni Differenziali Ordinarie Orbite dei Pianeti • abbiamo due metodi: Cromer e Verlet, commentando uno dei due possiamo provarne l’accuratezza e l’affidabilità; • poiché il sistema è bidimensionale abbiamo due componenti per la posizione (x, y), la velocità (vx, vy), e l’accelerazione (Fx, Fy), ognuna delle quali si calcola allo stesso modo di quello previsto dallo schema di integrazione; • calcoliamo il raggio a partire dalle coordinate (x, y) appena calcolate, perché esso è richiesto per il calcolo dell’accelerazione; • al posto della forma var1=var0+..., con due variabili, denominate con 0 e 1, che indicavano la variabile allo tempo n e n + 1, usiamo la forma var+=... che aggiunge al valore già contenuto nella variabile il nuovo valore; questo ci permette di non dover aggiornare la variabile 0 con quella 1 dopo averla calcolata (var0=var1); • anche qui salviamo la posizione e la velocità in appositi arrays. Affinchè il programma sia completo ci servono le definizioni delle costanti usate dentro il ciclo e delle condizioni iniziali, Corso di laurea 6 Fisica
dt2 ME dt2 ME Vediamo di seguito il corpo principale del p Fondamenti di Fisica Computazionale: GME MS A.A. GME MS 2019-20, Docente: da un ciclo Claudio for che contiene Melis uno dei metodi d Fx = cos q, F = sin precedenza q e lo esegue iterativamente: y r2 r2 for istep in range(Nstep): Anche in questo caso abbiamo a che fare con le equazioni Fx=-GM*x/r dif- **3 B.1 - Equazioni ferenziali ordinarie, come nel caso Differenziali dell’oscillatore.Ordinarie La novità Fy=-GM*èy/r che **3 trattandosi di un sistema a due dimensioni, ne dovremo risolvere due #Eulero-Cromer contemporaneamente, una per componente. #vx+=tau*Fx Orbite dei Pianeti Vediamo di seguito il corpo principale del programma,#vy+=tau constituito*Fy #x+=tau*vx • Vediamo di seguito il corpo principale del programma, costituito da un ciclo for che contiene uno dei metodi di integrazione davisti un ciclo in for che contiene #y+=tau * vy uno dei metodi di integrazione visti precedenza e lo esegue iterativamente: in precedenza e lo esegue iterativamente: #r=sqrt(x**2+y**2) for istep in range(Nstep): #velocity-Verlet x+=vx*tau+0.5*Fx*tau**2 Fx=-GM*x/r**3 y+=vy*tau+0.5*Fy*tau**2 Fy=-GM*y/r**3 r=sqrt(x**2+y**2) F1x=-GM*x/r**3 F1y=-GM*y/r**3 #Eulero-Cromer vx+=0.5*tau*(Fx+F1x) #vx+=tau*Fx vy+=0.5*tau*(Fy+F1y) #vy+=tau*Fy x_arr[istep+1]=x #x+=tau*vx y_arr[istep+1]=y #y+=tau*vy vx_arr[istep+1]=vx #r=sqrt(x**2+y**2) vy_arr[istep+1]=vy Spieghiamo i punti di novità rispetto a quan #velocity-Verlet Corso di laurea 7 Fisica 1D:
Fondamenti di Fisica Computazionale: A.A. 2019-20, Docente: Claudio Melis B.1 - Equazioni Differenziali Ordinarie Orbite dei Pianeti • . Affinché il programma sia completo ci servono le definizioni delle costanti usate dentro il ciclo e delle condizioni iniziali, vediamole di seguito: • Nel nostro caso il raggio dell’orbita è di 1 AU • La scelta della velocità iniziale è cruciale: una velocità iniziale troppo bassa genererà orbite ellittiche schiacciate lungo l’asse x, una velocità troppo alta genererà orbite ellittiche schiacciate lungo l’asse y • Nel nostro caso il raggio dell’orbita è di 1 AU • Il valore ottimale può’ essere stimato considerando che la terra compie un giro completo (2π) dell’orbita in un anno. Quindi la velocità sarà 2πr/1 Anno= 2π Corso di laurea 8 Fisica
Fondamenti di Fisica Computazionale: A.A. 2019-20, Docente: Claudio Melis B.1 - Equazioni Differenziali Ordinarie Orbite dei Pianeti • Pel calcolare l’accelerazione dobbiamo calcolare il prodotto G x M: • Essendo la forza gravitazionale una forza centripeta risulta: GMm mv 2 GMm 2πr = = mv 2 v= r2 r r T 2 2 dal momento che le unità di 4π r lunghezza sono in UA ed il tempo è GM = 4π 2 GM = espresso in anni solari T2 Corso di laurea 9 Fisica
la posizione ( x, y), la velocità (v x , vy ), e l’accelerazione ( Fx , Fy ), ognuna delle quali si calcola allo stesso modo di quello previsto Fondamenti di Fisica Computazionale: A.A. 2019-20, Docente: dallo schema di integrazione; Claudio Melis • calcoliamo il raggio a partire dalle coordinate ( x, y) appena calco- late, perchè esso è richiesto per il calcolo dell’accelerazione; • al posto della forma var1=var0+..., con due variabili, denomi- B.1 - Equazioni Differenziali Ordinarie nate con 0 e 1, che indicavano la variabile allo tempo n e n + 1, usiamo la forma var+=... che aggiunge al valore gia conte- nuto nella variabile il nuovo valore; questo ci permette di non Orbite dei Pianeti dover aggiornare la variabile 0 con quella 1 dopo averla calcolata (var0=var1); • .•Affinché il programma anche qui salviamo siae completo la posizione la velocità in ci servono appositi arrays.le definizioni delle costanti usate Affinchè il dentro il programma ciclo e delle sia completo condizioni ci servono le definizioni iniziali, vediamole delledi seguito: costanti usate dentro il ciclo e delle condizioni iniziali, vediamole di seguito: #Costanti moto GM = 4*pi**2 # G*M in unita astronomiche (UA) • Notiamo come si siano usate le unità m=5.9722E+24 # massa terra (kg) astronomiche: quindi le lunghezze espresse in termini di distanza media #Posizioni e velocit\‘a iniziali in UA, al perielio x=0.98 Terra-Sole e il tempo in anni. Queste y=0.0 unità sono più adatte al sistema che r=sqrt(x**2+y**2) stiamo trattando vx=0.0 vy=2*pi # Nstep*tau \‘e il tempo totale in anni Nstep=1000 # Numero di passi temporali tau=0.001 # lunghezza singolo passo temporale #arrays posizione e velocit\‘a Corso di laurea 10 Fisica
Fondamenti di Fisica Computazionale: A.A. 2019-20, Docente: Claudio Melis #Costanti moto GM = 4*pi**2 # G*M in unita astronomiche (UA) m=5.9722E+24 # massa terra (kg) #Posizioni e velocit\‘a iniziali in UA, al perielio x=0.98 B.1 - Equazioni Differenziali Ordinarie y=0.0 r=sqrt(x**2+y**2) vx=0.0 Orbite dei Pianeti vy=2*pi # Nstep*tau \‘e il tempo totale in anni Nstep=1000 # Numero di passi temporali tau=0.001 # lunghezza singolo passo temporale #arrays posizione e velocit\‘a • Notiamo come si siano usate le unità x_arr=zeros(Nstep+1) y_arr=zeros(Nstep+1) astronomiche: quindi le lunghezze vx_arr=zeros(Nstep+1) espresse in termini di distanza media vy_arr=zeros(Nstep+1) Terra-Sole e il tempo in anni. Queste unità sono più adatte al sistema che #Salvataggio delle condizioni iniziali x_arr[0]=x stiamo trattando y_arr[0]=y vx_arr[0]=vx vy_arr[0]=vy Notiamo come si siano usate le unità astronomiche: quindi le lunghezze espresse in termini di distanza media Terra-Sole e il tempo in anni. Queste unità sono più adatte al sistema che stiamo trattando Corso di laurea 11 Fisica
Fondamenti di Fisica Computazionale: A.A. 2019-20, Docente: Claudio fonda Melis B.1 - Equazioni Differenziali Ordinarie fondamenti di fisica computazionale 71 e ci permettono di ridurre il numero di iterazioni da compiere, qu il tempo di attesa Orbite e il costo dei computazionale. Pianeti i ridurre il numero di iterazioni da compiere, quindi Le condizioni • Le condizioni e il singola iniziali iniziali proposte costo computazionale. proposte sono relative sono al pianeta Terra. orbita (Nstep*tau=1 anni) quasi circolare. relative Ci aspettiamo al quindipianeta di osservare Terr una aspettiamo iniziali proposte sonoquindirelative aldi osservare pianeta Terra. Ciuna singola orbita (Nstep tau= • Facciamo il grafico al solito modo, poi eguagliamo la scala dei due assi in maniera che l’orbita * non i di osservare una singola orbita (Nstep*tau=1 an- venga distorta: ni) quasi . Facciamo circolare. il grafico Facciamo al solito modo, il grafico al solito modo, poi eguagl poi eguagliamo ssi in maniera che l’orbita non venga distorta: la scala dei due assi in maniera che l’orbita non venga distorta: arr) plot(x_arr,y_arr) stra axis(’equal’) il grafico atteso. orbite di altri pianeti basterà impostare la posizione li come fatto per la Terra, regolare il numero di step, La Fig. 3.4 mostra il grafico ente il programma e infine fare il grafico. Potremo atteso. Per generare edere all’utente le orbite di inserire questi di altri parametri, come pianeti Figura basterà 3.4: Orbita impostare la posiz terrestre, quasi o per l’oscillatore: circolare. e la velocità iniziali come fatto per la Terra, regolare il numero di Corso zione iniziale perieli\‘o) di laurea 12 Fisica
ni) quasi circolare. Facciamo il grafico al solito modo, poi eguagliamo laFondamenti scala dei duediassi Fisica Computazionale: in maniera che l’orbita A.A. 2019-20, non venga Docente: Claudio Melis distorta: plot(x_arr,y_arr) axis(’equal’) B.1 - Equazioni Differenziali Ordinarie La Fig. 3.4 mostra il grafico atteso. Per generare le orbite di altri pianeti Orbite basterà dei impostare la posizione Pianeti e lagenerare • Per velocitàleiniziali orbite dicome fatto per altri pianeti la Terra, basterà regolare impostare il numero la posizione di step, iniziali come fatto e la velocità eseguire per nuovamente la Terra, il programma regolare il numero e infinenuovamente di step, eseguire fare il grafico. Potremo il programma e infine fare il grafico. per comodità • Potremo chiedere per comodità all’utente chiedere all’utentedidiinserire questi inserire questi parametri, parametri, comecome abbiamo visto per 3.4: Or Figura l’oscillatore: abbiamo gia visto per l’oscillatore: circolare. x=input(’Posizione iniziale perieli\‘o) vy=input(’Velocit\‘a iniziale perieli\‘o) Nstep=input(’Numero di passi’) Eseguendo • Eseguendo il programma il programma più più volte, volte, lasciando lasciando la prima la prima finestra delfinestra del inseriamo i grafico aperta, grafico seguenti aperta, paremetri:inseriamo i seguenti Nstep=1000, x = 0.98, vyparemetri: =2π, 2π+1, 2Nstep=1000, x = π+0.5, 2π-0.5, 2π-1 • 0.98, vy = Lasciamo 2pi, fisso 2pi + 1,di2pi il numero +e0.5, passi 2pi 0.5, la posizione 2pi e 1; iniziale quindi lalasciamo cambiamo velocità iniziale lungo y. fisso il numero di passi e la posizione iniziale e cambiamo la velocità iniziale lungo y. Il grafico che si ottiene è mostrato in Fig. 3.5. Come osserviamo, le due orbite più grandi della blu (terrestre) Corso di laurea 13 Fisica non si chiudono per via del fatto che Nstep=1000 non è sufficiente.
’equal’) Fondamenti di Fisica Computazionale: A.A. 2019-20, Docente: Claudio Melis g. 3.4 mostra il grafico atteso. enerare le orbite di altri pianeti basterà impostare la posizione ocità iniziali come fatto B.1per la Terra, regolare - Equazioni il numero di step,Ordinarie Differenziali e nuovamente il programma e infine fare il grafico. Potremo modità chiedere all’utente di inserire questi parametri, come Figura 3.4: Orbita terrestre, quasi o gia visto per l’oscillatore: Orbite dei Pianeti circolare. ut(’Posizione iniziale perieli\‘o) put(’Velocit\‘a iniziale perieli\‘o) =input(’Numero di passi’) • Le due uendo orbite più grandi il programma dellalasciando più volte, blu (terrestre) non finestra la prima si del chiudono per via del fatto che Nstep=1000 non è aperta, inseriamo i seguenti paremetri: Nstep=1000, x = sufficiente. = 2pi, 2pi + 1, 2pi + 0.5, 2pi 0.5, 2pi 1; quindi lasciamo • Viceversa numero le orbite di passi più piccole e la posizione della blu iniziale sono piu lunghe e cambiamo di la velocità un singolo giro. lungo y. Il grafico che si ottiene è mostrato in Fig. 3.5. e osserviamo, le due orbite più grandi della blu (terrestre) hiudono per via del fatto che Nstep=1000 non è sufficiente. sa le orbite più piccole della blu sono piu lunghe di un singolo Figura 3.5: Orbite ottenute variando la velocità iniziale rispetto a quella olessimo calcolare altre quantità legate al moto del pianeta in terrestre di 2p ttorno al sole, come ad esempio il raggio, l’angolo q tra raggio x, velocità angolare, energia cinetica e potenziale, 14il metodo Corso di laurea Fisica
vy=input(’Velocit\‘a iniziale perieli\‘o) Nstep=input(’Numero di passi’) Fondamenti di Fisica Computazionale: A.A. 2019-20, Docente: Claudio Melis Eseguendo il programma più volte, lasciando la prima finestra del grafico aperta, inseriamo i seguenti paremetri: Nstep=1000, x = 0.98, vy = 2pi, 2pi + 1, 2pi + 0.5, 2pi 0.5, 2pi 1; quindi lasciamo B.1 - Equazioni Differenziali Ordinarie fisso il numero di passi e la posizione iniziale e cambiamo la velocità iniziale lungo y. Il grafico che si ottiene è mostrato in Fig. 3.5. Come osserviamo, le due orbite più grandi della blu (terrestre) non si chiudono per via del fatto che Nstep=1000 non è sufficiente. Orbite dei Pianeti Viceversa le orbite più piccole della blu sono piu lunghe di un singolo giro. Figura 3.5: Orbite ottenute variando la velocità iniziale rispetto a quella • Se volessimo Vogliamo calcolarealtre calcolare altre quantità quantità legate al moto legate al del motopianeta delinpianeta indiorbita terrestre 2p attorno al sole, come ad orbita attorno esempio al sole, come il raggio, l’angolo θ ad esempiotrail raggio, raggio l’angolo q tra raggio e asse x, velocità angolare, energia cinetica e e asse x, velocità angolare, energia cinetica e potenziale, il metodo potenziale è sempre lo stesso: aggiungiamo un array per la grandezza scelta, • impostiamo la prima Aggiungiamo un arraycomponente per lain grandezza base alle condizioni scelta,iniziali e impostiamo la prima componente in base poi scriviamo ad ogni iterazione il nuovo valore nelle componenti alle condizioni iniziali e poi scriviamo ad ogni iterazione il nuovo valore nelle componenti successive, come di seguito mostrato per l’angolo θ: successive, come di seguito mostrato per l’angolo q: ... theta_arr=zeros(Nstep+1) theta_arr[0]=arctan2(y,x) ... • La funzione arctan2(y,x) ci permette di for istep in range(Nstep): calcolare l’angolo compreso tra raggio e ... asse x in base alle coordinate (x, y) della theta_arr[istep+1]=arctan2(y,x) posizione del pianeta. time_arr=linspace(0,Nstep*tau,Nstep+1) plot(time_arr,theta_arr) La funzione arctan2(y,x) ci permette di calcolare l’angolo com- Corso di laurea Fisica preso tra raggio e asse x in base alle coordinate ( x, y) della15 posizione
Fondamenti di Fisica Computazionale: A.A. 2019-20, Docente: Claudio Melis B.1 - Equazioni Differenziali Ordinarie Orbite dei Pianeti • Il grafico per il caso della terra e per il caso di maggiore eccentricità dell’orbita (ottenuto con vy = 2π-1) è mostrato in Figura 72 francesco ricci, vincenzo fio • L’angolo cresce linearmente nel caso di orbita circolare, come nel caso approssimato della ca terra. m • I salti che si vedono son dovuti al fatto che la funzione artan2() restituisce solo angoli ca compresi tra -π e π. ch • Quando l’orbita è ellitica, la velocità del pianeta Q non è piu costante per cui l’angolo varia piu pe velocemente in corrispondenza del afelio. Figura 3.6: Raggio dell’orbita terrestre Corso di laurea 16 Fisica e di una più eccentrica in funzione del
Fondamenti di Fisica Computazionale: A.A. 2019-20, Docente: Claudio Melis B.1 - Equazioni Differenziali Ordinarie Orbite dei Pianeti • Calcoliamo ora l’e energia cinetica e potenziale • Aggiungiamo un array per le grandezze scelte, impostiamo la prima componente in base alle condizioni iniziali e poi scriviamo ad ogni iterazione il nuovo valore nelle componenti successive, come di seguito mostrato per l’energia cinetica e potenziale: Corso di laurea 17 Fisica
Fondamenti di Fisica Computazionale: A.A. 2019-20, Docente: Claudio Melis B.1 - Equazioni Differenziali Ordinarie Orbite dei Pianeti • Calcoliamo ora l’e energia cinetica e potenziale • Aggiungiamo un array per le grandezze scelte, impostiamo la prima componente in base alle condizioni iniziali e poi scriviamo ad ogni iterazione il nuovo valore nelle componenti successive, come di seguito mostrato per l’energia cinetica e potenziale: • Come previsto l’energia cinetica e potenziale variano in maniera da conservare l’energia totale • L’algoritmo di Verlet con i parametri che abbiamo selezionato conserva in modo ottimale l’energia totale del sistema. Corso di laurea 18 Fisica
Fondamenti di Fisica Computazionale: A.A. 2019-20, Docente: Claudio Melis B.1 - Equazioni Differenziali Ordinarie Orbite dei Pianeti • La terza legge di Keplero afferma che: «I quadrati dei tempi che i pianeti impiegano a percorrere le loro orbite sono proporzionali al cubo delle loro distanze medie dal Sole.» • Per un'orbita circolare la formula si riduce a k = GMm 2 T 4π μ 2 = K dove K= r3 k μ= massa ridotta del sistema Corso di laurea 19 Fisica
Puoi anche leggere