Matrice de rotation - Définition

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

Multiplication

L'inverse d'une matrice de rotation est sa transposée, qui est aussi une matrice de rotation :

\begin{align} (Q^t)^t (Q^t) &{}= Q Q^t = I\\ \det Q^t &{}= \det Q = +1 \end{align}

Le produit de deux matrices de rotation est une matrice de rotation :

\begin{align}  (Q_1 Q_2)^t (Q_1 Q_2) &{}= Q_2^t (Q_1^t Q_1) Q_2 = I \\  \det (Q_1 Q_2) &{}= (\det Q_1) (\det Q_2) = +1 \end{align}

Pour n plus grand que 2, la multiplication de matrices de rotation n×n n'est pas commutative.

\begin{align} Q_1 &{}= \begin{bmatrix}0 & -1 & 0 \\ 1 & 0 & 0 \\ 0 & 0 & 1\end{bmatrix} & Q_2 &{}= \begin{bmatrix}0 & 0 & 1 \\ 0 & 1 & 0 \\ -1 & 0 & 0\end{bmatrix} \\ Q_1 Q_2 &{}= \begin{bmatrix}0 & -1 & 0 \\ 0 & 0 & 1 \\ -1 & 0 & 0\end{bmatrix} & Q_2 Q_1 &{}= \begin{bmatrix}0 & 0 & 1 \\ 1 & 0 & 0 \\ 0 & 1 & 0\end{bmatrix} \end{align}

Remarquant que toute matrice unité est une matrice de rotation, et que la multiplication des matrices est associative, on peut résumer ces propriétés en disant que les matrices de rotation n×n forment un groupe, qui pour n > 2 est non abélien. Appelé le groupe spécial orthogonal, et noté SO(n), SO(n, R), SOn, ou SOn(R), le groupe des matrices de rotation n×n est isomorphe au groupe des rotations d'un espace à n dimensions, ce qui veut dire. que la multiplication des matrices de rotation correspond à la composition des rotations, appliquée dans le même ordre (de la gauche vers la droite) que celui des matrices correspondantes.

Exemples

  • La matrice de rotation 2×2
     Q = \begin{bmatrix} 0 & -1 \\ 1 & 0 \end{bmatrix}
    correspond à une rotation de 90° dans le plan.
  • La transposée de la matrice 2×2
     M = \begin{bmatrix} 0.936 & 0.352 \\ 0.352 & -0.936 \end{bmatrix}
    est son inverse, mais comme son déterminant vaut −1, ce n'est pas une matrice de rotation ; il s'agit de la symétrie par rapport à la diagonale d'équation y = 2x.
  • La matrice de rotation 3×3
     Q = \begin{bmatrix} 1 & 0 & 0 \\ 0 & \frac{\sqrt{3}}{2} & \frac12 \\ 0 & -\frac12 & \frac{\sqrt{3}}{2} \end{bmatrix}
    correspond à une rotation dans l'espace à 3 dimensions de −30° autour de l'axe des x.
  • La matrice de rotation 3×3
     Q = \begin{bmatrix} 0.36 & 0.48 & -0.8 \\ -0.8 & 0.60 & 0 \\ 0.48 & 0.64 & 0.60 \end{bmatrix}
    correspond à une rotation dans l'espace à 3 dimensions d'environ 74° autour de l'axe dirigé par \overrightarrow  u\begin{pmatrix} -\frac{1}{3} \\[3pt] \frac{2}{3} \\[3pt] \frac{2}{3} \end{pmatrix} .
  • La matrice de permutation 3×3
     P = \begin{bmatrix} 0 & 0 & 1 \\ 1 & 0 & 0 \\ 0 & 1 & 0 \end{bmatrix}
    est également une matrice de rotation, comme toute matrice de permutation paire (mais jamais d'une permutation impaire).
  • La matrice 3×3
     M = \begin{bmatrix} 3 & -4 & 1 \\ 5 & 3 & -7 \\ -9 & 2 & 6 \end{bmatrix}
    a un déterminant égal à +1, mais sa transposée n'est pas son inverse, donc ce n'est pas une matrice de rotation.
  • La matrice 4×3
     M = \begin{bmatrix} 0.5 & -0.1 & 0.7 \\ 0.1 & 0.5 & -0.5 \\ -0.7 & 0.5 & 0.5 \\ -0.5 & -0.7 & -0.1 \end{bmatrix}
    n'est pas carrée et ne peut donc pas être une matrice de rotation, bien que M^t \cdot M soit la matrice identité 3×3 (les colonnes sont orthonormales).
  • La matrice de rotation 4×4
     Q = \begin{bmatrix} -1 & 0 & 0 & 0 \\ 0 & -1 & 0 & 0 \\ 0 & 0 & -1 & 0 \\ 0 & 0 & 0 & -1 \end{bmatrix}
    n'a pas d'axe de rotation : elle transforme tout vecteur en son opposé.
  • La matrice de rotation 5×5
     Q = \begin{bmatrix} 0 & -1 & 0 & 0 & 0 \\ 1 & 0 & 0 & 0 & 0 \\ 0 & 0 & -1 & 0 & 0 \\ 0 & 0 & 0 & -1 & 0 \\ 0 & 0 & 0 & 0 & 1 \end{bmatrix}
    fait tourner les vecteur du plan des deux premières coordonnées de 90°, fait tourner les vecteurs du plan des deux coordonnées suivantes de 180°, et laisse l'axe de la dernière coordonnée inchangé.

Décompositions

Plans indépendants

Considérons la matrice de rotation 3×3

 Q = \begin{bmatrix} 0.36 & 0.48 & -0.8 \\ -0.8 & 0.60 & 0 \\ 0.48 & 0.64 & 0.60 \end{bmatrix} .

Si, dans une certaine direction v, Q agit comme une multiplication par un facteur λ (autrement dit si v est un vecteur propre, de valeur propre associée λ), nous aurons

 Q \bold{v} = \lambda \bold{v}, \,\!

donc

 \bold{0} = (\lambda I - Q) \bold{v} . \,\!

Ainsi λ est une racine du polynôme caractéristique de Q,

\begin{align}  0 &{}= \det (\lambda I - Q) \\    &{}= \lambda^3 - \tfrac{39}{25} \lambda^2  + \tfrac{39}{25} \lambda - 1 \\    &{}= (\lambda-1) (\lambda^2 - \tfrac{14}{25} \lambda + 1) \end{align}

On remarquera deux propriétés importantes. D'une part, l'une des racines est 1, ce qui nous dit qu'une certaine direction est laissée fixe par la matrice. Pour les rotations en trois dimensions, c'est l'axe de la rotation (un concept qui se généralise uniquement aux dimensions impaires). D'autre part, les deux autres racines sont complexes conjuguées, de produit 1 (le terme constant du polynôme du second degré), et dont la somme est 2 cos θ (l'opposé du terme de degré 1). Le même phénomène se produit pour toutes les matrices de rotation 3×3 (avec deux cas particuliers : pour une rotation nulle les "valeurs complexes conjuguées " valent en fait toutes deux 1, et pour une rotation de 180°, toutes deux valent −1). En fait, une factorisation analogue existe pour n'importe quelle matrice de rotation n×n. Si la dimension, n, est impaire, il y aura une valeur propre supplémentaire valant 1, et en toute dimension le reste du polynôme se factorisera en termes du second degré comme celui que nous avons vu (avec les deux cas particuliers déjà mentionnés). Le polynôme caractéristique sera toujours de degré n ; il y aura donc n valeurs propres ; et comme une matrice de rotation commute toujours avec sa transposée, c'est une matrice normale, et elle peut donc être diagonalisée. En conclusion, toute matrice de rotation, exprimée dans une base convenable, se décompose en rotations indépendantes de sous-espaces de dimension 2 (des plans vectoriels); au plus n2 d'entre eux.

La somme des termes de la diagonale principale d'une matrice est appelée sa trace; elle ne dépend pas de la base, et vaut toujours la somme des valeurs propres. Cela a l'intéressante conséquence pratique de donner directement l'angle de rotation θ (dans un (sous)-espace de dimension 2) pour les matrices de rotation 2×2 et 3×3 : pour une matrice 2×2 la trace est 2 cos(θ) (ce qui est en fait évident, comme on va le voir), et pour une matrice 3×3 , elle vaut 1+2 cos(θ). En dimension 3, le sous-espace est formé des vecteurs orthogonaux à l'axe de rotation (la direction propre de valeur propre 1). Ainsi, à partir de n'importe quelle matrice de rotation 3×3, nous pouvons déterminer un axe et un angle, et ceux-ci déterminent complètement la rotation (à l'orientation près).

Suites d'angles

Une matrice de rotation 2×2 a nécessairement la forme suivante :

Q = \begin{bmatrix} a & -b \\ b & a \end{bmatrix}

avec a2+b2 = 1. Nous pouvons donc poser a = cos θ et b = sin θ, pour un certain angle θ. Pour déterminer θ, il ne suffit pas de connaître a ou b seulement ; nous devons utiliser les deux nombres pour obtenir le quadrant correct, à l'aide d'une fonction arctangente à deux variables (notée atan2 dans beaucoup de langages de programmation).

Considérons à présent la première colonne d'une matrice de rotation 3×3,

\begin{bmatrix}a\\b\\c\end{bmatrix} .

Bien que a2+b2 ne soit pas en général égal à 1, mais à une certaine valeur r2 < 1, nous pouvons utiliser une variante du calcul précédent pour obtenir ce qu'on appelle une rotation de Givens, transformant la colonne en

\begin{bmatrix}r\\0\\c\end{bmatrix} ,

annulant le coefficient b. Cette rotation agit sur le plan des axes x et y. Nous pouvons ensuite recommencer dans le plan xz, pour annuler c. Opérant sur la matrice entière, ces deux rotations la mettent sous la forme.

Q_{xz}Q_{xy}Q = \begin{bmatrix}1&0&0\\0&\ast&\ast\\0&\ast&\ast\end{bmatrix} .

Nous intéressant à présent à la deuxième colonne, une rotation de Givens dans le plan yz permet d'annuler la valeur z. La matrice complète devient alors

Q_{yz}Q_{xz}Q_{xy}Q = \begin{bmatrix}1&0&0\\0&1&0\\0&0&1\end{bmatrix} ,

c'est-à-dire la matrice identité. Ainsi, nous avons décomposé Q en

Q = Q_{xy}^{-1}Q_{xz}^{-1}Q_{yz}^{-1} .

Une matrice de rotation n×n aura (n−1)+(n−2)+⋯+2+1 = n(n-1)/2 termes en dessous de la diagonale qui devront être annulés. Cela peut se faire en généralisant la même idée, parcourant les colonnes avec une série de rotations dans une succession de plans. On en déduit que l'ensemble des matrices de rotation n×n, qui ont chacune n2 termes, peut être paramétré par n(n−1)/2 angles.

xzxw xzyw xyxw xyzw
yxyw yxzw yzyw yzxw
zyzw zyxw zxzw zxyw
xzxb yzxb xyxb zyxb
yxyb zxyb yzyb xzyb
zyzb xyzb zxzb yxzb

En trois dimensions, cela reformule dans le langage des matrices une observation faite par Euler, aussi les mathématiciens appellent-ils les trois angles obtenus des angles d'Euler. Cependant, la situation est un peu plus compliquée que ce que nous avons vu jusqu'ici : en dépit du petit nombre de dimensions, nous avons un choix considérable de séquences de paires d'axes, et aussi une certaine liberté dans le choix des angles. Ainsi, de nombreuses conventions différentes sont employées pour paramétrer les rotations tridimensionnelles en physique, en médecine, en chimie, ou dans d'autres disciplines. En tenant compte de la possibilité de prendre des repères fixes ou mobiles, 24 séquences différentes sont possibles. Et alors que certaines disciplines appellent toutes ces séquences des angles d'Euler, d'autres donnent des noms différents (Euler, Cardan, Tait-Byan, lacet-roulis-tangage) à des séquences différentes.

Une des raisons de ce grand nombre d'options est que, comme remarqué précédemment, les rotations en trois dimensions (et plus) ne commutent pas. Si nous permutons une suite donnée de rotations, nous n'obtenons pas (en général) le même résultat. Cela a également pour conséquence que nous ne pouvons pas composer des rotations (d'axes distincts) en additionnant leurs angles. Ainsi, les angles d'Euler ne sont pas des vecteurs, en dépit d'une ressemblance superficielle en tant que triplets de nombres.

Dimensions emboîtées

Une matrice de rotation 3×3 telle que

Q_{3 \times 3} = \begin{bmatrix}\cos \theta & -\sin \theta & {\color{CadetBlue}0} \\ \sin \theta & \cos \theta &   {\color{CadetBlue}0} \\ {\color{CadetBlue}0} & {\color{CadetBlue}0} & {\color{CadetBlue}1}\end{bmatrix}

donne l'impression qu'une matrice de rotation 2×2,

Q_{2 \times 2} = \begin{bmatrix}\cos \theta & -\sin \theta \\ \sin \theta & \cos \theta\end{bmatrix} ,

est incrite dans le coin supérieur gauche:

Q_{3 \times 3} = \left[ \begin{matrix} Q_{2 \times 2} & \bold{0} \\ \bold{0}^t & 1 \end{matrix} \right] .

Ce n'est pas une illusion ; on trouve de nombreuses copies de rotations n-dimensionnelles au sein des rotations (n+1)-dimensionnelles, en tant que sous-groupes. Chaque plongement laisse une direction fixe, qui dans le cas des matrices 3×3 est l'axe de rotation. Par exemple, nous avons

Q_{\bold{x}}(\theta) = \begin{bmatrix}1 & 0 & 0 \\ 0 & \cos \theta & -\sin \theta \\ 0 & \sin \theta & \cos \theta\end{bmatrix} ,
Q_{\bold{y}}(\theta) = \begin{bmatrix}\cos \theta & 0 & \sin \theta \\ 0 & 1 & 0 \\ -\sin \theta & 0 & \cos \theta\end{bmatrix} ,
Q_{\bold{z}}(\theta) = \begin{bmatrix}\cos \theta & -\sin \theta & 0 \\ \sin \theta & \cos \theta & 0  \\ 0 & 0 & 1\end{bmatrix} ,

fixant respectivement l'axe des x, l'axe des y et l'axe des z. L'axe de rotation n'a pas besoin d'être un axe de coordonnées ; si u = (x, y, z) est un vecteur unité de la direction souhaitée, alors

\begin{align}  Q_{\bold{u}}(\theta)  &{}=    \begin{bmatrix}     0&-z&y\\     z&0&-x\\     -y&x&0   \end{bmatrix} \sin \theta + (I - \bold{u}\bold{u}^t) \cos \theta + \bold{u}\bold{u}^t \\  &{}=   \begin{bmatrix}     (1-x^2) c_{\theta} + x^2 & - z s_{\theta} - x y c_{\theta} + x y & y s_{\theta} - x z c_{\theta} + x z \\     z s_{\theta} - x y c_{\theta} + x y & (1-y^2) c_{\theta} + y^2 & -x s_{\theta} - y z c_{\theta} + y z \\     -y s_{\theta} - x z c_{\theta} + x z & x s_{\theta} - y z c_{\theta} + y z & (1-z^2) c_{\theta} + z^2   \end{bmatrix} \\  &{}=   \begin{bmatrix}     x^2 (1-c_{\theta}) + c_{\theta} & x y (1-c_{\theta}) - z s_{\theta} & x z (1-c_{\theta}) + y s_{\theta} \\     x y (1-c_{\theta}) + z s_{\theta} & y^2 (1-c_{\theta}) + c_{\theta} & y z (1-c_{\theta}) - x s_{\theta} \\     x z (1-c_{\theta}) - y s_{\theta} & y z (1-c_{\theta}) + x s_{\theta} & z^2 (1-c_{\theta}) + c_{\theta}   \end{bmatrix} ,  \end{align}

cθ = cos θ, sθ = sin θ, est une rotation d'angle θ laissant l'axe u fixé.

Une direction dans l'espace à (n+1) dimensions sera un vecteur unité, que l'on peut considérer comme un point sur une sphère généralisée, Sn. Il est ainsi naturel de décrire le groupe des rotations SO(n+1) come composé de SO(n) et de Sn. Un formalisme adapté est celui des espaces fibrés,

 SO(n) \hookrightarrow SO(n+1) \to S^n , \,\!

où pour chaque direction dans l'« espace de base », Sn, la « fibre » au-dessus d'elle dans l'« espace total », SO(n+1), est une copie de SO(n), représentant les rotations qui gardent cette direction fixée.

Nous pouvons ainsi construire une matrice de rotation n×n en partant d'une matrice 2×2, plaçant un axe de rotation sur S2 (la sphère ordinaire de l'espace à trois dimensions), orientant la rotation résultante en ajoutant un axe de rotation sur S3, et ainsi de suite jusqu'à Sn−1. Un point sur Sn possède n « coordonnées sphériques » (en d'autres termes, Sn est une variété de dimension n), ainsi nous avons à nouveau besoin de n(n−1)/2 nombres pour décrire toutes les matrices de rotation n×n.

En fait, la décomposition angulaire séquentielle discutée précédemment peut être vue comme le même processus dans l'autre sens. La composition des n−1 rotations de Givens amène la première colonne (et la première ligne) à (1,0,…, 0), et le reste de la matrice est une matrice de rotation ayant une dimension de moins, plongée de telle sorte que (1,0,…, 0) reste fixé.

Paramétrages antisymétriques

Quand Q, une matrice de rotation n×n, n'admet pas −1 comme valeur propre, et donc qu'aucune des rotations planes qui la composent n'est une rotation de 180°, Q+I est une matrice inversible. C'est le cas de presque toutes les matrices de rotation, et on peut alors montrer que (QI)(Q+I)−1 est une matrice antisymétrique, A. Ainsi, AT = −A; comme la diagonale de A est nécessairement nulle, et que les termes du triangle supérieur déterminent les autres , A contient n(n−1)/2 coefficients indépendants. Heureusement, IA est inversible si A est antisymétrique ; ainsi nous pouvons retrouver la matrice initiale Q à l'aide de la transformation de Cayley :

 A \mapsto Q=(I+A)(I-A)^{-1} , \,\!

qui envoie n'importe quelle matrice antisymétrique A vers une matrice de rotation. En fait, en dehors des exceptions déjà mentionnées, on peut produire n'importe quelle matrice de rotation de cette manière. Bien que pour des applications pratiques, on puisse rarement se permettre de négliger le cas des rotations de 180°, la transformation de Cayley reste un outil utile, donnant une paramétrisation n'utilisant pas les fonctions trigonométriques de la plupart des matrices de rotation.

En trois dimensions, par exemple, nous avons

\begin{align}  &\begin{bmatrix}0&-z&y\\z&0&-x\\-y&x&0\end{bmatrix} \mapsto {}   \quad \frac{1}{1+x^2+y^2+z^2}  \begin{bmatrix}  1+x^2-y^2-z^2 & 2 x y-2 z & 2 y+2 x z \\  2 x y+2 z & 1-x^2+y^2-z^2 & 2 y z-2 x \\  2 x z-2 y & 2 x+2 y z & 1-x^2-y^2+z^2  \end{bmatrix} . \end{align}

Si nous notons les termes antisymétriques comme un vecteur, v= (x, y, z), ceci construit une rotation de 90° autour de l'axe des x pour v=(1,0,0), autour de l'axe des y pour v=(0,1,0), et autour de l'axe des z pour v=(0,0,1). Les rotations de 180° sont tout juste inatteignables, car, à la limite quand x tend vers l'infini, la matrice correspondant à v=(x, 0,0) tend vers une rotation de 180° autour de l'axe des x, et il en va de même dans les autres directions.

Page générée en 0.157 seconde(s) - site hébergé chez Contabo
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
A propos - Informations légales
Version anglaise | Version allemande | Version espagnole | Version portugaise