Математически, количество, о котором вы спрашиваете, называется нормой оператора . К сожалению, нет простой формулы для этого. Если это полностью общее аффинное преобразование - например, если оно может иметь произвольную комбинацию поворотов и неравномерных масштабов в любом порядке - тогда я боюсь, что для этого нет ничего, кроме использования разложения по сингулярным значениям . Если вы примените SVD к своей матрице, то наибольшее единственное значение будет максимальным радиусом полученного эллипсоида. Другие особые значения также будут двумя другими его радиусами, и процедура SVD также может извлечь ориентацию осей для вас.
Внедрение SVD не для слабонервных, так как предполагает поиск собственных значений. Если все, что вам нужно, это сами сингулярные значения, они являются квадратными корнями из собственных значений M ^ T * M. Поэтому, если у вас есть под рукой решатель собственных значений 3x3 или вы не против написать его, вы можете использовать его. Если вы хотите извлечь ориентации осей, то это становится более сложным, поскольку вы также должны найти собственные векторы. В этой статье Википедии есть список ссылок на библиотеки для работы с SVD, одну из которых вы можете использовать в своем проекте.
Если форма вашей матрицы ограничена таким образом, что неравномерное масштабирование происходит не более одного раза и является первым примененным преобразованием, то есть наиболее правым, когда вы используете векторы столбцов, тогда вы можете упростить это, просто посмотрев на длину преобразованные векторы оси. Только в этом случае - т. Е. Один неоднородный масштаб, сопровождаемый любой последовательностью поворотов, отражений и равномерных масштабов - если смотреть только на векторы осей, вы получите правильный ответ.