library(numDeriv)#求梯度函数包
# 定义一个函数
x <- rbinom(10, 1,0.5)
f <- function(p,x) {
return(p^x*(1-p)^(1-x))
}
#求出似然函数
g <- function(p) {
g<-1
for(i in 1:length(x)){
g<-g*f(p,x[i])
}
return(g)
}
#用下降梯度法求解
y<-0.5#定义初始值
a<-10#定义迭代次数
b<-0.4#学习步长
for(i in 1:a){
y<-y+b*grad(g,y)
}
#求出参数估计
y