<jupyter_start><jupyter_text>Caduta liberaUn corpo, inizialmente fermo ad un'altezza $ h $ rispetto al suolo, viene lasciato cadere sotto l'azione della forza di gravità esercitata dalla Terra.Trascurando la resistenza dell'aria, tutti i corpi precipitano con accelerazione costante $ g $, detta accelerazione di gravità:$$ g \simeq 9.81~m/s^2 $$Si possono calcolare:* Il **tempo di caduta**, in altre parole il tempo necessario a raggiungere il suolo.* La **velocità** di arrivo al suolo.<jupyter_code># Utilizzato per importare la libreria adoperata per i video.
from IPython.display import Video


# Utilizzato per importare e visualizzare il file video.
Video("./Video/Caduta_libera.mp4", height = 500, width = 500)<jupyter_output><empty_output><jupyter_text>Discussione del problema Tempo di cadutaSupponiamo per semplicità che il corpo sia puntiforme. Se il corpo si muove lungo un asse $ x $ con accelerazione costante $ a $ (**moto uniformemente accelerato**), la coordinata $ x $ dipende dal tempo $ t $ tramite la relazione:$$ x = x_0 + (v_0 \cdot t) + (\dfrac{a \cdot t^2}{2}) $$In questo esempio scegliamo l'asse $ x $ diretta verticalmente e orientata verso il basso e l'origine $ O $ nella posizione iniziale del corpo; si avrà così $ x_0 = 0 $. Inoltre anche $ v_0 = 0 $ perchè il corpo ha velocità iniziale nulla.Risulta quindi:$$ x = \dfrac{a \cdot t^2}{2} $$Si sostituisce ad $ a $ il valore dell'accelerazione di gravità. Nell'equazione per $ x(t) $ si considera il **tempo di caduta**, la distanza percorsa è uguale alla distanza iniziale $ h $ tra l'oggetto e il suolo. Quindi per il tempo di caduta vale la relazione:$$ h = \dfrac{g \cdot t^2}{2} \hspace{0.5 cm} \textsf{da cui} \hspace{0.5 cm} t = \sqrt{\dfrac{2 h}{g}} $$ Velocità di impatto al suoloNel moto con accelerazione costante, la velocità varia secondo la relazione:$$ v = v_0 + (a \cdot t) $$Che in questo esempio diventa:$$ v = g \cdot t $$Se per $ t $ si considera il tempo di caduta, si ottiene da questa equazione la velocità di arrivo al suolo.Risolvendo con il calcolo simbolico si ottiene:$$ v = g \cdot \sqrt{\dfrac{2 h}{g}} = \sqrt{2 g h} $$ In alternativaDalle due equazioni del moto con accelerazione costante:$$ x = x_0 + (v_0 \cdot t) + (\dfrac{a \cdot t^2}{2}) \hspace{0.5 cm} \textsf{e} \hspace{0.5 cm} v = v_0 + (a \cdot t) $$Si ricava la legge che esprime la velocità in funzione della posizione:$$ v^2 = v_0^2 + [2 a \cdot (x - x_0)] $$Che in questo esempio diventa:$$ v^2 = 2 g \cdot (x - x_0) $$Per $ x - x_0 = h $ si ha quindi la velocità di impatto al suolo $ v^2 = 2gh $ da cui infine:$$ v = \sqrt{2 g h} $$ Calcoli con PythonUtilizziamo le equazioni che permettono di calcolare il tempo di caduta e la velocità di impatto conoscendo l'altezza iniziale.Inseriamo uno **slider** per consentire di effettuare il calcolo in corrispondenza a valori diversi dell'altezza iniziale, in un intervallo che va da $ 0 $ a $ 10~m $, a step di $ 10~cm $, ovvero $ 0.1~m $.I risultati del calcolo vengono visualizzati stampando solo tre cifre decimali.<jupyter_code># Utilizzato per importare la libreria adoperata per i widget.
import ipywidgets as widgets


g = 9.81 # Accelerazione di gravità in m/s^2.

# Utilizzato per creare un widget (FloatSlider) adoperato per cambiare interattivamente il valore dell'altezza.
sliderDistance = (widgets.FloatSlider(min = 0, max = 10, step = 0.1, value = 1, description = "Altezza (m):"))

# Funzione.
def funzione(h):
    Dt = (2 * h / g) ** 0.5 # Tempo di volo in s.
    print("Tempo di volo = {0:0.3f} s".format(Dt)) # Utilizzato per stampare.
    v = (2 * g * h) ** 0.5 # Velocità di impatto in m/s.
    print("Velocità di impatto = {0:0.3f} m/s = {1:0.3f} km/h".format(v, v * 3.6)) # Utilizzato per stampare.

# Utilizzato per collegare il widget alla funzione e per interagire con lo slider.
widgets.interact(funzione, h = sliderDistance)<jupyter_output>Tempo di volo = 0.452 s
Velocità di impatto = 4.429 m/s = 15.946 km/h<jupyter_text>> Per eseguire il codice Python contenuto in questo **notebook** Jupyter, anche se Python e Notebook Jupyter non sono installati sulla macchina che stai adoperando, puoi utilizzare l'ambiente [**binder**](https://mybinder.org) online.[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/Darkaquon/Physics-with-Open-Source-Software/master?filepath=%2FNotebook%2FCaduta_libera.ipynb) What we have learned*Python** Importare e riprodurre un video all'interno di un notebook Jupyter.*Fisica** Stimare il tempo di caduta e la velocità di impatto al suolo in un fenomeno di caduta libera utilizzando le leggi del moto con accelerazione costante. References and notes Video1. Il video originale **Caduta_libera.mp4** è stato realizzato con uno smartphone Samsung Galaxy S9 in modalità rallentatore, a 30 fps, con risoluzione 1920 x 1080p e convertito a 400 x 710p con il programma Active Presenter. Video editing2. [How to trim a video](https://www.windowscentral.com/how-trim-video-using-photos-windows-10)3. [How to create a video](https://www.windowscentral.com/how-start-using-photos-video-editor-windows-10) Video in un notebook Jupyter4. [Catch things in motion](https://nbviewer.jupyter.org/github/engineersCode/EngComp3_tourdynamics/blob/master/notebooks_en/1_Catch_Motion.ipynb) [From the course Engineering Computations].5. The *class* [IPython.display.Video](https://ipython.readthedocs.io/en/stable/api/generated/IPython.display.html) [See in particular the **embed** parameter]. Grafica notebook<jupyter_code># Utilizzato per importare la libreria adoperata per visualizzare l'HTML con il Python.
from IPython.core.display import HTML


css_file = "Notebook.css" # File CSS.

# Utilizzato per aprire e leggere il file CSS adoperato per modificare la visualizzazione del notebook.
HTML(open(css_file, "r").read())<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.10736878098820311, 'fraction_numerical': 0.022396990938621988, 'mean_word_length': 4.614203454894434, 'pattern_counts': {'":': 0, '<': 12, '<?xml version=': 0, '>': 13, 'https://': 7, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 1, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '3', 'dir': 'jupyter-structured-clean-dedup', 'id': '568080', 'license': 'BSD-3-Clause', 'n_tokens_mistral': 2131, 'n_tokens_neox': 2054, 'n_words': 733, 'path': 'Notebook/Caduta_libera.ipynb', 'repo_name': 'Darkaquon/Tesi', 'size': '5849'}