sigmoid.RdCalculates the sigmoid function and its derivatives.
sigmoid(y, deriv = FALSE)
| y | a numeric vector. |
|---|---|
| deriv | if |
If deriv==FALSE, it returns a numeric vector equal to 1/(1+exp(-x)). If
deriv==TRUE it returns a list where the slot $D0 contains 1/(1+exp(-x)),
while $D1, $D2 and $D3 contain its first three derivatives.
#> [1] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 #> [39] 0 0 0 0 0 0 0 0 0 0 0 0##### Testing sigmoid derivatives e1 <- abs((sigmoid(p+h) - sigmoid(p-h)) / (2*h) - sigmoid(p, TRUE)[["D1"]]) / (2*h) e2 <- abs((sigmoid(p+h, TRUE)$D1 - sigmoid(p-h, TRUE)$D1) / (2*h) - sigmoid(p, TRUE)[["D2"]]) / (2*h) e3 <- abs((sigmoid(p+h, TRUE)$D2 - sigmoid(p-h, TRUE)$D2) / (2*h) - sigmoid(p, TRUE)[["D3"]]) / (2*h) if( any(c(e1, e2, e3) > 1) ) stop("Sigmoid derivatives are not estimated accurately")