lambertW {VGAM}R 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 WW function is the root of the equation W(z)exp(W(z))=zW(z) \exp(W(z)) = z for complex zz. If zz is real and 1/e<z<0-1/e < z < 0 then it has two possible real values, and currently only the upper branch (often called W0W_0) is computed so that a value that is 1\geq -1 is returned.

Value

This function returns the principal branch of the WW function for real zz. It returns W(z)1W(z) \geq -1, and NA for z<1/ez < -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 W1W_{-1}) for real 1/ez<0-1/e \leq z < 0; this would give W(z)1W(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 WW 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)

[Package VGAM version 1.1-11 Index]