Learn R Programming

pracma (version 1.8.8)

sigmoid: Sigmoid Function

Description

Sigmoid function (aka sigmoidal curve or logistic function).

Usage

sigmoid(x, a = 1, b = 0)
logit(x, a = 1, b = 0)

Arguments

x
numeric vector.
a, b
parameters.

Value

  • Numeric/complex scalar or vector.

Details

The sigmoidal function with parameters a,b is the function $$y = 1/(1 + e^{-a (x-b)})$$

The sigmoid function is also the solution of the ordinary differentialequation $$y' = y (1-y)$$ with $y(0) = 1/2$ and has an indefinite integral $\ln(1 + e^x)$.

The logit function is the inverse of the sigmoid function and is (therefore) omly defined between 0 and 1. Its definition is $$y = b + 1/a log(x/(1-x))$$

Examples

Run this code
x <- seq(-6, 6, length.out = 101)
y1 <- sigmoid(x)
y2 <- sigmoid(x, a = 2)
plot(x, y1, type = "l", col = "darkblue", 
        xlab = "", ylab = "", main = "Sigmoid Function(s)")
lines(x, y2, col = "darkgreen")
grid()

# The slope in 0 (in x = b) is a/4
# sigmf with slope 1 and range [-1, 1].
sigmf <- function(x) 2 * sigmoid(x, a = 2) - 1

Run the code above in your browser using DataLab