from sympy import *
init_session()
def scal_analytique(u , v):
"""Retourne le produit scalaire de deux vecteurs u(x,y) et v(x',y')
sous la forme xx' + yy'"""
return sum(c*d for (c,d) in zip(u,v))
def norme(u):
return sqrt(scal_analytique(u,u))
def scal_norme(nu, nv, nw):
"""Retourne le produit scalaire de u et v à partir de
la formule 1/2*((u+v)**2 - u**2 - v**2).
la norme de u+v est passée dans le parametre nw"""
return Rational(1,2)*(nw**2 - nu**2 - nv**2)
def scal_cos(nu, nv, angle):
"""Retourne le produit scalaire de u et de v avec le theoreme du cosinus.
la mesure de l'angle doit etre en radian."""
return nu*nv*cos(angle)
def thme_mediane(MA, MB, AB):
"""Theoreme de la mediane : MA22* + MB**2 = 2*MI**2 + AB**2/2"""
return sqrt(MA**2 + MB**2 - (AB**2/2)/2)
def distance_alkashi(b, c, angle):
"""D'après Al-Kashi a**2 = b**2 + c**2 - 2*b*c*cos(A)"""
return sqrt(b**2 + c**2 - 2*b*c*cos(angle))
def angle_alkashi(b, c, a):
"""D'après Al-Kashi cos(A) = (b**2 + c**2 - a**2)/(2*b*c)"""
return acos( (b**2 + c**2 - a**2)/(2*b*c) )
def equation_droite_vecnormal(point, vec_normal):
"""Equation d'une droite à partir d'un point et d'un vecteur normal"""
(xp, yp) = point
(a, b) = vec_normal
return Eq(a*x + b*y - a*xp - b*yp, 0 )
def equation_droite_vecdirecteur(point, vec_directeur):
"""Equation d'une droite à partir d'un point et d'un vecteur normal"""
(a, b) = vec_directeur
return equation_droite_vecnormal(point, (-b, a))
Dans un repère orthonormal du plan, on considère les points $A(4;11)$, $B(3;2)$ et $C(-5;9)$.
Calculer le produit scalaire $\overrightarrow{AB} \cdot \overrightarrow{AC}$ et en déduire une mesure approchée au degré près de l'angle $\widehat{BAC}$.
vect_AB = (-1, -9)
vect_AC = (-9, -2)
prodscal = scal_analytique(vect_AB, vect_AC)
prodscal
norme(vect_AB)
norme(vect_AC)
angle_BAC = acos(prodscal/(norme(vect_AB)*norme(vect_AC)))
Mesure en degrés de l'angle $\widehat{BAC}$.
(angle_BAC*180/pi).evalf()
thme_mediane(8, 4, 6)
thme_mediane(1, 3, 4)
Dans le 2. il s'agit d'un cercle de centre I le milieu de [AB] et de rayon 1.
BC = 5 et BD = 4 et $\widehat{CBD} = 60^{\circ}$ et $\widehat{ACB} = 45^{\circ}$ et $\widehat{DBA} = 90^{\circ}$ et $\widehat{CAB} = 105^{\circ}$
Calculer la longueur $CD$ puis déterminer une mesure des angles $\widehat{BCD}$ et $\widehat{BDC}$.
Préciser la mesure des angles $\widehat{BEC}$ et $\widehat{CBE}$ puis calculer les longueurs $BE$ et $CE$.
CD = distance_alkashi(5,4,60*pi/180)
CD
angleBCD = angle_alkashi(sqrt(21), 5, 4)
(angleBCD*180/pi).evalf()
CA = (sin(30/180*pi)/(sin(105/180*pi)/5)).evalf()
CA
BA = (sin(45/180*pi)/(sin(105/180*pi)/5)).evalf()
BA
Soit $A(-2,3)$, $B(5,1)$ et $C(-5,7)$.
Déterminer une équation de la droite $D_1$ passant par $C(-5,7)$ et dont un vecteur normal est $\overrightarrow{n}(2,-1)$.
a. Déterminer une équation de la droite $D_2$ passant par $A$ et parallèle à la droite d'équation $3y -5x + 1 = 0$.
b. Déterminer une équation de $D_3$, la hauteur du triangle $ABC$ issue de $B$ puis une équation de la hauteur $D_4$ issue de $A$. En déduire les coordonnées de l'orthocentre de $ABC$.
c. Déterminer une équation de la médiatrice $D_5$ du segment $[AB]$.
Soit $a$ et $b$ deux réels non nuls et $\Delta$ la droite coupant l'axe des abscisses au point d'abscisse $a$ et l'axe des ordonnées au point d'ordonnée $b$.
a. Déterminer une équation de la droite $\Delta_2$ parallèle à $\Delta$ et passant par l'origine du repère.
b. Déterminer une équation de la droite $\Delta_1$ perpendiculaire à $\Delta$ et passant par l'origine du repère.
Question 1. a
equation_droite_vecnormal((-5,7), (2,-1))
Question 1. b.
equation_droite_vecdirecteur((-2,3), (-3,-5))
Question 1. c. Hauteur issue de B
vectAC = (-3,4)
B = (5,1)
equation_droite_vecnormal(B, vectAB )
vectBC = (-10,6)
A = (-2, 3)
equation_droite_vecnormal(A, vectBC )
linsolve([ 7*x-2*y+49, -10*x + 6*y - 38], (x, y))
I milieu de [AB]
I = (Rational(3,2), 2)
equation_droite_vecnormal(I, vectAB)
Question 2
a, b = symbols('a b')
Question 2. a.
equation_droite_vecdirecteur((0,0), (-a, b))
equation_droite_vecnormal((0,0), (-a, b))
Question 1
AB = 4
AC = 5
BC = 6
angle_ABC = angle_alkashi(4, 6, 5)
(angle_ABC*180/pi).evalf()
Question 2
AC = distance_alkashi(4,3, 50*pi/180)
AC.evalf()
Question 3
On utilise la relation $\overrightarrow{BC}^{2}=(\overrightarrow{BA} + \overrightarrow{AC} )^{2}=BA^2 + AC^2 + 2 \overrightarrow{BA} \cdot \overrightarrow{AC} = BA^2+49 - 80 = BA^2-31$.
On a donc $BA^2=BC^2+31=64+31=95$ et $BA=\sqrt{95}$.
Question 4
AB = 5/(cos(30*pi/180)*2)
AB
BC = distance_alkashi(2, AB, 30*pi/180)
BC
Question 5
MN = sqrt(12)
NP = 6
angle_MNP = 5*pi/6
MN, NP, angle_MNP
MP = distance_alkashi(MN, NP, angle_MNP)
MP
MI = thme_mediane(MN, NP, MP)
MI
Question 1
AB = norme((2,3))
AB
AC = norme((4, 0))
AC
BC = norme((2,-3))
BC
angle_ABC = angle_alkashi(AB, BC, AC)
angle_ABC
(angle_ABC*180/pi).evalf()
Question 2
AB = AC = 3
angle_BAC = 40*pi/180
BC = distance_alkashi(AB, AC, angle_BAC)
BC
BC.evalf()
AI = thme_mediane(AB, AC, BC)
AI
AI.evalf()
Dans chaque cas, donner un vecteur normal de la droite $\mathcal{D}$ et déterminer une équation de la perpendiculaire à $\mathcal{D}$ passant par $C(1,-5)$
Question 1
equation_droite_vecnormal((1,-5), (1,3))
Question 2
equation_droite_vecnormal((1,-5), (1,0))
Question 3
equation_droite_vecnormal((1,-5), (1,-2))
Question 4
equation_droite_vecnormal((1,-5), (2,-1))
Question 5
equation_droite_vecnormal((1,-5), (-2,2))
Question 6
equation_droite_vecnormal((1,-5), (-3,-8))
Déterminer une équation de la droite $\Delta$ dont on notera $\overrightarrow{n}$ un vecteur normal.
Question 1
equation_droite_vecnormal((-5,1), (1,3))
Question 2
equation_droite_vecnormal((8,-2), (5,-4))
Question 3
equation_droite_vecnormal((2,5), (-2,2))
Question 4
equation_droite_vecnormal((0,3), (-2,2))