Предыстория: в моей программе есть функция, которая берет набор точек и находит минимум и максимум на кривой, созданной этими точками. Дело в том, что он невероятно медленный, так как использует цикл while для определения минимума/максимума на основе аппроксимированной ошибки. Не совсем уверен, что это за формальный метод, потому что я не писал его сам, но я знаю, что нам нужен новый и более эффективный.
Вопрос: Мой вопрос заключается в следующем: каков наилучший и наиболее эффективный метод/алгоритм для нахождения минимальных максимальных точек на кривой с использованием C#, который также является очень точным?
О кривой: рядом со мной лежит книга по численному анализу из колледжа, поэтому все, что мне нужно, — это название метода и толчок в правильном направлении. Я могу сгенерировать столько точек, сколько захочу для аппроксимации кривой, но я хочу свести количество точек к эффективному минимуму. Кривая всегда имеет форму одного сегмента кривой Sin/Cos, но не всегда одна и та же кривая и всегда будет меньше одного периода. Диапазон Theta составляет от 0 до 359,999... Он имеет некоторый сдвиг фазы и амплитуды, а Y никогда не будет отрицательным. Эта функция/алгоритм должна работать быстро, так как она будет запускаться каждые несколько сотен миллисекунд по мере изменения кривой.
Любые предложения приветствуются.
ИЗМЕНИТЬ
Дополнительная информация о кривой: точки генерируются при движении мыши. Точки представляют собой набор точек, основанный на длине резинового ремня в конструкции привода с натяжным роликом, такой как поликлиновой ремень в автомобиле. Положение натяжного ролика определяет длину ремня, и я получаю кривую [длина ремня (y) в зависимости от положения натяжного ролика (x)]. Натяжной ролик в этом случае представляет собой поворотный натяжной ролик и будет иметь постоянное круговое движение. Если конструкция привода изменится, кривая изменится либо из-за изменения точек длины, либо из-за того, что диапазон движения натяжного ролика был ограничен. Диапазон движения холостого хода потенциально составляет от 0 до 359,999... и является тета, как указано выше. Для натяжного ролика с прорезями максимальный диапазон составляет 1/2 периода кривой (более простая задача).
Я предполагаю, что мне нужен общий решатель для обоих типов бездельников, но реальная проблема связана с поворотным бездельником.