Все ответы более или менее одинаковы. Спасибо, ребята =)
Я думаю, я бы пошел с чем-то вроде следующего (обратите внимание, что я переименовываю переменную, которую я назвал "x" в "конец". У меня была эта "x" в начале, которая обозначала конец моего интервала на X-ось):
1) Оцените y по 0 и «end», используйте блок if, чтобы присвоить два значения правильным ПРЕДВАРИТЕЛЬНЫМ «min» и «max» диапазона
2) Оценить количество эволюций: "evolNr" = (m * end) / 2Pi. Если evolNr> 1, вернуть [-a, a]
3) Если evolNr <1: сначала найдите корень производной, который находится по адресу «firstRoot» = (1 / 2m) * Pi - фаза + q * 1 / m * Pi, где q = ceil (m / Pi * ((1 / 2m) * Pi - фаза)) --- это дает мне первый корень в некоторой позиции x> 0. С тех пор я знаю, что все остальные крайности находятся в пределах firstRoot и "end", у нас есть новый корень каждые 1 / м * Пи.
В коде: for (a = firstRoot; a 0 - максимум, обновите «max», в противном случае обновите «min»}
возврат [мин, макс]