Как я могу найти максимум sin(x) через matlab на интервале?
Используя только операторы if, мне нужно найти максимальную точку sin(x) на отрезке (a,b). Я знаю, чтобы проверить, равен ли 1. sin (a) или sin (b) 1. Я также знаю, что если ba больше 2 pi, максимальное значение будет равно 1.
Если ни одно из этих утверждений не является правдой, я не могу понять, как проверить, имеет ли уравнение значение 1 между этими точками через операторы if.
2 ответа
Сначала проверьте наличие (ba) > 2pi.
Тогда вы можете использовать тот факт, что производная синуса является косинус. Следовательно, если cos (a) положителен, а cos (b) отрицателен, у вас есть пик между ними, если cos (a) отрицателен, а cos (b) положителен, это долина. Если cos (a) и cos (b) - это один и тот же знак, то проверьте, чтобы (ba) > pi показало, есть ли у вас пик. Последний это грех (а) против греха (б).
Имеет смысл?:)
Имея, вычислите следующую точку с помощью sin(x)==1. Затем сравните x с b, чтобы проверить, находится ли 1 в вашем интервале.
Шаги для этого:
- вычитать сдвиг
- разделить на 2 пи
- округлим, мы хотим максимальное право на
- обратный 2 и 1
,
candidate=(ceil((a-pi/2)/pi/2)*pi*2)+pi/2
if candidate<b
candidate is maximum