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

Presentazioni simili


Presentazione sul tema: "Fare scienza con il computer - appunti II incontro - 19 gennaio 2007"— 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 vx , vy 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 dell’asse y verticale e’ Fx = 0, Fy = -mg (costante) e quindi : ax = 0, ay = -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 l’evoluzione:

6 t, x e y possono essere scritti su un file (vedi moto.dat):
Per i grafici possiamo usare gnuplot: $ gnuplot G N U P L O T Version 3.7 patchlevel 3 last modified Thu Dec 12 13:00:00 GMT 2002 ..... 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” l’evoluzione temporale, calcolando a partire da ; da notare pero’ che la velocita’ da usare non e’ quella iniziale, ma quella in quell’istante di tempo, cioe’ Se e’ presente un’accelerazione, in generale si avra’ :

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

10 Cosi’ e’ implementato in modo del tutto generale in PuntoMateriale
Cosi’ e’ implementato in modo del tutto generale in PuntoMateriale.java per e e relative velocita’, e dove, sempre per massima generalita’, l’accelerazione 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 l’opportuna precisazione delle condizioni iniziali: ... PuntoMateriale(x0,y0,vx0,vy0,t0,massa) Si ritrova l’esempio iniziale (moto uniformemente accelerato di un grave) definendo correttamente la forza in PuntoMateriale.java: public Vettore forza(Vettore p){ f.x = 0; f.y = - massa * g; return f; }

12 e i risultati sono gli stessi di prima...
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:

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

14 Strada piu’ complicata
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"

Presentazioni simili


Annunci Google