Écrire une fonction determinant(x, y, xp, yp) qui renvoie le déterminant des vecteurs u(x ; y) et v(xp ; yp). L'utiliser pour tester si u(6 ; −9) et v(−4 ; 6) sont colinéaires.
Voir la correction
le déterminant de u(x ; y) et v(x' ; y') vaut xy' − yx'. La fonction traduit cette formule, avec quatre arguments et un return :
def determinant(x, y, xp, yp):
return x*yp - y*xpTest : determinant(6, -9, -4, 6) calcule 6 × 6 − (−9) × (−4) = 36 − 36 = 0. Le déterminant est nul, donc les vecteurs sont colinéaires (en fait u = −1,5 v).
On peut en déduire une fonction booléenne colineaires(x, y, xp, yp) qui renvoie determinant(x, y, xp, yp) == 0. Avec des coordonnées décimales, on préférera tester abs(determinant(...)) < 1e-9, car les calculs flottants ne tombent pas toujours exactement sur 0.
Rappel : return renvoie une valeur réutilisable ; print ne ferait que l'afficher.