Is there an easy way to remove scale from a squared linear transformation matrix

342 Views Asked by At

Given a linear transformation matrix $A = \begin{bmatrix} a & b & c \\ d & e & f \\ g & h & i \\ \end{bmatrix}$, I know that one can use SVD or QR decomposition to find the anisotropic scale $S = \begin{bmatrix} s_1 & 0 & 0 \\ 0 & s_2 & 0 \\ 0 & 0 & s_3 \\ \end{bmatrix}$. But, these non-linear methods are very ugly to be used in an optimization framework. Is there a way to decompose(remove) the scale out of $A$?

1

There are 1 best solutions below

0
On

If you consider the decomposition of a 3D matrix into "Scale Shear Rotate", which can also be defined as "Shear Scale Rotate" you will realize that Scaling and Shearing affect each other and you shall define the order in which they are applied.

Besides that, in the general case, even assuming you scale first (scaling is the rightmost matrix), the shearing will make things complicated.