Pessoal, 

eu tenho uma variável que segue uma distribuição bimodal, e eu preciso encontrar o melhor ponto que separa essas bimodais, de forma lógica matematicamente. 

Então eu pensei em gerar a curva de densidade e encontrar a derivada dessa curva. O local em que a derivada for zero eu teria o valor critico e também o ponto de mínimo, portanto, o melhor valor para determinar o corte e encontrar os dois grupos distintos. 

Como encontrar a derivada primeira e segunda da densidade?

# Código mínimo executável:

X = c(rnorm(100, 10, 3), rnorm(50, 40, 5))  # Variável bimodal
hist(X, freq = F)
denfuncao = density(X)
lines(denfuncao, lwd = 2)
  # como encontrar a derivada de uma curva se não conheço a função de 
  # densidade?
deriv(expr = denfuncao$x, namevec = denfuncao$x)