Fonctions utiles pour calculer
Loi de Descartes
On propose de programmer les fonctions qui seront utiles pour aider au calcul de l’angle de refraction r lors de la traversée d’un rayon à la surface d’un dioptre.
L’angle r est donné par la relation:
$$n_1\times sin(i_1) = n_2\times sin(i_2)$$
Où i est l’angle d’incidence, n1 et n2 sont les indices de refraction des milieux traversés.
schema de la refraction sur diotre plan
Fonction degrès - radians
Python manipule les angles en radians pour les fonctions trigonometriques.
Commençont par programmer la fonction qui transforme les angles de degrès en radians:
def fonc1(angle):
radian = angle * 3.14/180
return radian
On peut alors tester la fonction:
>>> fonc1(90)
...
Le résultat manque de précision à cause de la valeur utilisée pour PI. Il faut alors importer le module math pour avoir la valeur precise de PI
Importer ce module. Et afficher en console la valeur de PI:
import math
math.pi
Puis modifier la fonction fonc1 en fonc2:
def fonc1(angle):
radian = angle * math.pi/180
Fonctions sin et asin du module math
Le module math apporte aussi les fonctions trigonométriques sin et son inverse asin.
Tester ces fonctions pour quelques valeurs:
-
math.sin(1.57) -
math.sin(math.pi/2) -
math.asin(1)
Fonction à plusieurs paramètres
On cherche maintenant à écrire la fonction qui permettra de calculer l’angle r selon la relation:
$$r = asin(\tfrac{n_1\times sin(i_1)}{n_2})$$
On definira une fonction appelée angleRefraction, qui aura cette fois 3 parametres i1, n1, n2. Ces 3 paramètres seront écrits entre parenthèses, séparés par une virgule:
def angleRefraction(i1,n1,n2):
radian = fonc1(i1)
r = math.asin(... ...)
return r * 180 / math.pi
Compléter les pointillés
...
Tester votre fonction: avec un angle d’incidence de 30°, des indices de refraction n1=1 et n2=1.5, on doit avoir r = 19.47°.
ex 7: Recopier le script de la fonction angleRefraction, ainsi que l’instruction utilisée pour résoudre l’exercice.
Compléments
- Un cours sur les fonctions se trouve à la page suivante: Lien
