У меня есть заданная S точка (красная на графике) и n других точек (черная на графике). Я хочу найти точку P на расстоянии 1 от S , которая является самой удаленной из всех черных точек (в данном случае - сумма расстояний между P и каждая точка должна быть самой высокой).
Поскольку P равно 1 от S , мы можем сказать, что y = √(1 - x^2)
.
Аналитическим способом, которым я бы лично воспользовался, было бы:
- Рассчитать сумму расстояний
Q - P = √((Qx - Sx - x)^2 + (Qy - Sy - √(1 - x^2))^2)
(повтор всех n точек и суммирование),
- Рассчитать производную полученного выражения,
- Рассчитать корни производной и найти максимумы (в области),
- Рассчитать значения на концах интервалов в домене,
- Выберите правильный X.
Какой самый эффективный способ сделать это на Java и какие библиотеки можно использовать? Я слышал о библиотеках, позволяющих проводить эту аналитику, но это звучит сложно и медленно, поэтому я искал любые числовые идеи, но не мог их найти.