Comment trouver le point d'intersection entre deux droites ?

21 juin 2019    /    Viewed: 7205    /    Comments: 0    /    Edit


Exemple de comment calculer le point d'intersection entre deux droites:

Résolution mathématiques

Soit deux droites d'équation:

\begin{equation}
\left\{ \begin{array}{c}
y = m_1 * x + b_1 \\
y = m_2 * x + b_2
\end{array}\right.
\end{equation}

où $m$ et $b$ sont le coefficient directeur et l'ordonnée à l'origine respectivement.

On suppose que $m_1 \neq m_2$ sinon les droites sont parallèles et il n'y a donc pas de point d'intersection.

Un point $(x_i, y_i)$ appartient aux deux droites si il vérifie les deux équations des deux droites ci-dessus, soit:

\begin{equation}
\left\{ \begin{array}{c}
y_i = m_1 * x_i + b_1 \\
y_i = m_2 * x_i + b_2
\end{array}\right.
\end{equation}

Cherchons à écrire $x_i$ et $y_i$ en fonction de $m_1$, $m_2$, $b_1$ et $b_2$.

\begin{equation}
\left\{ \begin{array}{c}
m_2 * x_i + b_2 = m_1 * x_i + b_1 \\
y_i = m_2 * x_i + b_2
\end{array}\right.
\end{equation}

\begin{equation}
\left\{ \begin{array}{c}
(m_2 - m_1 ) * x_i = b_1 - b_2 \\
y_i = m_2 * x_i + b_2
\end{array}\right.
\end{equation}

\begin{equation}
\left\{ \begin{array}{c}
x_i = ( b_1 - b_2) / (m_2 - m_1 ) \\
y_i = m_2 * x_i + b_2
\end{array}\right.
\end{equation}

\begin{equation}
\boxed{
\left\{ \begin{array}{c}
x_i = ( b_1 - b_2) / (m_2 - m_1 ) \\
y_i = m_2 * ( b_1 - b_2) / (m_2 - m_1 ) + b_2
\end{array}\right.
}
\end{equation}

Exemple avec les droites suivantes:

\begin{equation}
\left\{ \begin{array}{c}
y = x + 2 \\
y = 2 x + 4
\end{array}\right.
\end{equation}

En appliquant les relations (6):

\begin{equation}
\left\{ \begin{array}{c}
x_i = ( 2 - 4) / (2 - 1 ) \\
y_i = 2 * ( 2 - 4) / (2 - 1 ) + 4
\end{array}\right.
\end{equation}

le point d'intersection est $(x_i, y_i)$ = (-2, 0)

Ecrire un code en python

Exemple d'implémentation avec la language python:

Tracer les droites:

import matplotlib.pyplot as plt
import numpy as np

m1, b1 = 1.0, 2.0 # slope & intercept (line 1)
m2, b2 = 4.0, -3.0 # slope & intercept (line 2)

x = np.linspace(-10,10,500)

plt.plot(x,x*m1+b1)
plt.plot(x,x*m2+b2)

plt.xlim(-2,8)
plt.ylim(-2,8)

plt.title('How to find the intersection of two straight lines ?', fontsize=8)

plt.grid(linestyle='dotted')

plt.savefig("two_straight_lines_intersection_point_01.png", bbox_inches='tight')

Comment trouver le point d'intersection entre deux droites ?

Trouver le point d'intersection:

xi = (b1-b2) / (m2-m1)
yi = m1 * xi + b1

print('(xi,yi)',xi,yi)

donne ici (xi,yi) 1.6666666666666667 3.666666666666667:

Tracer le point d'intersection:

plt.scatter(xi,yi, color='black' )

plt.savefig("two_straight_lines_intersection_point_02.png", bbox_inches='tight')

Comment trouver le point d'intersection entre deux droites ?

Références

Liens Site
Point d'intersection lexique.netmath.ca
Déterminer, s'il existe, le point d'intersection de 2 droites s'il existe. calculis.net
Coordonnées du point d'intersection de deux droites ilemaths.net


Card image cap
profile-image
Daidalos

Je développe le présent site avec le framework python Django. Je m'intéresse aussi actuellement dans le cadre de mon travail au machine learning pour plusieurs projets (voir par exemple) et toutes suggestions ou commentaires sont les bienvenus !