Produit vectoriel (cross product)

Formule

Le produit vectoriel de deux vecteurs (à ne pas confondre avec le produit scalaire) est un vecteur perpendiculaire au plan formé par les deux vecteurs. Le produit vectoriel de \(\vec{V}\) et \(\vec{U}\) peut être calculé grâce à la formule suivante :

$$ \vec{V} \times \vec{U} = \left ( \begin{matrix} V_y.U_z - V_z.U_y \\ V_z.U_x - V_x.U_z \\ V_x.U_y - V_y.U_x \end{matrix} \right ) $$

Propriétés

Properties
Si \(\vec{V}\) et \(\vec{U}\) sont collinéaires, \(\vec{V} \times \vec{U}\) est un vecteur nul.
Si \(\vec{V}\) est nul, \(\vec{V} \times \vec{U}\) est un vecteur nul.
Si \(\vec{U}\) est nul, \(\vec{V} \times \vec{U}\) est un vecteur nul.
\(\vec{V} \times \vec{U}\) est normal au plan formé par les vecteurs \(\vec{V}\) and \(\vec{U}\).
\(\vec{V} \times \vec{U}=-(\vec{U} \times \vec{V}) = (-\vec{U}) \times \vec{V}\).

Code source C++

La fonction C++ ci-dessous retourne le produit vectoriel de deux vecteurs :

/*!
 * \brief   Compute the cross product of two vectors (this x V)
 *          The current vector is the first operand
 * \param   V is the second operand
 * \return  a vector = the cross product of the current vector by V
 */
inline rOc_vector rOc_vector::cross(const rOc_vector V)
{
    rOc_vector Res;
    Res.x()=this->y()*V.z() - this->z()*V.y();
    Res.y()=this->z()*V.x() - this->x()*V.z();
    Res.z()=this->x()*V.y() - this->y()*V.x();
    return Res;
}

Produit vectoriel sous MATLAB

Avec MATLAB, le produit vectoriel peut facilement être calculé avec la fonction cross(A, B) :


>> u=[1,2,3];
>> v=[4,5,6];
>> cross (u,v)

ans =

    -3     6    -3

Voir aussi


Dernière mise à jour : 13/03/2022