Lance-balle

Un lanceur de balle est fixé au sol mais le canon est libre de pivoter autour d’un axe horizontal.
Le lanceur envoie ses projectiles avec toujours la même vitesse initiale v0v_0 mais avec un angle aléatoire distribué uniformément entre 0° et 180°.

  1. Selon vous, chaque secteur découpant l’axe xx de manière régulière va-t-il recevoir autant de balles ? Si non, comment supposeriez-vous que la densité d’impacts dNdx\frac{dN}{dx} sur un petit intervalle dxdx évolue en fonction de xx ?

  2. Déterminer les équations horaires du mouvement d’un projectile (pour une vitesse initiale v0\vec{v_0} faisant un angle ϕ\phi avec l’axe xx et en négligeant les frottements de l’air).

  3. En déduire l’équation de la trajectoire de la balle.

  4. Déterminer la portée x(ϕ)x(\phi) de la balle en fonction de l’angle ϕ\phi.

  5. En appelant NtotN_{tot} le nombre de balles envoyées en tout, déterminer le nombre N(ϕ)N(\phi) de balles envoyées avec un angle compris entre 0 et ϕ\phi. En déduire dNdϕ\frac{dN}{d\phi}.

  6. En utilisant le fait qu’on puisse écrire (dans les conditions de l’exercice) que dNdϕ=dNdxdxdϕ\frac{dN}{d\phi} = \frac{dN}{dx} \frac{dx}{d\phi}, déterminer la densité dNdx\frac{dN}{dx} d’impacts de balles entre xx et x+dxx+dx.

  7. Vérifier en complétant le code python de ce notebook.

Correction
Exemple de solution :
from random import random
from math import cos,sin,pi

N = 50000
v0 = 20
g = 10
dt = 1e-3
x_sol = []
for i in range(N):
    phi = random()*pi
    x = 0
    y = 0
    vx = v0*cos(phi)
    vy = v0*sin(phi)
    while y >= 0:
        vy += -g*dt
        x += vx*dt
        y += vy*dt
    x_sol.append(x)