Chapitre 10

Activités Python

Lunette astronomique

Activité

Tracer les rayons d’une lunette

Consigne

Ouvrez la page des scripts du chapitre pour consulter le code et télécharger les fichiers .py.

Le script Ch10_lunette.py (dossier scripts/) trace la marche de trois rayons parallèles, inclinés d’un angle α\alpha, à travers une lunette afocale (f1=50f'_1 = 50 cm, f2=10f'_2 = 10 cm) — la géométrie du schéma du §3.2, calculée en petits angles. Il s’exécute tel quel, à deux lignes près (# À COMPLÉTER).

(La suite du script — le tracé des rayons — est fournie et n’est pas à modifier.)

Questions :

  1. Compléter y1 : à quelle hauteur le rayon passant par O1_1 (non dévié, pente α-\alpha) coupe-t-il le plan focal commun ?
  2. Compléter alpha_prime à l’aide de l’expression du grossissement.
  3. Exécuter, puis remplacer l’oculaire par f2=5,0f'_2 = 5{,}0 cm et ré-exécuter : qu’observe-t-on sur l’angle de sortie et sur la longueur de la lunette ? Un grossissement deux fois plus fort est-il « gratuit » ?

Fiche O5 - Python. Variables, calculs et boucle for y sont rappelés. Le tracé, déjà fourni dans le script, est expliqué dans la fiche M2.

Script élève

# -*- coding: utf-8 -*-
# Chapitre 10 — Marche des rayons dans une lunette afocale
# Un point objet à l'infini, vu sous l'angle alpha, envoie un faisceau
# de rayons parallèles sur l'objectif. On trace leur marche jusqu'à
# la sortie de l'oculaire (petits angles : les rayons sont des droites,
# la déviation se calcule avec les foyers).

import matplotlib.pyplot as plt

f1 = 50.0     # distance focale de l'objectif (cm)
f2 = 10.0     # distance focale de l'oculaire (cm)
alpha = 0.010  # angle d'incidence (rad), environ 0,6 degré

L = f1 + f2                 # lunette afocale : longueur (cm)
y1 = 0                      # hauteur de l'image intermédiaire  # À COMPLÉTER
alpha_prime = 0                 # angle émergent  # À COMPLÉTER

print("Image intermédiaire à", f1, "cm, hauteur :", y1, "cm")
print("alpha' =", alpha_prime, "rad ; G =", alpha_prime / alpha)

# trace de trois rayons entrant aux hauteurs h = +4, 0, -4 cm
for h in [4.0, 0.0, -4.0]:
    xs = [-20.0, 0.0, f1, L, L + 15.0]
    pente_sortie = -y1 / f2      # tous les émergents sont parallèles
    ys = [h + 20.0 * alpha,      # avant l'objectif
          h,                     # sur l'objectif
          y1,                    # au plan focal commun
          y1 + f2 * (y1 - h) / f1,   # sur l'oculaire
          y1 + f2 * (y1 - h) / f1 + 15.0 * pente_sortie]
    plt.plot(xs, ys, color="teal")

plt.axvline(0, color="k")
plt.axvline(L, color="k")
plt.axhline(0, color="gray", linestyle="--", linewidth=0.8)
plt.plot([f1], [y1], "ko")
plt.xlabel("position sur l'axe (cm)")
plt.ylabel("hauteur (cm)")
plt.title("Lunette afocale")
plt.grid(True)
plt.show()

← Retour au portail du chapitre