Подгонка 3D-эллипсоида к набору точек 3D-данных

У меня есть набор точек, 3D-координаты которых равны x, y и z, и мне нужно определить эллипсоид, наиболее подходящий для их распределения. Сложность заключается в том, что мои точки не распределены по эллипсоидальным поверхностям, а примерно заполняют пространство, определяемое сигарой. Я обычно работаю с python/C и знаю, что этот вопрос уже задавали, но я не смог найти удовлетворительного ответа. Вы знаете, как я могу решить эту проблему?


person Brian    schedule 24.03.2015    source источник
comment
Вы ищете алгоритм для поиска эллипсоида по точкам или хотите знать, как реализовать этот алгоритм на Python?   -  person mkrieger1    schedule 24.03.2015
comment
Также: что вы пробовали до сих пор и почему это не сработало?   -  person mkrieger1    schedule 24.03.2015
comment
Да, я ищу алгоритм, и мне интересно, кто-нибудь уже реализовал его на python или c. Я мог бы выполнить подгонку методом наименьших квадратов, но проблема в том, что мои точки не распределены по поверхности эллипсоида, поскольку они заполняют все пространство. Я предполагаю, что моя проблема состоит в том, чтобы найти предельный эллипсоид для набора точек.   -  person Brian    schedule 24.03.2015
comment
Возможно, вы найдете что-то полезное, если будете искать решения минимальной проблемы ограничивающей сферы.   -  person mkrieger1    schedule 24.03.2015


Ответы (1)


Есть возможность: i) взять выпуклую оболочку формы. ii) брать только экстремальные точки (т. е. лежащие на границе, а не внутри). iii) использовать стандартный алгоритм подбора эллипсоида, например. https://github.com/pierre-weiss/FitEllipsoid.

Основная трудность из того, что я понял, заключается в том, что алгоритмы подбора эллипсоида предполагают, что точки находятся на границе. Шаги i) и ii) позволят довольно легко отбросить внутренние точки.

person P. Weiss    schedule 15.02.2017