Я ищу подходящую плоскость к набору ~ 6-10k 3D-точек. Я стараюсь сделать это как можно быстрее, и точность не является наивысшей проблемой (откровенно говоря, плоскость может быть на +10 градусов в любой из кардинальных осей).Ускоренное плоское прилегание ко многим точкам
Мой нынешний подход - использовать наилучшее из лучших, но он невероятно медленный (я надеюсь извлечь самолеты со скоростью примерно 10-50 килограмм каждый раз, когда я запускаю алгоритм, и при таком значении он завершит в неделях, в отличие от часов), поскольку он работает во всех возможных комбинациях из 6000 пунктов, поэтому ~ 35 000 000 000 итераций, и, откровенно говоря, он имеет гораздо более высокую точность, чем мне нужно.
Кто-нибудь знает о каких-либо более слабых методах крепления самолета, которые могут значительно ускорить мой алгоритм?
EDIT:
мне удалось получить число итераций до ~ 42k путем создания плоскостей в каждом возможном 3D угол (пошагового на 5 градусов каждый раз) и тестирование существующих точек против них, чтобы найти лучшая плоскость, вместо того, чтобы подгонять плоскости к точкам, которые у меня есть.
Я уверен, что здесь есть что-то, что можно разделить и победить, хотя я волнуюсь, что могу прыгнуть прямо через лучший самолет.
У вас есть доступ к [Curve Место Toolbox] (Http: //www.mathworks. ком/помощь/набор инструментов/CurveFit/brviv3f-1.html # bs1cj4_-1)? – kevlar1818
К сожалению, нет, я застрял с ванильным MATLAB, хотя у меня много опыта программирования в целом, поэтому я должен уметь обрабатывать довольно сложный алгоритм. –
Если точность не является вашей основной задачей, попробуйте уменьшить сложность ввода данных. Запустите kmeans или что-то в исходном наборе 6-10k точек, а затем установите плоскость на образцы. – Ansari