{{Short description|Sigmoid shape special function}} {{Use dmy dates|date=March 2023}} {{Distinguish|Loss function}} In mathematics, the '''error function''' (also called the '''Gauss error function'''), often denoted by <math>\mathbf{erf}</math>, is the function{{sfnp|Andrews|1998|p=110}} <math display="block">\operatorname{erf}(z) = \frac{2}{\sqrt\pi}\int_0^z e^{-t^2}\,dt.</math> {{Infobox mathematical function | name = Error function | image = Error Function.svg | imagesize = 400px | imagealt = Plot of the error function over real numbers | caption = Plot of the error function over real numbers | general_definition = <math>\operatorname{erf}(z) = \frac{2}{\sqrt\pi}\int_0^z e^{-t^2}\, dt</math> | fields_of_application = Probability, thermodynamics, digital communications | domain = <math>\mathbb{C}</math> | range = <math>\left( -1,1 \right)</math> | parity = Odd | root = 0 | derivative = <math>\frac{d}{dz}\operatorname{erf}(z) = \frac{2}{\sqrt\pi} e^{-z^2} </math> | antiderivative = <math>\int \operatorname{erf}(z)\,dz = z \operatorname{erf}(z) + \frac{e^{-z^2}}{\sqrt\pi} + C</math> | taylor_series = <math display="block">\begin{align} \operatorname{erf}(z) &= \frac{2}{\sqrt\pi}\sum_{n=0}^\infty\frac{(-1)^n z^{2n+1}}{n! (2n+1)} \\[6pt] &= \frac{2}{\sqrt\pi} \left(z-\frac{z^3}{3}+\frac{z^5}{10}-\frac{z^7}{42}+\frac{z^9}{216}\cdots\right) \end{align}</math> }}

The integral here is a complex contour integral which is path-independent because <math>\exp(-t^2)</math> is holomorphic on the whole complex plane <math>\mathbb{C}</math>. In many applications, the function argument is a real number, in which case the function value is also real.

In some older texts,{{sfnp|Whittaker|Watson|2021|p=358}} the error function is defined without the factor of <math>2/\sqrt{\pi}</math>. This nonelementary integral is a sigmoid function that occurs often in probability, statistics, and partial differential equations.

In statistics, for non-negative real values of <math>X</math>, the error function has the following interpretation: for a real random variable <math>Y</math> that is normally distributed with mean 0 and standard deviation <math>1/\sqrt{2}</math>, <math>\operatorname{erf}(x)</math> is the probability that <math>Y</math> falls in the range <math>[-x,x]</math>.

Two closely related functions are the '''complementary error function''' :<math>\operatorname{erfc}(z) = 1 - \operatorname{erf}(z)</math> and the '''imaginary error function''' :<math>\operatorname{erfi}(z) = -i\operatorname{erf}(iz),</math> where <math>i</math> is the imaginary unit.

== Name == The name "error function" and its abbreviation <math>\operatorname{erf}</math> were proposed by J. W. L. Glaisher in 1871 on account of its connection with "the theory of probability, and notably the theory of errors".{{sfnp|Glaisher|1871a}} The complementary error function was also discussed by Glaisher in a separate publication in the same year.{{sfnp|Glaisher|1871b}} For the "law of facility" of errors whose density is given by :<math>f(x) = \left(\frac{c}{\pi}\right)^{1/2} e^{-c x^2}</math> (the normal distribution), Glaisher calculates the probability of an error lying between <math>p</math> and <math>q</math> as :<math>\left(\frac{c}{\pi}\right)^\frac{1}{2} \int_p^qe^{-cx^2}\,dx = \frac{1}{2} \big(\operatorname{erf}(q\sqrt{c}) - \operatorname{erf}(p\sqrt{c})\big).</math>

== Applications == When the results of a series of measurements are described by a normal distribution with standard deviation <math>\sigma</math> and expected value zero, then :<math>\operatorname{erf}\bigg(\frac{a}{\sigma\sqrt{2}}\bigg)</math> is the probability that the error of a single measurement lies between <math>-a</math> and <math>a</math>. This is useful, for example, in determining the bit error rate of a digital communication system.

The error and complementary error functions occur, for example, in solutions of the heat equation when boundary conditions are given by the Heaviside step function.

The error function and its approximations can be used to estimate results that hold with high probability or with low probability. Given a normally distributed random variable <math>X</math> with mean <math>\mu</math> and standard deviation <math>\sigma</math> and a constant <math>L>\mu</math>, it can be shown (via integration by substitution) that :<math>\Pr[X\leq L] = \frac{1}{2} + \frac{1}{2} \operatorname{erf}\left(\frac{L-\mu}{\sqrt{2}\sigma}\right)\approx A \exp \left(\!-B \,\left(\frac{L-\mu}{\sigma}\right)^2\right)</math>

where <math>A</math> and <math>B</math> are certain numeric constants. If <math>L</math> is sufficiently far from the mean, specifically, <math>\mu-L\geq \sigma\sqrt{\log(k)}</math>, then :<math>\Pr[X\leq L] \leq A \exp (-B \log(k))=\frac{A}{k^B}</math> and so the probability goes to 0 as <math>k\to\infty</math>.

The probability for <math>X</math> being in the interval <math>[L_a,L_b]</math> can be derived as <math display="block">\begin{align} \Pr[L_a\leq X \leq L_b] &= \int_{L_a}^{L_b} \frac{1}{\sqrt{2\pi}\sigma} \exp\left(-\frac{(x-\mu)^2}{2\sigma^2}\right) \, dx \\[4pt] &= \frac{1}{2}\left(\operatorname{erf}\left(\frac{L_b-\mu}{\sqrt{2}\sigma}\right) - \operatorname{erf}\left(\frac{L_a-\mu}{\sqrt{2}\sigma}\right)\right).\end{align}</math>

== Properties == {{multiple image | header = Plots in the complex plane | direction = vertical | width = 250 | image1 = ComplexExp2.png | caption1 = {{math|exp(−''z''<sup>2</sup>)}} in the complex plane, with domain coloring. | image2 = ComplexErfz.png | caption2 = {{math|erf(''z'')}} in the complex plane. }}

The error function is an odd function. This directly results from the fact that the integrand <math>e^{-t^2}</math> is an even function (since the antiderivative of an even function which is zero at the origin is an odd function, and vice versa).

Since the error function is an entire function which maps real numbers to real numbers, for any complex number <math>z</math>, :<math>\operatorname{erf}(\bar{z}) = \overline{\operatorname{erf}(z)}</math> where <math>\bar{z}</math> denotes the complex conjugate of <math>z</math>.

The error function at <math>\infty</math> is exactly <math>1</math> (see Gaussian integral). At the real axis, <math>\operatorname{erf}(z)</math> approaches <math>1</math> at <math>z\to\infty</math> and <math>-1</math> at <math>z\to-\infty</math>. At the imaginary axis, it tends to <math>\pm i\infty</math>. <!-- ; the relation {{math|1=erf(−''z'') = −erf ''z''}} holds.!-->

=== Taylor series === The error function is an entire function; it has no singularities (except at infinity) and its Taylor expansion always converges. For <math>x\gg 1</math>, however, cancellation of leading terms makes the Taylor expansion impractical.

The defining integral cannot be evaluated in closed form in terms of elementary functions (see Liouville's theorem), but by expanding the integrand <math>e^{-z^2}</math> into its Maclaurin series, integrating term by term,{{sfnp|Fischer|Lieb|2011}} and using the fact that <math>\operatorname{erf}(0)=0</math>, one obtains the error function's Maclaurin series as: <math display="block">\begin{align} \operatorname{erf}(z) &= \frac{2}{\sqrt\pi}\sum_{n=0}^\infty\frac{(-1)^n z^{2n+1}}{n! (2n+1)} \\[6pt] &= \frac{2}{\sqrt\pi} \left(z-\frac{z^3}{3}+\frac{z^5}{10}-\frac{z^7}{42}+\frac{z^9}{216}-\cdots\right) \end{align}</math> which holds for every complex number <math>z</math>. The denominator terms form sequence A007680 in the OEIS. This is a special case of Kummer's function: :<math>\operatorname{erf}(z) = \frac{2z}{\sqrt\pi}\,{}_1F_1\bigg(\frac{1}{2}, \frac{3}{2}, -z^2\bigg).</math> For iterative calculation of the above series, the following alternative formulation may be useful: <math display="block">\begin{align} \operatorname{erf}(z) &= \frac{2}{\sqrt\pi}\sum_{n=0}^\infty\left(z \prod_{k=1}^n {\frac{-(2k-1) z^2}{k (2k+1)}}\right) \\[6pt] &= \frac{2}{\sqrt\pi} \sum_{n=0}^\infty \frac{z}{2n+1} \prod_{k=1}^n \frac{-z^2}{k}, \end{align}</math> because :<math>\frac{-(2k-1)z^2}{k(2k+1)}</math> expresses the multiplier to turn the <math>k</math>-th term into the <math>(k+1)</math>-th term (considering <math>z</math> as the first term).

The imaginary error function has a similar Maclaurin series: <math display="block">\begin{align} \operatorname{erfi}(z) &= \frac{2}{\sqrt\pi}\sum_{n=0}^\infty\frac{z^{2n+1}}{n! (2n+1)} \\[6pt] &=\frac{2}{\sqrt\pi} \left(z+\frac{z^3}{3}+\frac{z^5}{10}+\frac{z^7}{42}+\frac{z^9}{216}+\cdots\right) \end{align}</math> which holds for every complex number <math>z</math>.

=== Derivative and integral === The derivative of the error function follows immediately from its definition: <math display="block">\frac{d}{dz}\operatorname{erf}(z) =\frac{2}{\sqrt\pi} e^{-z^2}.</math> From this, the derivative of the imaginary error function is also immediate: <math display="block">\frac{d}{dz}\operatorname{erfi}(z) =\frac{2}{\sqrt\pi} e^{z^2}.</math>Higher order derivatives are given by <math display="block">\operatorname{erf}^{(k)}(z) = \frac{2 (-1)^{k-1}}{\sqrt\pi} \mathit{H}_{k-1}(z) e^{-z^2} = \frac{2}{\sqrt\pi} \frac{d^{k-1}}{dz^{k-1}} \big(e^{-z^2}\big),</math> where the <math>H_k</math> are the physicists' Hermite polynomials.<ref>{{mathworld|title=Erf|urlname=Erf}}</ref>

An antiderivative of the error function, obtainable by integration by parts, is <math display="block">\int \operatorname{erf}(z) dz = z\operatorname{erf}(z) + \frac{e^{-z^2}}{\sqrt\pi}+C.</math> An antiderivative of the imaginary error function, also obtainable by integration by parts, is <math display="block">\int \operatorname{erfi}(z) dz = z\operatorname{erfi}(z) - \frac{e^{z^2}}{\sqrt\pi}+C.</math>

=== Bürmann series ===

An expansion which converges more rapidly for all real values of <math>x</math> than a Taylor expansion{{sfnp|Schöpf|Supancic|2014}} is obtained by using Bürmann's theorem:<ref>{{mathworld|urlname=BuermannsTheorem | title = Bürmann's Theorem }}</ref> <math display="block">\begin{align} \operatorname{erf}(x) &= \frac{2}{\sqrt\pi} \sgn(x) \cdot \sqrt{1-e^{-x^2}} \left( 1-\frac{1}{12} \left (1-e^{-x^2} \right ) -\frac{7}{480} \left (1-e^{-x^2} \right )^2 -\frac{5}{896} \left (1-e^{-x^2} \right )^3 - \cdots \right) \\[10pt] &= \frac{2}{\sqrt\pi} \sgn(x) \cdot \sqrt{1-e^{-x^2}} \left(\frac{\sqrt\pi}{2} + \sum_{k=1}^\infty c_k e^{-kx^2} \right) \end{align}</math> where <math>\operatorname{sgn}</math> is the sign function. By keeping only the first two coefficients and choosing <math>c_1=31/200</math> and <math>c_2=-341/8000</math>, the resulting approximation shows its largest relative error at <math>x=\pm 1.40587</math>, where it is less than <math>0.0034361</math>: <math display="block">\operatorname{erf}(x) \approx \frac{2}{\sqrt\pi}\sgn(x) \cdot \sqrt{1-e^{-x^2}} \left(\frac{\sqrt{\pi}}{2} + \frac{31}{200}e^{-x^2}-\frac{341}{8000} e^{-2x^2}\right). </math>

=== Inverse functions === thumb|300px|Inverse error function

Given a complex number <math>z</math>, there is not a ''unique'' complex number <math>w</math> satisfying <math>\operatorname{erf}(w)=z</math>, so a true inverse function would be multivalued. However, for <math>-1<x<1</math>, there is a unique ''real'' number denoted <math>\operatorname{erf}^{-1}(x)</math> satisfying :<math>\operatorname{erf}\left(\operatorname{erf}^{-1}(x)\right) =x.</math>

The '''inverse error function''' is usually defined with domain <math>(-1,1)</math>, and it is restricted to this domain in many computer algebra systems. However, it can be extended to the disk <math>|z|<1</math> of the complex plane, using the Maclaurin series<ref>{{cite arXiv |last1=Dominici |first1=Diego |title=Asymptotic analysis of the derivatives of the inverse error function |eprint = math/0607230 |year = 2006}}</ref> <math display="block">\operatorname{erf}^{-1}(z)=\sum_{k=0}^\infty\frac{c_k}{2k+1}\left (\frac{\sqrt\pi}{2}z\right )^{2k+1},</math> where <math>c_0=1</math> and <math display="block">\begin{align} c_k & =\sum_{m=0}^{k-1}\frac{c_m c_{k-1-m}}{(m+1)(2m+1)} \\[1ex] &= \left\{1,1,\frac{7}{6},\frac{127}{90},\frac{4369}{2520},\frac{34807}{16200},\ldots\right\}. \end{align}</math>

So we have the series expansion (common factors have been canceled from numerators and denominators): :<math>\operatorname{erf}^{-1}(z) = \frac{\sqrt{\pi}}{2} \left (z + \frac{\pi}{12}z^3 + \frac{7\pi^2}{480}z^5 + \frac{127\pi^3}{40320}z^7 + \frac{4369\pi^4}{5806080} z^9 + \frac{34807\pi^5}{182476800}z^{11} + \cdots\right ).</math> (After cancellation the numerator and denominator values in {{oeis|A092676}} and {{oeis|A092677}} respectively; without cancellation the numerator terms are values in {{oeis|A002067}}.) The error function's value at <math>\pm\infty</math> is equal to <math>\pm 1</math>.

For <math>|z|<1</math>, we have <math>\operatorname{erf}(\operatorname{erf}^{-1}(z))=z</math>.

The '''inverse complementary error function''' is defined as <math display="block">\operatorname{erfc}^{-1}(1-z) = \operatorname{erf}^{-1}(z).</math> For real <math>x</math>, there is a unique ''real'' number <math>\operatorname{erfi}^{-1}(x)</math> satisfying <math>\operatorname{erfi}(\operatorname{erfi}^{-1}(x))=x</math>. The '''inverse imaginary error function''' is defined as <math>\operatorname{erfi}^{-1}(x)</math>.<ref>{{cite arXiv |last1=Bergsma |first1=Wicher |title=On a new correlation coefficient, its orthogonal decomposition and associated tests of independence |eprint = math/0604627 |year = 2006}}</ref>

For any real <math>x</math>, Newton's method can be used to compute <math>\operatorname{erfi}^{-1}(x)</math>, and for <math>-1 \leq x \leq 1</math>, the following Maclaurin series converges: :<math>\operatorname{erfi}^{-1}(z) =\sum_{k=0}^\infty\frac{(-1)^k c_k}{2k+1} \left( \frac{\sqrt\pi}{2} z \right)^{2k+1},</math> where <math>c_k</math> is defined as above.

=== Asymptotic expansion === A useful asymptotic expansion of the complementary error function (and therefore also of the error function) for large real <math>x</math> is <math display="block">\begin{align} \operatorname{erfc}(x) &= \frac{e^{-x^2}}{x\sqrt{\pi}}\left(1 + \sum_{n=1}^\infty (-1)^n \frac{1\cdot3\cdot5\cdots(2n - 1)}{\left(2x^2\right)^n}\right) \\[6pt] &= \frac{e^{-x^2}}{x\sqrt{\pi}}\sum_{n=0}^\infty (-1)^n \frac{(2n - 1)!!}{\left(2x^2\right)^n}, \end{align}</math> where <math>(2n-1)!!</math> is the double factorial of <math>2n-1</math>, i.e. the product of all odd numbers up to <math>2n-1</math>. This series diverges for every finite <math>x</math>, and its meaning as asymptotic expansion is that for any integer <math>N\geq 1</math> one has :<math>\operatorname{erfc}(x) = \frac{e^{-x^2}}{x\sqrt{\pi}}\sum_{n=0}^{N-1} (-1)^n \frac{(2n - 1)!!}{\left(2x^2\right)^n} + R_N(x),</math> where the remainder is :<math>R_N(x) := \frac{(-1)^N \, (2 N - 1)!!}{\sqrt{\pi} \cdot 2^{N - 1}} \int_x^\infty t^{-2N}e^{-t^2}\, dt,</math> which follows easily by induction, writing :<math>e^{-t^2} = -\frac{1}{2 t} \, \frac{d}{dt} e^{-t^2}</math> and integrating by parts. The asymptotic behavior of the remainder term is :<math>R_N(x) = O\Big(x^{- (1 + 2N)} e^{-x^2}\Big)</math> as <math>x\to\infty</math>. This can be found by :<math>R_N(x) \propto \int_x^\infty t^{-2N}e^{-t^2}\, dt = e^{-x^2} \int_0^\infty (t+x)^{-2N}e^{-t^2-2tx}\,dt\leq e^{-x^2} \int_0^\infty x^{-2N} e^{-2tx}\,dt \propto x^{-(1+2N)}e^{-x^2}.</math> For large enough values of <math>x</math>, only the first few terms of this asymptotic expansion are needed to obtain a good approximation of <math>\operatorname{erfc}(x)</math> (while for not too large values of <math>x</math>, the above Taylor expansion at 0 provides a very fast convergence).

=== Continued fraction expansion === A continued fraction expansion of the complementary error function was found by Laplace:{{sfnp|Laplace|1805|loc=livre X|p=255}}{{sfnp|Cuyt|Petersen|Verdonk|Waadeland|2008}} <math display="block">\operatorname{erfc}(z) = \frac{z}{\sqrt\pi}e^{-z^2} \cfrac{1}{z^2+ \cfrac{a_1}{1+\cfrac{a_2}{z^2+ \cfrac{a_3}{1+\dotsb}}}}</math> where <math>a_m = \frac{m}{2}</math>.

=== Factorial series === The inverse factorial series :<math>\begin{align} \operatorname{erfc}(z) &= \frac{e^{-z^2}}{\sqrt{\pi}\,z} \sum_{n=0}^\infty \frac{\left(-1\right)^n Q_n}{{\left(z^2+1\right)}^{\bar{n}}} \\[1ex] &= \frac{e^{-z^2}}{\sqrt{\pi}\,z} \left[1 -\frac{1}{2}\frac{1}{(z^2+1)} + \frac{1}{4}\frac{1}{\left(z^2+1\right) \left(z^2+2\right)} - \cdots \right] \end{align}</math> converges for <math>\operatorname{Re}(z^2)>0</math>. Here :<math>\begin{align} Q_n &= \frac{1}{\Gamma{\left(\frac{1}{2}\right)}} \int_0^\infty \tau(\tau-1)\cdots(\tau-n+1)\tau^{-\frac{1}{2}} e^{-\tau} \,d\tau \\[1ex] &= \sum_{k=0}^n \frac{s(n,k)}{2^{\bar{k}}}, \end{align}</math> where <math>z^{\bar{n}}</math> denotes the rising factorial, and <math>s(n,k)</math> denotes a signed Stirling number of the first kind.<ref>{{cite journal|last=Schlömilch|first=Oskar Xavier | author-link=Oscar Schlömilch|year=1859|title=Ueber facultätenreihen|url=https://archive.org/details/zeitschriftfrma09runggoog | journal=Zeitschrift für Mathematik und Physik | language=de | volume=4 | pages=390–415}}</ref>{{sfnp|Nielson|1906|p=283|loc=eq. 3}} The Taylor series can be written in terms of the double factorial: :<math>\operatorname{erf}(z) = \frac{2}{\sqrt\pi} \sum_{n=0}^\infty \frac{(-2)^n(2n-1)!!}{(2n+1)!}z^{2n+1}.</math>

== Bounds and numerical approximations ==

===Approximation with elementary functions===

Abramowitz and Stegun give several approximations of varying accuracy (equations 7.1.25–28). This allows one to choose the fastest approximation suitable for a given application. In order of increasing accuracy, they are: <math display="block">\operatorname{erf}(x) \approx 1 - \frac{1}{\left(1 + a_1x + a_2x^2 + a_3x^3 + a_4x^4\right)^4}, \qquad x \geq 0</math> (maximum error: {{val|5e-4}}) {{pb}} where {{math|''a''<sub>1</sub> {{=}} 0.278393}}, {{math|''a''<sub>2</sub> {{=}} 0.230389}}, {{math|''a''<sub>3</sub> {{=}} 0.000972}}, {{math|''a''<sub>4</sub> {{=}} 0.078108}}

<math display="block">\operatorname{erf}(x) \approx 1 - \left(a_1t + a_2t^2 + a_3t^3\right)e^{-x^2},\quad t=\frac{1}{1 + px}, \qquad x \geq 0</math> (maximum error: {{val|2.5e-5}}) {{pb}} where {{math|''p'' {{=}} 0.47047}}, {{math|''a''<sub>1</sub> {{=}} 0.3480242}}, {{math|''a''<sub>2</sub> {{=}} −0.0958798}}, {{math|''a''<sub>3</sub> {{=}} 0.7478556}}

<math display="block">\operatorname{erf}(x) \approx 1 - \frac{1}{\left(1 + a_1x + a_2x^2 + \cdots + a_6x^6\right)^{16}}, \qquad x \geq 0</math> (maximum error: {{val|3e-7}}) {{pb}} where {{math|''a''<sub>1</sub> {{=}} 0.0705230784}}, {{math|''a''<sub>2</sub> {{=}} 0.0422820123}}, {{math|''a''<sub>3</sub> {{=}} 0.0092705272}}, {{math|''a''<sub>4</sub> {{=}} 0.0001520143}}, {{math|''a''<sub>5</sub> {{=}} 0.0002765672}}, {{math|''a''<sub>6</sub> {{=}} 0.0000430638}}

<math display="block">\operatorname{erf}(x) \approx 1 - \left(a_1t + a_2t^2 + \cdots + a_5t^5\right)e^{-x^2},\quad t = \frac{1}{1 + px}</math> (maximum error: {{val|1.5e-7}}) {{pb}} where {{math|''p'' {{=}} 0.3275911}}, {{math|''a''<sub>1</sub> {{=}} 0.254829592}}, {{math|''a''<sub>2</sub> {{=}} −0.284496736}}, {{math|''a''<sub>3</sub> {{=}} 1.421413741}}, {{math|''a''<sub>4</sub> {{=}} −1.453152027}}, {{math|''a''<sub>5</sub> {{=}} 1.061405429}} {{pb}}

One can improve the accuracy of the A&S approximation by extending it with three extra parameters, <math display="block">\operatorname{erf}(x) \approx 1 - \left(a_1t + a_2t^2 + \cdots + a_5t^5+a_6t^6+a_7t^7\right)e^{-x^2},\quad t = \frac{1}{1 + p_1x+p_2x^2}</math> where p1 = 0.406742016006509, p2 = 0.0072279182302319, a1 = 0.316879890481381, a2 = -0.138329314150635, a3 = 1.08680830347054, a4 = -1.11694155120396, a5 = 1.20644903073232, a6 = -0.393127715207728, a7 = 0.0382613542530727. The maximum error of this approximation is about {{val|2e-9}}. The parameters are obtained by fitting the extended approximation to the accurate values of the error function using the following Python code. {{collapse top|title=Python code to fit extended A&S approximation|collapsed=yes}} <syntaxhighlight lang="python"> import numpy as np from math import erf, exp, sqrt from scipy.optimize import least_squares

# # Extended A&S approximation: # erf(x) ≈ 1 − t * exp(−x^2) * (a1 + a2*t + a3*t^2 + ... + a7*t^6) # where now # t = 1 / (1 + p1*x + p2*x^2) # We fit parameters p1, p2, a1..a7 over x in [0, 10]. #

def approx_erf(params, x): p1 = params[0] p2 = params[1] a = params[2:]

t = 1.0 / (1.0 + p1 * x + p2 * x * x)

poly = np.zeros_like(x) tt = np.ones_like(x) # t^0

# polynomial: a1*t^0 + a2*t^1 + ... + a7*t^6 for ak in a: poly += ak * tt tt *= t

return 1.0 - t * np.exp(-x * x) * poly

def residuals(params, xs, ys): return approx_erf(params, xs) - ys

# # Prepare data for fitting #

N = 300 xmin = 0 xmax = 10 xs = np.linspace(xmin, xmax, N) ys = np.array([erf(x) for x in xs], dtype=float)

# # Initial guess for parameters # Start from original A&S values and extend them conservatively #

p1_0 = 0.3275911 # original A&S p p2_0 = 0.0 # new denominator parameter

# original A&S 5 coefficients, add two => 7 in total a0 = [ 0.254829592, -0.284496736, 1.421413741, -1.453152027, 1.061405429, 0.0, # new term 0.0, # another new term ]

params0 = np.array([p1_0, p2_0] + a0, dtype=float)

# # Fit using nonlinear least squares (Levenberg–Marquardt) #

result = least_squares( residuals, params0, args=(xs, ys), xtol=1e-14, ftol=1e-14, gtol=1e-14, max_nfev=5000 )

params = result.x p1_fit = params[0] p2_fit = params[1] a_fit = params[2:]

# # Print fitted parameters #

print("\nFitted parameters:") print(f"p1 = {p1_fit:.15g},") print(f"p2 = {p2_fit:.15g},") for i, ai in enumerate(a_fit, 1): print(f"a{i} = {ai:.15g},")

# # Evaluate approximation error #

approx_vals = approx_erf(params, xs) abs_err = np.abs(approx_vals - ys)

print(f"\nMaximum absolute error on [{xmin},{xmax}]:", np.max(abs_err)) print("RMS error:", np.sqrt(np.mean(abs_err**2))) print("Done.") </syntaxhighlight> {{collapse bottom}}

All of these approximations are valid for {{math|''x'' ≥ 0}}. To use these approximations for negative {{mvar|x}}, use the fact that {{math|erf(''x'')}} is an odd function, so {{math|erf(''x'') {{=}} −erf(−''x'')}}.

Exponential bounds and a pure exponential approximation for the complementary error function are given by<ref>{{cite journal|url= http://campus.unibo.it/85943/1/mcddmsTranWIR2003.pdf|last1= Chiani|first1= M.|last2= Dardari|first2= D.|last3= Simon|first3= M.K.|date= 2003|title= New Exponential Bounds and Approximations for the Computation of Error Probability in Fading Channels|journal= IEEE Transactions on Wireless Communications|volume= 2|number= 4|pages= 840–845|doi= 10.1109/TWC.2003.814350|bibcode= 2003ITWC....2..840C|citeseerx= 10.1.1.190.6761|archive-date= 20 October 2014|access-date= 20 October 2014|archive-url= https://web.archive.org/web/20141020083523/http://campus.unibo.it/85943/1/mcddmsTranWIR2003.pdf|url-status= dead}}</ref> <math display="block">\begin{align} \operatorname{erfc}(x) &\leq \frac{1}{2}e^{-2 x^2} + \frac{1}{2}e^{- x^2} \leq e^{-x^2}, &&x > 0 \\[1.5ex] \operatorname{erfc}(x) &\approx \frac{1}{6}e^{-x^2} + \frac{1}{2}e^{-\frac{4}{3} x^2}, &&x > 0 . \end{align}</math>

The above have been generalized to sums of {{mvar|N}} exponentials<ref>{{cite journal |doi=10.1109/TCOMM.2020.3006902 |title=Global minimax approximations and bounds for the Gaussian Q-function by sums of exponentials|journal=IEEE Transactions on Communications |year=2020 |last1=Tanash |first1=I.M. |last2=Riihonen |first2=T. |volume=68 |issue=10 |pages=6514–6524 |arxiv=2007.06939 |bibcode=2020ITCom..68.6514T |s2cid=220514754}}</ref> with increasing accuracy in terms of {{mvar|N}} so that {{math|erfc(''x'')}} can be accurately approximated or bounded by {{math|2''Q̃''({{sqrt|2}}''x'')}}, where <math display="block">\tilde{Q}(x) = \sum_{n=1}^N a_n e^{-b_n x^2}.</math> In particular, there is a systematic methodology to solve the numerical coefficients {{math|{(''a<sub>n</sub>'',''b<sub>n</sub>'')}{{su|b=''n'' {{=}} 1|p=''N''}}}} that yield a minimax approximation or bound for the closely related Q-function: {{math|''Q''(''x'') ≈ ''Q̃''(''x'')}}, {{math|''Q''(''x'') ≤ ''Q̃''(''x'')}}, or {{math|''Q''(''x'') ≥ ''Q̃''(''x'')}} for {{math|''x'' ≥ 0}}. The coefficients {{math|{(''a<sub>n</sub>'',''b<sub>n</sub>'')}{{su|b=''n'' {{=}} 1|p=''N''}}}} for many variations of the exponential approximations and bounds up to {{math|''N'' {{=}} 25}} have been released to open access as a comprehensive dataset.<ref>{{cite journal | doi=10.5281/zenodo.4112978 | title=Coefficients for Global Minimax Approximations and Bounds for the Gaussian Q-Function by Sums of Exponentials [Data set] | url=https://zenodo.org/record/4112978 | website=Zenodo | year=2020 | last1=Tanash | first1=I.M. | last2=Riihonen | first2=T.}}</ref>

A tight approximation of the complementary error function for {{math|''x'' ∈ [0,∞)}} is given by Karagiannidis & Lioumpas (2007),<ref>{{cite journal|last1=Karagiannidis |first1=G. K. |last2=Lioumpas |first2=A. S. |url=http://users.auth.gr/users/9/3/028239/public_html/pdf/Q_Approxim.pdf |title=An improved approximation for the Gaussian Q-function |date=2007 |journal=IEEE Communications Letters |volume=11 |issue=8 |pages=644–646|doi=10.1109/LCOMM.2007.070470 |s2cid=4043576 }}</ref> who showed for the appropriate choice of parameters {{math|{''A'',''B''}<nowiki/>}} that <math display="block">\operatorname{erfc}(x) \approx \frac{\left(1 - e^{-Ax}\right)e^{-x^2}}{B\sqrt{\pi} x}.</math> They determined {{math|{''A'',''B''} {{=}} {1.98,1.135}<nowiki/>}}, which gave a good approximation{{which?|date=January 2026}} for all {{math|''x'' ≥ 0}}. Alternative coefficients are also available for tailoring accuracy for a specific application or transforming the expression into a tight bound.<ref>{{cite journal |doi=10.1109/LCOMM.2021.3052257|title=Improved coefficients for the Karagiannidis–Lioumpas approximations and bounds to the Gaussian Q-function|journal=IEEE Communications Letters | year=2021 | last1=Tanash | first1=I.M.|last2=Riihonen|first2=T.|volume=25|issue=5|pages=1468–1471|arxiv=2101.07631|bibcode=2021IComL..25.1468T |s2cid=231639206}}</ref>

A single-term lower bound is<ref>{{cite journal |last1=Chang |first1=Seok-Ho |last2=Cosman |first2=Pamela C. |author-link2 = Pamela Cosman |last3=Milstein |first3=Laurence B. |date=November 2011 |title=Chernoff-Type Bounds for the Gaussian Error Function |url=http://escholarship.org/uc/item/6hw4v7pg |journal=IEEE Transactions on Communications |volume=59 |issue=11 |pages=2939–2944 |doi=10.1109/TCOMM.2011.072011.100049 |bibcode=2011ITCom..59.2939C |s2cid=13636638}}</ref> <math display="block" display="block">\operatorname{erfc}(x) \geq \sqrt{\frac{2 e}{\pi}} \frac{\sqrt{\beta - 1}}{\beta} e^{- \beta x^2}, \qquad x \ge 0,\quad \beta > 1,</math> where the parameter {{mvar|β}} can be picked to minimize error on the desired interval of approximation.

Another approximation is given by Sergei Winitzki using his "global Padé approximations":<ref>{{cite book |last=Winitzki |first=Sergei |title=Computational Science and Its Applications – ICCSA 2003 |date=2003 |volume=2667 |chapter=Uniform approximations for transcendental functions |publisher=Springer, Berlin |pages=[https://archive.org/details/computationalsci0000iccs_a2w6/page/780 780–789] |isbn=978-3-540-40155-1 |doi=10.1007/3-540-44839-X_82 |chapter-url-access=registration |chapter-url=https://archive.org/details/computationalsci0000iccs_a2w6 |series=Lecture Notes in Computer Science }}</ref><ref>{{cite journal|last1=Zeng |first1=Caibin |last2=Chen |first2=Yang Cuan |title=Global Padé approximations of the generalized Mittag-Leffler function and its inverse |journal=Fractional Calculus and Applied Analysis |date=2015 |volume=18 |issue=6 | pages=1492–1506 |doi= 10.1515/fca-2015-0086 |quote=Indeed, Winitzki [32] provided the so-called global Padé approximation | arxiv=1310.5592 |s2cid=118148950 }}</ref>{{rp|2–3}} <math display="block">\operatorname{erf}(x) \approx \sgn x \cdot \sqrt{1 - \exp\left(-x^2\frac{\frac{4}{\pi} + ax^2}{1 + ax^2}\right)}</math> where <math display="block">a = \frac{8(\pi - 3)}{3\pi(4 - \pi)} \approx 0.140012.</math> This is designed to be very accurate in the neighborhoods of 0 and infinity, and the ''relative'' error is less than 0.00035 for all real {{mvar|x}}. Using the alternate value {{math|''a'' ≈ 0.147}} reduces the maximum relative error to about 0.00013.<ref>{{Cite web <!-- Deny Citation Bot--> |url=https://www.academia.edu/9730974/A_handy_approximation_for_the_error_function_and_its_inverse |last=Winitzki |first=Sergei |date=6 February 2008 |title=A handy approximation for the error function and its inverse }}</ref> {{pb}}

The extended "global Pade" approximation, <math display="block">\operatorname{erf}(x) \approx \sgn x \cdot \sqrt{1 - \exp\left(-x^2 \frac{ 4+0.880877880079853x^2+0.144026670907584x^4+0.0077581300270021x^6 }{ \pi+0.786235558186528x^2+0.128368576906837x^4+0.00773380006014367x^6} \right)}\,,</math> provides a maximum error of about {{val|2e-9}}, as demonstrated by the following Python script. {{collapse top|title=Python script to fit extended "global Pade" approximation|collapsed=yes}} <syntaxhighlight lang="python"> import numpy,math from scipy.optimize import least_squares

# approximation to erf(x)

def approx_erf(p,x): frac=(4+p[0]*x**2+p[1]*x**4+p[2]*x**6)/( math.pi+p[3]*x**2+p[4]*x**4+p[5]*x**6) return numpy.sign(x)*numpy.sqrt( 1-numpy.exp(-x*x*frac))

def residuals(params, xs, ys): return approx_erf(params, xs) - ys

# data for fitting

N = 200 xmin = 0 xmax = 9 xs = numpy.linspace(xmin, xmax, N) ys = numpy.array([math.erf(x) for x in xs], dtype=float) params0 = numpy.array([0.9,0.1,0.008,0.8,0.1,0.008], dtype=float)

# fitting

result = least_squares( residuals, params0, args=(xs, ys), xtol=1e-14, ftol=1e-14, gtol=1e-14, max_nfev=5000 ) params = result.x

# print out fitted parameters

print("\nFitted parameters:") for i, pi in enumerate(params, 0): print(f"p{i} = {pi:.15g},")

# evaluate approximation error

approx_vals = approx_erf(params, xs) abs_err = numpy.abs(approx_vals - ys)

print(f"\nMaximum absolute error on [{xmin},{xmax}]:", numpy.max(abs_err)) print("RMS error:", numpy.sqrt(numpy.mean(abs_err**2))) print("Done.") </syntaxhighlight> {{collapse bottom}}

Winitzki's approximation can be inverted to obtain an approximation for the inverse error function: <math display="block">\operatorname{erf}^{-1}(x) \approx \sgn x \cdot \sqrt{\sqrt{\left(\frac{2}{\pi a} + \frac{\ln\left(1 - x^2\right)}{2}\right)^2 - \frac{\ln\left(1 - x^2\right)}{a}} -\left(\frac{2}{\pi a} + \frac{\ln\left(1 - x^2\right)}{2}\right)}.</math>

An approximation with a maximal error of {{val|1.2e-7}} for any real argument is:<ref>{{cite book | last = Press | first = William H. | title = Numerical Recipes in Fortran 77: The Art of Scientific Computing | isbn = 0-521-43064-X | year = 1992 | page = 214 | publisher = Cambridge University Press }}</ref> <math display="block">\begin{align} \operatorname{erf}(x) &= \begin{cases} 1-\tau, & x\ge 0\\ \tau-1, & x < 0 \end{cases}\\ \tau &= t\cdot\exp\left(-x^2-1.26551223+1.00002368 t+0.37409196 t^2+0.09678418 t^3 -0.18628806 t^4\right.\\ &\left. \qquad\qquad\qquad +0.27886807 t^5-1.13520398 t^6+1.48851587 t^7 -0.82215223 t^8+0.17087277 t^9\right)\\ t &= \frac{1}{1 + \frac{1}{2}|x|} \end{align}</math>

An approximation of <math>\operatorname{erfc}</math> with a maximum relative error less than <math>2^{-53}</math> <math>\left(\approx 1.1 \times 10^{-16}\right)</math> in absolute value is:<ref>{{Cite journal | last = Dia | first = Yaya D. |date = 2023 | title = Approximate Incomplete Integrals, Application to Complementary Error Function | url = https://www.ssrn.com/abstract=4487559 | journal = SSRN Electronic Journal | language = en | doi = 10.2139/ssrn.4487559 | issn = 1556-5068}}</ref> for {{nowrap|<math>x\ge 0</math>,}} <math display="block">\begin{aligned} \operatorname{erfc} \left(x\right) & = \left(\frac{0.56418958354775629}{x+2.06955023132914151}\right) \left(\frac{x^2+2.71078540045147805 x+5.80755613130301624}{x^2+3.47954057099518960 x+12.06166887286239555}\right) \\ & \left(\frac{x^2+3.47469513777439592 x+12.07402036406381411}{x^2+3.72068443960225092 x+8.44319781003968454}\right) \left(\frac{x^2+4.00561509202259545 x+9.30596659485887898}{x^2+3.90225704029924078 x+6.36161630953880464}\right) \\ & \left(\frac{x^2+5.16722705817812584 x+9.12661617673673262}{x^2+4.03296893109262491 x+5.13578530585681539}\right) \left(\frac{x^2+5.95908795446633271 x+9.19435612886969243}{x^2+4.11240942957450885 x+4.48640329523408675}\right) e^{-x^2} \\ \end{aligned}</math> and for <math>x<0</math> <math display="block">\operatorname{erfc} \left(x\right) = 2 - \operatorname{erfc} \left(-x\right)</math>

A simple approximation for real-valued arguments can be done through hyperbolic functions: <math display="block">\operatorname{erf} \left(x\right) \approx z(x) = \tanh\left(\frac{2}{\sqrt{\pi}}\left(x+\frac{11}{123}x^3\right)\right)</math> which keeps the absolute difference {{nowrap|<math>\left|\operatorname{erf} \left(x\right)-z(x)\right| < 0.000358,\, \forall x</math>.}}

Since the error function and the Gaussian Q-function are closely related through the identity <math>\operatorname{erfc}(x) = 2 Q(\sqrt{2} x)</math> or equivalently <math>Q(x) = \frac{1}{2} \operatorname{erfc}\left(\frac{x}{\sqrt{2}}\right)</math>, bounds developed for the Q-function can be adapted to approximate the complementary error function. A pair of tight lower and upper bounds on the Gaussian Q-function for positive arguments <math>x \in [0, \infty)</math> was introduced by Abreu (2012)<ref>{{cite journal |doi=10.1109/TCOMM.2012.080612.110075 |title=Very Simple Tight Bounds on the Q-Function |journal=IEEE Transactions on Communications |volume=60 |issue=9 |pages=2415–2420 |year=2012 |last=Abreu |first=Giuseppe |bibcode=2012ITCom..60.2415A }}</ref> based on a simple algebraic expression with only two exponential terms: <math display="block">\begin{align} x &\geq 0\\ \frac{1}{2} \operatorname{erfc}\left(\frac{x}{\sqrt{2}}\right) &\geq \frac{1}{12} e^{-x^2} + \frac{1}{\sqrt{2\pi} (x + 1)} e^{-x^2 / 2}\\ &\leq \frac{1}{50} e^{-x^2} + \frac{1}{2 (x + 1)} e^{-x^2 / 2}\\ \frac{1}{25} e^{-2x^2} + \frac{1}{x + 1} e^{-x^2} \geq \operatorname{erfc}(x) &\geq \frac{1}{6} e^{-2x^2} + \frac{1}{2\sqrt{2\pi} (x + 1)} e^{-x^2} \end{align}</math>

These bounds stem from a unified form <math display="block">Q_{\mathrm{B}}(x; a, b) = \frac{\exp(-x^2)}{a} + \frac{\exp(-x^2 / 2)}{b (x + 1)},</math> where the parameters <math>a</math> and <math>b</math> are selected to ensure the bounding properties: for the lower bound, <math>a_{\mathrm{L}} = 12</math> and <math>b_{\mathrm{L}} = \sqrt{2\pi}</math>, and for the upper bound, <math>a_{\mathrm{U}} = 50</math> and <math>b_{\mathrm{U}} = 2</math>. These expressions maintain simplicity and tightness, providing a practical trade-off between accuracy and ease of computation. They are particularly valuable in theoretical contexts, such as communication theory over fading channels, where both functions frequently appear. Additionally, the original Q-function bounds can be extended to <math>Q^n(x)</math> for positive integers <math>n</math> via the binomial theorem, suggesting potential adaptability for powers of <math>\operatorname{erfc}(x)</math>, though this is less commonly required in error function applications.

===Table of values=== {{further|Interval estimation|Coverage probability|68–95–99.7 rule}} {| class="wikitable" style="text-align:left;margin-left:24pt" ! {{math|''x''}}!! {{math|erf(''x'')}} !! {{math|1 − erf(''x'')}} |- |0 || {{val|0}} || {{val|1}} |- |0.02|| {{val|0.022564575}} || {{val|0.977435425}} |- |0.04|| {{val|0.045111106}} || {{val|0.954888894}} |- |0.06|| {{val|0.067621594}} || {{val|0.932378406}} |- |0.08|| {{val|0.090078126}} || {{val|0.909921874}} |- |0.1 || {{val|0.112462916}} || {{val|0.887537084}} |- |0.2 || {{val|0.222702589}} || {{val|0.777297411}} |- |0.3 || {{val|0.328626759}} || {{val|0.671373241}} |- |0.4 || {{val|0.428392355}} || {{val|0.571607645}} |- |0.5 || {{val|0.520499878}} || {{val|0.479500122}} |- |0.6 || {{val|0.603856091}} || {{val|0.396143909}} |- |0.7 || {{val|0.677801194}} || {{val|0.322198806}} |- |0.8 || {{val|0.742100965}} || {{val|0.257899035}} |- |0.9 || {{val|0.796908212}} || {{val|0.203091788}} |- |1 || {{val|0.842700793}} || {{val|0.157299207}} |- |1.1 || {{val|0.880205070}} || {{val|0.119794930}} |- |1.2 || {{val|0.910313978}} || {{val|0.089686022}} |- |1.3 || {{val|0.934007945}} || {{val|0.065992055}} |- |1.4 || {{val|0.952285120}} || {{val|0.047714880}} |- |1.5 || {{val|0.966105146}} || {{val|0.033894854}} |- |1.6 || {{val|0.976348383}} || {{val|0.023651617}} |- |1.7 || {{val|0.983790459}} || {{val|0.016209541}} |- |1.8 || {{val|0.989090502}} || {{val|0.010909498}} |- |1.9 || {{val|0.992790429}} || {{val|0.007209571}} |- |2 || {{val|0.995322265}} || {{val|0.004677735}} |- |2.1 || {{val|0.997020533}} || {{val|0.002979467}} |- |2.2 || {{val|0.998137154}} || {{val|0.001862846}} |- |2.3 || {{val|0.998856823}} || {{val|0.001143177}} |- |2.4 || {{val|0.999311486}} || {{val|0.000688514}} |- |2.5 || {{val|0.999593048}} || {{val|0.000406952}} |- |3 || {{val|0.999977910}} || {{val|0.000022090}} |- |3.5 || {{val|0.999999257}} || {{val|0.000000743}} |}

==Related functions==

===Complementary error function=== thumb|Plot of the error function erf(''z'') in the complex plane from {{nobr|−2 − 2''i''}} to {{nobr|2 + 2''i''}} The '''complementary error function''', denoted {{math|erfc}}, is defined as <math display="block">\begin{align} \operatorname{erfc}(x) &= 1 - \operatorname{erf}(x) \\ &= \frac{2}{\sqrt\pi} \int_x^\infty e^{-t^2}\,dt \\ &= e^{-x^2} \operatorname{erfcx}(x), \end{align}</math> which also defines {{math|erfcx}}, the '''scaled complementary error function'''<ref name=Cody93>{{Citation |first=W. J. |last=Cody |title=Algorithm 715: SPECFUN—A portable FORTRAN package of special function routines and test drivers |url=http://www.stat.wisc.edu/courses/st771-newton/papers/p22-cody.pdf |journal=ACM Trans. Math. Softw. |volume=19 |issue=1 |pages=22–32 |date=March 1993 |doi=10.1145/151271.151273|citeseerx=10.1.1.643.4394 |s2cid=5621105 }}</ref> (which can be used instead of {{math|erfc}} to avoid arithmetic underflow<ref name=Cody93/><ref name=Zaghloul07>{{Citation |first=M. R. |last=Zaghloul |title=On the calculation of the Voigt line profile: a single proper integral with a damped sine integrand | journal = Monthly Notices of the Royal Astronomical Society |volume=375 |issue=3 |pages=1043–1048 |date=1 March 2007 |doi=10.1111/j.1365-2966.2006.11377.x|bibcode=2007MNRAS.375.1043Z |doi-access=free }}</ref>). Another form of {{math|erfc ''x''}} for {{math|''x'' ≥ 0}} is known as Craig's formula, after its discoverer:<ref>John W. Craig, [http://wsl.stanford.edu/~ee359/craig.pdf ''A new, simple and exact result for calculating the probability of error for two-dimensional signal constellations''] {{Webarchive|url=https://web.archive.org/web/20120403231129/http://wsl.stanford.edu/~ee359/craig.pdf |date=3 April 2012 }}, Proceedings of the 1991 IEEE Military Communication Conference, vol. 2, pp. 571–575.</ref> <math display="block"> \operatorname{erfc} (x \mid x\ge 0) = \frac{2}{\pi} \int_0^\frac{\pi}{2} \exp\left(-\frac{x^2}{\sin^2 \theta}\right) \,d\theta. </math> This expression is valid only for positive values of {{mvar|x}}, but can be used in conjunction with {{math|erfc(''x'') {{=}} 2 − erfc(−''x'')}} to obtain {{math|erfc(''x'')}} for negative values. This form is advantageous in that the range of integration is fixed and finite. An extension of this expression for the {{math|erfc}} of the sum of two non-negative variables is<ref>{{cite journal |doi=10.1109/TCOMM.2020.2986209 |title=A Novel Extension to Craig's Q-Function Formula and Its Application in Dual-Branch EGC Performance Analysis|journal=IEEE Transactions on Communications |volume=68 |issue=7 |pages=4117–4125 |year=2020 |last1=Behnad |first1=Aydin |bibcode=2020ITCom..68.4117B |s2cid=216500014}}</ref> <math display="block"> \operatorname{erfc}(x + y \mid x, y \ge 0) = \frac{2}{\pi} \int_0^\frac{\pi}{2} \exp\left(-\frac{x^2}{\sin^2 \theta} - \frac{y^2}{\cos^2 \theta}\right) \,d\theta. </math>

===Imaginary error function=== thumb|Plot of the imaginary error function erfi(''z'') in the complex plane from {{nobr|−2 − 2''i''}} to {{nobr|2 + 2''i''}} The '''imaginary error function''', denoted {{math|erfi}}, is defined as <math display="block">\begin{align} \operatorname{erfi}(x) &= -i\operatorname{erf}(ix) \\ &= \frac{2}{\sqrt\pi} \int_0^x e^{t^2}\,dt \\ &= \frac{2}{\sqrt\pi} e^{x^2} D(x), \end{align}</math> where {{math|''D''(''x'')}} is the Dawson function (which can be used instead of {{math|erfi}} to avoid arithmetic overflow<ref name=Cody93/>).

Despite the name "imaginary error function", {{math|erfi(''x'')}} is real when {{mvar|x}} is real.

When the error function is evaluated for arbitrary complex arguments {{mvar|z}}, the resulting '''complex error function''' is usually discussed in scaled form as the Faddeeva function: <math display="block"> w(z) = e^{-z^2} \operatorname{erfc}(-iz) = \operatorname{erfcx}(-iz). </math>

===Cumulative distribution function=== thumb|The normal cumulative distribution function plotted in the complex plane The error function is essentially identical to the standard normal cumulative distribution function, denoted {{math|Φ}}, also named {{math|norm(''x'')}} by some software languages{{Citation needed|date=July 2020}}, as they differ only by scaling and translation. Indeed, <math display="block">\begin{align} \Phi(x) &= \frac{1}{\sqrt{2\pi}} \int_{-\infty}^x e^\tfrac{-t^2}{2}\,dt\\[6pt] &= \frac{1}{2} \left(1+\operatorname{erf}\left(\frac{x}{\sqrt 2}\right)\right)\\[6pt] &= \frac{1}{2} \operatorname{erfc}\left(-\frac{x}{\sqrt 2}\right) \end{align}</math> or rearranged for {{math|erf}} and {{math|erfc}}: <math display="block">\begin{align} \operatorname{erf}(x) &= 2 \Phi{\left ( x \sqrt{2} \right )} - 1 \\[6pt] \operatorname{erfc}(x) &= 2 \Phi{\left ( - x \sqrt{2} \right )} \\ &= 2\left(1 - \Phi{\left ( x \sqrt{2} \right)}\right). \end{align}</math>

Consequently, the error function is also closely related to the Q-function, which is the tail probability of the standard normal distribution. The Q-function can be expressed in terms of the error function as <math display="block">\begin{align} Q(x) &= \frac{1}{2} - \frac{1}{2} \operatorname{erf}\left(\frac{x}{\sqrt 2}\right)\\ &= \frac{1}{2}\operatorname{erfc}\left(\frac{x}{\sqrt 2}\right). \end{align}</math>

The inverse of {{math|Φ}} is known as the normal quantile function, or probit function and may be expressed in terms of the inverse error function as <math display="block">\operatorname{probit}(p) = \Phi^{-1}(p) = \sqrt{2}\operatorname{erf}^{-1}(2p-1) = -\sqrt{2}\operatorname{erfc}^{-1}(2p).</math>

The standard normal cdf is used more often in probability and statistics, and the error function is used more often in other branches of mathematics.

The error function is a special case of the Mittag-Leffler function, and can also be expressed as a confluent hypergeometric function (Kummer's function): <math display="block">\operatorname{erf}(x) = \frac{2x}{\sqrt\pi} M\left(\tfrac{1}{2},\tfrac{3}{2},-x^2\right).</math>

It has a simple expression in terms of the Fresnel integral.{{Elucidate|date=May 2012}}

In terms of the regularized gamma function {{mvar|P}} and the incomplete gamma function, <math display="block">\operatorname{erf}(x) = \sgn(x) \cdot P\left(\tfrac{1}{2}, x^2\right) = \frac{\sgn(x)}{\sqrt\pi} \gamma{\left(\tfrac{1}{2}, x^2\right)}.</math>{{math|sgn(''x'')}} is the sign function.

===Iterated integrals of the complementary error function=== The iterated integrals of the complementary error function are defined by<ref>{{cite book | last1 = Carslaw | first1 = H. S. |author1-link = Horatio Scott Carslaw | last2 = Jaeger | first2 = J. C.| author2-link = John Conrad Jaeger | year = 1959 | title = Conduction of Heat in Solids | edition = 2nd | publisher = Oxford University Press | isbn = 978-0-19-853368-9 | page = 484}}</ref> <math display="block">\begin{align} i^n\!\operatorname{erfc}(z) &= \int_z^\infty i^{n-1}\!\operatorname{erfc}(\zeta)\,d\zeta \\[6pt] i^0\!\operatorname{erfc}(z) &= \operatorname{erfc}(z) \\ i^1\!\operatorname{erfc}(z) &= \operatorname{ierfc}(z) = \frac{1}{\sqrt\pi} e^{-z^2} - z \operatorname{erfc}(z) \\ i^2\!\operatorname{erfc}(z) &= \tfrac{1}{4} \left( \operatorname{erfc}(z) -2 z \operatorname{ierfc}(z) \right) \\ \end{align}</math>

The general recurrence formula is <math display="block">2 n \cdot i^n\!\operatorname{erfc}(z) = i^{n-2}\!\operatorname{erfc}(z) -2 z \cdot i^{n-1}\!\operatorname{erfc}(z)</math>

They have the power series <math display="block">i^n\!\operatorname{erfc}(z) =\sum_{j=0}^\infty \frac{(-z)^j}{2^{n-j}j! \,\Gamma \left( 1 + \frac{n-j}{2}\right)},</math> from which follow the symmetry properties <math display="block">i^{2m}\!\operatorname{erfc}(-z) =-i^{2m}\!\operatorname{erfc}(z) +\sum_{q=0}^m \frac{z^{2q}}{2^{2(m-q)-1}(2q)! (m-q)!}</math> and <math display="block">i^{2m+1}\!\operatorname{erfc}(-z) =i^{2m+1}\!\operatorname{erfc}(z) +\sum_{q=0}^m \frac{z^{2q+1}}{2^{2(m-q)-1}(2q+1)! (m-q)!}. </math>

==Implementations==

===As real function of a real argument=== * In POSIX-compliant operating systems, the header <code>math.h</code> shall declare and the mathematical library <code>libm</code> shall provide the functions <code>erf</code> and <code>erfc</code> (double precision) as well as their single precision and extended precision counterparts <code>erff</code>, <code>erfl</code> and <code>erfcf</code>, <code>erfcl</code>.<ref>{{cite web | url = https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/math.h.html | access-date = 21 April 2023 | website = opengroup.org | title = math.h - mathematical declarations | year = 2018 | issue = 7}}</ref> * The GNU Scientific Library provides <code>erf</code>, <code>erfc</code>, <code>log(erf)</code>, and scaled error functions.<ref>{{Cite web|url=https://www.gnu.org/software/gsl/doc/html/specfunc.html#error-functions|title = Special Functions – GSL 2.7 documentation}}</ref>

===As complex function of a complex argument===

* <code>[https://jugit.fz-juelich.de/mlz/libcerf libcerf]</code>, numeric C library for complex error functions, provides the complex functions <code>cerf</code>, <code>cerfc</code>, <code>cerfcx</code> and the real functions <code>erfi</code>, <code>erfcx</code> with approximately 13–14 digits precision, based on the Faddeeva function as implemented in the [http://ab-initio.mit.edu/Faddeeva MIT Faddeeva Package]

== Notes == {{Reflist}}

== References == * {{cite book |last=Andrews |first=Larry C. |url=https://books.google.com/books?id=2CAqsF-RebgC&pg=PA110 |title=Special Functions of Mathematics for Engineers |publisher=Oxford University Press |date=1998 |orig-year=1992 |edition=2nd |isbn=978-0-81942616-1}}

* {{cite book |last1=Cuyt |first1=A. |author1-link=Annie Cuyt |last2=Petersen |first2=V. B. |last3=Verdonk |first3=B. |last4=Waadeland |first4=H. |last5=Jones |first5=W. B. |title=Handbook of Continued Fractions for Special Functions |publisher=Springer Dordrecht |year=2008 |isbn=978-1-4020-6948-2}}

* {{cite book |last1=Fischer |first1=Wolfgang |last2=Lieb |first2=Ingo |title=A Course in Complex Analysis |year=2011 |publisher=Vieweg+Teubner |location=Wiesbaden |isbn=978-3-8348-1576-7}}

* {{cite journal |last1=Glaisher |first1=J. W. L. |title=On a class of definite integrals |journal=London, Edinburgh, and Dublin Philosophical Magazine and Journal of Science |date=1871a |volume=42 |pages=294–302 |url=https://books.google.com/books?id=8Po7AQAAMAAJ&pg=RA1-PA294 |issue=280 |doi=10.1080/14786447108640568}}

* {{cite journal |last1=Glaisher |first1=J. W. L. |title=On a class of definite integrals.—Part II |journal=London, Edinburgh, and Dublin Philosophical Magazine and Journal of Science |date=1871b |volume=42 |pages=421–436 |url=https://books.google.com/books?id=yJ1YAAAAcAAJ&pg=PA421 |issue=282 |doi=10.1080/14786447108640600}}

* {{cite book |last=Laplace |first=Pierre-Simon |author-link=Pierre-Simon Laplace |title=Traité de mécanique céleste |year=1805 |volume=IV |publisher=Courcier |location=Paris}}

* {{cite book |last=Nielson |first=Niels |url=https://archive.org/details/handbuchgamma00nielrich |title=Handbuch der Theorie der Gammafunktion |date=1906 |publisher=Teubner |location=Leipzig |language=de |isbn=978-1-11464695-7}}

* {{cite journal |last1=Schöpf |first1=H. M. |last2=Supancic |first2=P. H. |title=On Bürmann's theorem and its application to problems of linear and nonlinear heat transfer and diffusion |journal=The Mathematica Journal |year=2014 |volume=16 |doi=10.3888/tmj.16-11 |url=http://www.mathematica-journal.com/2014/11/on-burmanns-theorem-and-its-application-to-problems-of-linear-and-nonlinear-heat-transfer-and-diffusion/#more-39602/|doi-access=free}}

* {{cite book |last1=Whittaker |first1=E. T. |last2=Watson |first2=G. N. |title=A Course of Modern Analysis |title-link=A Course of Modern Analysis |date=2021 |orig-year=1902 |publisher=Cambridge University Press |isbn=978-1-316-51893-9 |editor-last=Moll |editor-first=Victor H. |editor-link=Victor Hugo Moll |edition=5th |authorlink1=Edmund T. Whittaker |authorlink2=George N. Watson}}

==Further reading== * {{AS ref |7|297}} *{{Citation |last1=Press |first1=William H. |last2=Teukolsky |first2=Saul A. |last3=Vetterling |first3=William T. |last4=Flannery |first4=Brian P. |year=2007 |title=Numerical Recipes: The Art of Scientific Computing |edition=3rd |publisher=Cambridge University Press |location=New York |isbn=978-0-521-88068-8 |chapter=Section 6.2. Incomplete Gamma Function and Error Function |chapter-url=http://apps.nrbook.com/empanel/index.html#pg=259 |access-date=9 August 2011 |archive-date=11 August 2011 |archive-url=https://web.archive.org/web/20110811154417/http://apps.nrbook.com/empanel/index.html#pg=259 |url-status=dead }} *{{dlmf|id=7|title=Error Functions, Dawson’s and Fresnel Integrals|first=Nico M. |last=Temme }}

==External links== * [http://nvlpubs.nist.gov/nistpubs/jres/73B/jresv73Bn1p1_A1b.pdf A Table of Integrals of the Error Functions]

{{Nonelementary Integral}} {{Authority control}}

Category:Special hypergeometric functions Category:Gaussian function Category:Functions related to probability distributions Category:Analytic functions Category:Sigmoid functions