[R] erf function documentation
Prof Brian Ripley
ripley at stats.ox.ac.uk
Wed Jun 16 23:46:55 CEST 2004
On Wed, 16 Jun 2004, Charles Maner wrote:
>
> Hi all. I may be wrong, (and often am), but in trying
> to determine how to calculate the erf function, the
> documentation for 'pnorm' states:
>
> ## if you want the so-called 'error function'
> erf <- function(x) 2 * pnorm(x * sqrt(2)) - 1
> ## and the so-called 'complementary error function'
> erfc <- function(x) 2 * pnorm(x * sqrt(2),
> lower=FALSE)
>
> Should, instead, it read:
> ## if you want the so-called 'error function'
> erf <- function(x) 2 * pnorm(x / sqrt(2)) - 1
> ## and the so-called 'complementary error function'
> erfc <- function(x) 2 * pnorm(x / sqrt(2),
> lower=FALSE)
>
> I've looked at a couple references and they all show
Which are? `Both', surely.
> that 'x' should be divided by, not multiplied by,
> 'sqrt(2)'.
>
> Again, I may be incorrect. If so, kindly let me know.
> But, if I am correct, perhaps the documentation could
> be corrected in a subsequent R release.
According to Abramowitz and Stegun section 7.1,
erf z = \frac{2}{\sqrt{pi} \int^z_0 e^_{-t^2} dt
Now pnorm(x) = \frac{1}{sqrt{2\pi}} \int^x_{-\infty} e^_{-u^2/2} du
so pnorm(x) - 1/2 = \frac{1}{sqrt{2\pi}} \int^x_0 e^_{-u^2/2} du
Now substitute t = u/sqrt{2}
pnorm(x) - 1/2 = \frac{1}{sqrt{2\pi}} \int^{x\sqrt{2}}_0 e^_{-t^2} dt\sqrt{2}
so pnorm(x) - 1/2 = 1/2 erf x\sqrt{2} or erf z = 2 pnorm(x/\sqrt{2} - 1
as you suggest.
--
Brian D. Ripley, ripley at stats.ox.ac.uk
Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
University of Oxford, Tel: +44 1865 272861 (self)
1 South Parks Road, +44 1865 272866 (PA)
Oxford OX1 3TG, UK Fax: +44 1865 272595
More information about the R-help
mailing list