Question

Je suis physicien, et j'ai appris une programmation, et j'ai rencontré beaucoup de gens qui utilisent des quaternions pour les rotations au lieu d'écrire des choses sous forme matrice / vectorielle.

En physique, il y a de très bonnes raisons pour lesquelles nous n'utilisons pas les quaternions (malgré l'histoire bizarre qui est parfois racontée sur Hamilton / Gibbs / etc). La physique exige que nos descriptions aient un bon comportement analytique (cela a une signification précisément définie, mais de manière plutôt technique qui va bien au-delà de ce qui est enseigné dans les classes d'introduction normales, donc je n'entrerai pas dans le détail). Il s'avère que les quaternions n'ont pas ce beau comportement, et donc ils ne sont pas utiles, et les vecteurs / matrices le font, nous les utilisons donc.

Cependant, limité aux rotations et descriptions rigides qui n'utilisent aucune structure analytique, les rotations 3D peuvent être décrites de manière équivalente de toute façon (ou quelques autres façons).

Généralement, nous voulons juste un mappage d'un point x = (x, y, z) à un nouveau point x '= (x', y ', z') soumis à la contrainte que x2 = X '2. Et il y a beaucoup de choses qui font cela.

La manière naïve consiste à dessiner simplement les triangles qui définissent et utilisent la trigonométrie, ou d'utiliser l'isomorphisme entre un point (x, y, z) et un vecteur (x, y, z) et la fonction f (x) = x 'et une matrice mx = x ', ou en utilisant des quaternions, ou projetant des composants de l'ancien vecteur le long du nouveau en utilisant une autre méthode (x, y, z)T. (a, b, c) (x ', y', z '), etc.

D'un point de vue mathématique, ces descriptions sont toutes équivalentes dans ce contexte (en tant que théorème). Ils ont tous le même nombre de degrés de liberté, le même nombre de contraintes, etc.

Alors pourquoi les quaternions semblent-ils préférés aux vecteurs?

Les raisons habituelles que je vois ne sont pas un verrouillage de cardan, ni des problèmes numériques.

L'argument No Gimbal Lock semble étrange, car ce n'est qu'un problème des angles d'Euler. Ce n'est également qu'un problème de coordonnées (tout comme la singularité à r = 0 dans les coordonnées polaires (le Jacobian Lays Rank)), ce qui signifie qu'il ne s'agit que d'un problème local et peut être résolu en changeant les coordonnées, en rotation de la dégénérescence, ou en utilisant deux systèmes de coordonnées qui se chevauchent.

Je suis moins sûr des problèmes numériques, car je ne sais pas en détail comment les deux (et toutes les alternatives) seraient mis en œuvre. J'ai lu que la ré-normalisation d'un quaternion est plus facile que de le faire pour une matrice de rotation, mais cela n'est vrai que pour une matrice générale; Une rotation a des contraintes supplémentaires qui banalisent cela (qui sont intégrées dans la définition des quaternions) (en fait, cela doit être vrai car ils ont le même nombre de degrés de liberté).

Alors, quelle est la raison de l'utilisation des quaternions sur des vecteurs ou d'autres alternatives?

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top