La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Fare scienza con il computer - appunti II incontro - 19 gennaio 2007 M. Peressi.

Presentazioni simili


Presentazione sul tema: "Fare scienza con il computer - appunti II incontro - 19 gennaio 2007 M. Peressi."— Transcript della presentazione:

1 Fare scienza con il computer - appunti II incontro - 19 gennaio 2007 M. Peressi

2 FILES DA COPIARE: Calcola.java Calcolai.java Sommameta.java MotoParabolico.java MotoParabolico2.java PuntoMateriale.java Vettore.java E POI USEREMO: gnuplot BlueJ

3 Evoluzione nel tempo - I A volte (poche!) conosciamo esplicitamente la legge oraria del moto, ad esempio: moto uniforme (=con velocita costante) moto uniformemente accelerato (=con accelerazione costante):

4 Ma pochi moti avvengono in una dimensione... Generalizziamo almeno al caso bidimensionale, ricordando la scomposizione di un vettore v nelle sue componenti v x, v y nel piano cartesiano: (vale per vettore posizione, velocita, accelerazione, forza...) Utile nel caso di un corpo soggetto alla gravita sulla superficie terrestre: con la scelta dellasse y verticale e F x = 0, F y = -mg (costante) e quindi : a x = 0, a y = -g (costante)

5 In tal caso e immediato calcolare e per un qualunque, date e, come e fatto in MotoParabolico.java, dove e descritto appunto il moto uniforme in e uniformemente accelerato in di un corpo soggetto a gravita:... t = i*dt; x = x0 + vx0*t ; y = y0 + vy0*t - 0.5*g*t*t;... e un ciclo su t (cioe su i ) permette di calcolare levoluzione:

6 Per i grafici possiamo usare gnuplot: t, x e y possono essere scritti su un file (vedi moto.dat): $ gnuplot G N U P L O T Version 3.7 patchlevel 3 last modified Thu Dec 12 13:00:00 GMT Terminal type set to 'x11' gnuplot> p 'moto.dat' u 1:2 gnuplot>

7 i grafici (con gnuplot ) di x e y in funzione del tempo: e quello della traiettoria (per ogni istante di tempo, rappresento il punto (x,y) e cosi ottengo y in funzione di x):

8 Evoluzione nel tempo - II Ma si puo anche costruire a pezzetti levoluzione temporale, calcolando a partire da ; da notare pero che la velocita da usare non e quella iniziale, ma quella in quellistante di tempo, cioe. Se e presente unaccelerazione, in generale si avra :

9 Questo e lalgoritmo di EULERO Solita equazione del moto uniformemente accelerato, ma riferita allintervallino di tempo, che va ripetutamente applicata da un intervallo a quello successivo (iterazione). iterare

10 Cosi e implementato in modo del tutto generale in PuntoMateriale.java per e e relative velocita, e dove, sempre per massima generalita, laccelerazione e dedotta dalla forza (ricordiamo F=ma): public Vettore getPosEulero( ax = forza(pos).x/massa; ay = forza(pos).y/massa; pos.x = pos.x + vel.x * dt * ax * dt * dt ; pos.y = pos.y + vel.y * dt * ay * dt * dt ; vel.x = vel.x + ax * dt; vel.y = vel.y + ay * dt;... (pos.x, pos.y : componenti x e y del vettore pos ; analogamente per vel.x, vel.y, f.x, f.y,...)

11 ... e il programma MotoParabolico2.java utilizza la classe PuntoMateriale e quindi getPosEulero per e e velocita, con lopportuna precisazione delle condizioni iniziali:... PuntoMateriale(x0,y0,vx0,vy0,t0,massa) public Vettore forza(Vettore p){ f.x = 0; f.y = - massa * g; return f; } Si ritrova lesempio iniziale (moto uniformemente accelerato di un grave) definendo correttamente la forza in PuntoMateriale.java:

12 Strada piu complicata... pero piu generale, possibile seguirla anche al caso non banale in cui la forza NON sia costante nel tempo, e/o dipenda dalla posizione (vedremo gravitazione universale [Keplero]!) o dalla velocita. Qualunque moto puo essere spezzettato in intervallini di tempo piccoli in cui possa essere considerato uniformemente accelerato: e i risultati sono gli stessi di prima...

13 x(2) v(2)x(3) v(3) x(1) v(1)... a partire da: alla fratelli Lumiere...

14 Strada piu complicata... pero piu generale, possibile seguirla anche al caso non banale in cui la forza NON sia costante nel tempo, e/o dipenda dalla posizione (vedremo gravitazione universale [Keplero]!) o dalla velocita. Ad esempio aggiungiamo un attrito dipendente dalla velocita:. In PuntoMateriale.java : final private double gamma = 1.0 public Vettore forza(Vettore p, Vettore v){ f.x = - gamma * v.x; f.y = - massa * g - gamma * v.y; return }

15 risultati ??? mentre con carta e penna questo problema e MOLTO piu difficile da risolvere, con il computer no!......

16 i grafici (con gnuplot ) di x e y in funzione del tempo: e quello della traiettoria :


Scaricare ppt "Fare scienza con il computer - appunti II incontro - 19 gennaio 2007 M. Peressi."

Presentazioni simili


Annunci Google