Matemáticamente, la cantidad que está preguntando se llama la norma del operador . Desafortunadamente, no hay una fórmula simple para ello. Si es una transformación afín totalmente general, por ejemplo, si pudiera tener una combinación arbitraria de rotaciones y escalas no uniformes, en cualquier orden, entonces me temo que no hay nada más que usar la descomposición de valores singulares . Si aplica SVD a su matriz, el valor singular más grande será el radio máximo del elipsoide resultante. Los otros valores singulares también serán sus otros dos radios, y el procedimiento SVD también puede extraer la orientación de los ejes por usted.
La implementación de SVD no es para los débiles de corazón, ya que implica encontrar valores propios. Si todo lo que quiere son los valores singulares en sí, son las raíces cuadradas de los valores propios de M ^ T * M. Entonces, si tiene a mano un solucionador de valores propios 3x3, o no le importa escribir uno, puede usarlo. Si desea extraer también las orientaciones de los ejes, entonces se involucra más, ya que también tiene que encontrar vectores propios. En ese artículo de Wikipedia hay una lista de enlaces a bibliotecas para hacer SVD, uno de los cuales puede usar en su proyecto.
Si la forma de su matriz está restringida de tal manera que la escala no uniforme ocurre como máximo una vez y es la primera transformación aplicada, es decir, es la más correcta cuando está utilizando vectores de columna, entonces puede simplificar esto para ver solo las longitudes de vectores de eje transformados. Solo en ese caso, es decir, una sola escala no uniforme seguida de cualquier secuencia de rotaciones, reflexiones y escalas uniformes, mirar solo los vectores del eje le dará la respuesta correcta.