嗨,我是r的新手,并尝试在r中使用grad

时间:2020-11-09 16:34:52

标签: 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. 使用渐变函数时出现错误。

1 个答案:

答案 0 :(得分:0)

您的函数log1需要两个参数xtheta,但是您只传递了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))