# Error function

> Mediated Wiki article. Canonical URL: https://mediated.wiki/source/Error_function
> Markdown URL: https://mediated.wiki/source/Error_function.md
> Source: https://en.wikipedia.org/wiki/Error_function
> Source revision: 1354524354
> License: Creative Commons Attribution-ShareAlike 4.0 International (https://creativecommons.org/licenses/by-sa/4.0/)

{{Short description|Sigmoid shape special function}}
{{Use dmy dates|date=March 2023}}
{{Distinguish|Loss function}}
In [mathematics](/source/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](/source/Contour_integration) which is path-independent because <math>\exp(-t^2)</math> is [holomorphic](/source/Holomorphic_function) on the whole complex plane <math>\mathbb{C}</math>. In many applications, the function argument is a [real number](/source/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](/source/nonelementary_integral) is a [sigmoid](/source/sigmoid_function) function that occurs often in [probability](/source/probability), [statistics](/source/statistics), and [partial differential equation](/source/partial_differential_equation)s. 

In statistics, for non-negative real values of <math>X</math>, the error function has the following interpretation: for a real [random variable](/source/random_variable) <math>Y</math> that is [normally distributed](/source/normal_distribution) with [mean](/source/mean) 0 and [standard deviation](/source/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](/source/imaginary_unit).

== Name ==
The name "error function" and its abbreviation <math>\operatorname{erf}</math> were proposed by [J. W. L. Glaisher](/source/James_Whitbread_Lee_Glaisher) in 1871 on account of its connection with "the theory of probability, and notably the theory of [errors](/source/errors_and_residuals)".{{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](/source/probability_density) is given by
:<math>f(x) = \left(\frac{c}{\pi}\right)^{1/2} e^{-c x^2}</math>
(the [normal distribution](/source/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](/source/normal_distribution) with [standard deviation](/source/standard_deviation) <math>\sigma</math> and [expected value](/source/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](/source/bit_error_rate) of a digital communication system.

The error and complementary error functions occur, for example, in solutions of the [heat equation](/source/heat_equation) when [boundary condition](/source/boundary_condition)s are given by the [Heaviside step function](/source/Heaviside_step_function).

The error function and its approximations can be used to estimate results that hold [with high probability](/source/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](/source/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](/source/domain_coloring).
 | image2    = ComplexErfz.png
 | caption2  = {{math|erf(''z'')}} in the complex plane.
}}

The error function is an [odd function](/source/even_and_odd_functions). This directly results from the fact that the integrand <math>e^{-t^2}</math> is an [even function](/source/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](/source/entire_function) which maps real numbers to real numbers, for any [complex number](/source/complex_number) <math>z</math>,
:<math>\operatorname{erf}(\bar{z}) = \overline{\operatorname{erf}(z)}</math>
where <math>\bar{z}</math> denotes the [complex conjugate](/source/complex_conjugate) of <math>z</math>.

The error function at <math>\infty</math> is exactly <math>1</math> (see [Gaussian integral](/source/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](/source/entire_function); it has no singularities (except at infinity) and its [Taylor expansion](/source/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](/source/Closed-form_expression) in terms of [elementary functions](/source/Elementary_function_(differential_algebra)) (see [Liouville's theorem](/source/Liouville's_theorem_(differential_algebra))), but by expanding the [integrand](/source/integrand) <math>e^{-z^2}</math> into its [Maclaurin series](/source/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](/source/complex_number) <math>z</math>. The denominator terms form sequence [A007680](/source/oeis%3AA007680) in the [OEIS](/source/OEIS). This is a special case of [Kummer's function](/source/Confluent_hypergeometric_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](/source/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](/source/Hermite_polynomials).<ref>{{mathworld|title=Erf|urlname=Erf}}</ref>

An [antiderivative](/source/antiderivative) of the error function, obtainable by [integration by parts](/source/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](/source/Hans_Heinrich_B%C3%BCrmann)'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](/source/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](/source/Approximation_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](/source/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](/source/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](/source/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](/source/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](/source/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](/source/continued_fraction) expansion of the complementary error function was found by [Laplace](/source/Pierre-Simon_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](/source/rising_factorial), and <math>s(n,k)</math> denotes a signed [Stirling number of the first kind](/source/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](/source/%3Ade%3AZeitschrift_f%C3%BCr_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](/source/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](/source/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](/source/minimax_approximation_algorithm) approximation or bound for the closely related [Q-function](/source/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](/source/George_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](/source/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](/source/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](/source/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](/source/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.](/source/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](/source/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](/source/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](/source/Dawson_function) (which can be used instead of {{math|erfi}} to avoid [arithmetic overflow](/source/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](/source/complex_number) arguments {{mvar|z}}, the resulting '''complex error function''' is usually discussed in scaled form as the [Faddeeva function](/source/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](/source/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](/source/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](/source/inverse_function) of {{math|Φ}} is known as the [normal quantile function](/source/Quantile_function), or [probit](/source/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](/source/Mittag-Leffler_function), and can also be expressed as a [confluent hypergeometric function](/source/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](/source/Fresnel_integral).{{Elucidate|date=May 2012}}

In terms of the [regularized gamma function](/source/regularized_gamma_function) {{mvar|P}} and the [incomplete gamma function](/source/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](/source/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](/source/POSIX)-compliant operating systems, the header <code>[math.h](/source/math.h)</code> shall declare and the mathematical library <code>[libm](/source/libm)</code> shall provide the functions <code>erf</code> and <code>erfc</code> ([double precision](/source/double_precision)) as well as their [single precision](/source/single_precision) and [extended precision](/source/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](/source/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](/source/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](/source/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](/source/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](/source/Trait%C3%A9_de_m%C3%A9canique_c%C3%A9leste) |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](/source/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

---
Adapted from the Wikipedia article [Error function](https://en.wikipedia.org/wiki/Error_function) by Wikipedia contributors ([contributor history](https://en.wikipedia.org/wiki/Error_function?action=history)). Available under [Creative Commons Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/). Changes may have been made.
