lambertW: The Lambert W Function

View source: R/family.maths.R

lambertWR Documentation

The Lambert W Function

Description

Computes the Lambert W function for real values.

Usage

lambertW(x, tolerance = 1e-10, maxit = 50)

Arguments

x

A vector of reals.

tolerance

Accuracy desired.

maxit

Maximum number of iterations of third-order Halley's method.

Details

The Lambert W function is the root of the equation W(z) \exp(W(z)) = z for complex z. If z is real and -1/e < z < 0 then it has two possible real values, and currently only the upper branch (often called W_0) is computed so that a value that is \geq -1 is returned.

Value

This function returns the principal branch of the W function for real z. It returns W(z) \geq -1, and NA for z < -1/e.

Note

If convergence does not occur then increase the value of maxit and/or tolerance.

Yet to do: add an argument lbranch = TRUE to return the lower branch (often called W_{-1}) for real -1/e \leq z < 0; this would give W(z) \leq -1.

Author(s)

T. W. Yee

References

Corless, R. M. and Gonnet, G. H. and Hare, D. E. G. and Jeffrey, D. J. and Knuth, D. E. (1996). On the Lambert W function. Advances in Computational Mathematics, 5(4), 329–359.

See Also

log, exp, bell. There is also a package called LambertW.

Examples

 ## Not run: 
curve(lambertW, -exp(-1), 3, xlim = c(-1, 3), ylim = c(-2, 1),
      las = 1, col = "orange", n = 1001)
abline(v = -exp(-1), h = -1, lwd = 2, lty = "dotted", col = "gray")
abline(h = 0, v = 0, lty = "dashed", col = "blue") 
## End(Not run)

VGAM documentation built on Sept. 19, 2023, 9:06 a.m.