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.
答案 0 :(得分:0)
您的函数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))