Oui, mais la solution ne sera pas unique. Aussi, vous devriez plutôt mettre fin à la traduction (de l'ordre du reste n'a pas d'importance)
Pour toute matrice carrée donnée A
il existe une infinité de matrices B
et C
pour que A = B*C
. Choisissez une matrice inversible B
(ce qui signifie que B^-1 existe ou det (B)! = 0) et maintenant C = B^-1*A
. Pour votre solution, décomposer d'abord MC
en MT
et MS*MR*MSk*I
, en choisissant MT comme matrice de transposition inversible. Puis décomposer le reste en MS
et MR*MSk*I
de sorte que MS est une matrice de mise à l'échelle arbitraire. Et ainsi de suite ...
Maintenant si à la fin de l'amusement I
est une matrice d'identité (avec 1 sur la diagonale, 0 ailleurs), vous êtes bon. Si ce n'est pas le cas, recommencez, mais choisissez différentes matrices ;-)
En fait, en utilisant la méthode ci-dessus symboliquement, vous pouvez créer un ensemble d'équations qui vous donnera une formule paramétrée pour toutes ces matrices.
A quel point ces décompositions seraient utiles pour vous, c'est une autre histoire.
Si vous tapez ceci dans Mathematica ou Maxima ils calculent pour vous en peu de temps.
Vous avez un bon point, sauf que ces matrices ont des liaisons supplémentaires (la traduction est la matrice d'identité avec la colonne la plus à droite contenant le vecteur de traduction, etc.). Autant que je puisse imaginer, ces quatre transformations - à condition que cet ordre soit fixé - devraient donner un résultat sans ambiguïté. – samuil