Python en mathématiques - Niveau 1

Géométrie repérée

Déterminer une équation de droite passant par deux points donnés

Écrire une fonction (procédure) en Python, nommée eq_dte(), qui respecte la spécification suivante :

Paramètres xA, yA, xB, yB coordonnées des points A et B dans un repère du plan
Valeur renvoyée équation de la droite (AB) sous forme de chaîne de caractères
  • Une solution avec équation réduite
  • Une solution avec équation cartésienne

def eq_dte(xA, yA, xB, yB):
    if xA == xB:					# ou utilisation de isclose()...
        return "x = {}".format(xA)
    else :
        m = (yB-yA)/(xB-xA)
        p = yA - m * xA
        return "y = {}*x + {}".format(m, p)

>>> eq_dte(1, 2, 5, 9)
'y = 1.75*x + 0.25'

>>> eq_dte(1, 2, 1, 9)
'x = 1'
	

def eq_cartesienne_droite(xA, yA, xB, yB):
    return "{}(x - {}) - {}(y - {}) = 0".format(yB-yA, xA, xB-xA, yA)

>>> eq_cartesienne_droite(2, 3, 4, 6)
'3(x - 2) - 2(y - 3) = 0'

Étudier l'alignement de trois points dans le plan

Trois points $A$, $B$ et $C$ sont donnés par leurs coordonnées (entières pour éviter les problèmes de représentation des nombres en machine) $x_A$, $y_A$, $x_B$, $y_B$, $x_C$, $y_C$.

Écrire le code d'une fonction nommée sont_alignes() et qui renvoie True ou False selon que les trois points sont alignés ou pas.

  • Une solution

def sont_alignes(xA, yA, xB, yB, xC, yC):
    return (xB-xA)*(yC-yA) == (yB-yA)*(xC-xA)
>>> sont_alignes(0, 0, 2, 2, 5, 5)
True