#r
#r
Вопрос:
log1<-function(x,theta){ #make function with 2 argument
return(-length(x)*log(2*pi) sum(log(1-cos(x-theta))))
}
g<-grad(func=log1, theta) # But I am getting an error.
- Я получаю сообщение об ошибке при использовании функции градиента.
Комментарии:
1. Привет, Мэри. Ваша функция возвращает скалярное значение при передаче векторных значений
x
иtheta
, поэтому неясно, как вы ожидаете, что она будет работатьgrad
?
Ответ №1:
для вашей функции log1
требуется два аргумента x
и theta
, но вы только передаете theta
, без значения по умолчанию для обоих аргументов. Попробуйте:
library(numDeriv)
log1<-function(x,theta){ #make function with 2 argument
return(-length(x)*log(2*pi) sum(log(1-cos(x-theta))))
}
g<-grad(func = log1, x=4, theta=5)
или назначьте некоторые значения по умолчанию для ваших переменных, чтобы вы могли сделать что-то вроде этого:
log1<-function(x=3,theta=4){ #make function with 2 argument
return(-length(x)*log(2*pi) sum(log(1-cos(x-theta))))
}
g<-grad(func = log1, x=c(1,2,3))