Редактировать: Находит максимум кривой между 0 и 2 * пи.Затем он находит корень между интервалом 0 и максимумом.
a <- 0.5
b <- -3
max_op <- optimize(function(x) cos(x+b), interval = c(0, 2*pi), maximum = TRUE)$maximum
uniroot(function(x) cos(x+b) - a, interval = c(0,max_op))
Оригинал:
Вот потенциальное решение.optim
, кажется, возвращает правильный ответ, но выдает предупреждение.uniroot
и optimize
работают, но требуют некоторого контроля, поскольку вы должны обеспечить узкий интервал.
optim(par = 1, fn = function(x) abs(cos(x+b) - a))
uniroot(function(x) cos(x+b) - a, interval = c(1,2))
optimize(function(x) abs(cos(x+b) - a), interval = c(0,2))