| Special {base} | R Documentation |
Special mathematical functions related to the beta and gamma functions.
beta(a, b) lbeta(a, b) gamma(x) lgamma(x) digamma(x) trigamma(x) tetragamma(x) pentagamma(x) choose(n, k) lchoose(n, k)
a, b, x |
numeric vectors. |
n, k |
integer vectors. |
The functions beta and lbeta return the beta function
and the natural logarithm of the beta function,
B(a,b) = (Gamma(a)Gamma(b))/(Gamma(a+b)).
The functions gamma and lgamma return the gamma function
Γ(x) and the natural logarithm of the absolute value of the
gamma function.
The functions digamma, trigamma, tetragamma and
pentagamma return the first, second, third and fourth
derivatives of the logarithm of the gamma function.
digamma(x) = psi(x) = d/dx {ln Gamma(x)} = Gamma'(x) / Gamma(x)
The functions choose and lchoose return binomial
coefficients and their logarithms.
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988)
The New S Language.
Wadsworth & Brooks/Cole. (for gamma and lgamma.)
Abramowitz, M. and Stegun, I. A. (1972) Handbook of Mathematical Functions. New York: Dover. Chapter 6: Gamma and Related Functions.
Arithmetic for simple, sqrt for
miscellaneous mathematical functions and Bessel for the
real Bessel functions.
choose(5, 2)
for (n in 0:10) print(choose(n, k = 0:n))
## gamma has discontinuities are 0, -1, -2, ...
## Not run:
## use plots of points to show this.
curve(gamma(x),-3,4, n=1001, ylim=c(-10,100),
col="red", lwd=2, main="gamma(x)")
abline(h=0,v=0, lty=3, col="midnightblue")
## End(Not run)
x <- seq(.1, 4, length = 201); dx <- diff(x)[1]
par(mfrow = c(2, 3))
for (ch in c("", "l","di","tri","tetra","penta")) {
is.deriv <- nchar(ch) >= 2
if (is.deriv) dy <- diff(y) / dx
nm <- paste(ch, "gamma", sep = "")
y <- get(nm)(x)
plot(x, y, type = "l", main = nm, col = "red")
abline(h = 0, col = "lightgray")
if (is.deriv) lines(x[-1], dy, col = "blue", lty = 2)
}