Fonction d'erreur
Construction de la fonction d'erreur réelle.
En mathématiques , la fonction d'erreur (aussi appelée fonction d'erreur de Gauss ) est une fonction entière utilisée en analyse . Cette fonction se note erf et fait partie des fonctions spéciales . Elle est définie par :
erf
(
x
)
=
2
π
∫
0
x
e
−
t
2
d
t
.
{\displaystyle \operatorname {erf} (x)={\frac {2}{\sqrt {\pi }}}\int _{0}^{x}\mathrm {e} ^{-t^{2}}\,\mathrm {d} t.}
La fonction erf intervient régulièrement dans le domaine des probabilités et statistiques , ainsi que dans les problèmes de diffusion (de la chaleur ou de la matière ).
Intérêt de cette fonction
Probabilités et statistiques
La probabilité pour qu'une variable normale centrée réduite X prenne une valeur dans l'intervalle [–z , z ] est :
erf
(
z
2
)
=
P
(
X
∈
[
−
z
,
z
]
)
.
{\displaystyle \operatorname {erf} \left({\frac {z}{\sqrt {2}}}\right)=\mathbb {P} (X\in [-z,z]).}
La fonction de répartition de X , ou fonction de répartition de la loi normale , usuellement notée Φ, est liée à la fonction d'erreur erf, par la relation :
Φ
(
z
)
=
∫
−
∞
z
1
2
π
e
−
t
2
2
d
t
=
1
2
[
1
+
erf
(
z
2
)
]
=
P
(
X
≤
z
)
,
{\displaystyle \Phi (z)=\int _{-\infty }^{z}{\frac {1}{\sqrt {2\,\pi }}}\,\mathrm {e} ^{-{\frac {t^{2}}{2}}}\,\mathrm {d} t={\frac {1}{2}}\left[1+\operatorname {erf} \left({\frac {z}{\sqrt {2}}}\right)\right]=\mathbb {P} (X\leq z),}
ou bien encore :
erf
(
z
)
=
2
Φ
(
z
2
)
−
1.
{\displaystyle \operatorname {erf} (z)=2\,\Phi \!\!\left(z{\sqrt {2}}\right)-1.}
Problèmes de diffusion
La fonction d'erreur intervient dans l'expression des solutions de l'équation de la chaleur ou de l'équation de la diffusion , par exemple quand les conditions initiales sont données par la fonction de Heaviside .
Considérons notamment un demi-espace x ≥ 0 occupé par un solide de diffusivité thermique κ et de température initialement uniforme T 1 . Si à l'instant t = 0 sa frontière x = 0 est portée puis maintenue à la température T 2 , la température T (x ,t ) à tout instant t > 0 et en tout point x > 0 est donnée par :
T
(
x
,
t
)
=
T
2
−
(
T
2
−
T
1
)
erf
(
x
2
κ
t
)
.
{\displaystyle T(x,t)=T_{2}-(T_{2}-T_{1})\operatorname {erf} \left({\frac {x}{2{\sqrt {\kappa t}}}}\right).}
Calcul numérique
L'intégrale ne peut être obtenue à partir d'une formule fermée mais par un développement en série entière (de rayon de convergence infini) intégré termes à termes,
erf
(
z
)
=
2
π
∑
n
=
0
∞
(
−
1
)
n
(
2
n
+
1
)
×
n
!
z
2
n
+
1
=
2
π
(
z
−
z
3
3
+
z
5
10
−
z
7
42
+
.
.
.
)
{\displaystyle \quad \operatorname {erf} (z)={\frac {2}{\sqrt {\pi }}}\sum _{n=0}^{\infty }{\frac {(-1)^{n}}{(2n+1)\times n!}}\,z^{2n+1}={\frac {2}{\sqrt {\pi }}}\left(z-{\frac {z^{3}}{3}}+{\frac {z^{5}}{10}}-{\frac {z^{7}}{42}}+...\right)}
Il existe des tables donnant des valeurs des intégrales , comme fonctions de z , mais aujourd'hui, la plupart des logiciels de calcul numérique (tableurs , Scilab ) ou de calcul formel (comme Maple ou MuPAD ) intègrent une routine de calcul de erf(x) et de sa bijection réciproque , inverf(x), encore plus utile en calcul de probabilités .
Toutefois, les approximations suivantes peuvent être utiles :
En
v
(
0
)
,
erf
(
x
)
=
2
π
e
−
x
2
(
x
+
2
3
x
3
+
4
15
x
5
)
+
o
(
x
6
e
−
x
2
)
{\displaystyle v(0),\quad \operatorname {erf} (x)={\frac {2}{\sqrt {\pi }}}\mathrm {e} ^{-x^{2}}\left(x+{\frac {2}{3}}\,x^{3}+{\frac {4}{15}}\,x^{5}\right)+o(x^{6}\,\mathrm {e} ^{-x^{2}})}
(avec une erreur inférieure à 6 × 10–4 pour x < 0,5)
En
v
(
+
∞
)
,
erf
(
x
)
=
1
−
e
−
x
2
1
π
.
(
1
x
−
1
2
x
3
+
3
4
x
5
−
15
8
x
7
)
+
o
(
x
−
8
e
−
x
2
)
{\displaystyle v(+\infty ),\quad \operatorname {erf} (x)=1-\mathrm {e} ^{-x^{2}}{\frac {1}{\sqrt {\pi }}}.\left({\frac {1}{x}}-{\frac {1}{2x^{3}}}+{\frac {3}{4x^{5}}}-{\frac {15}{8x^{7}}}\right)+o(x^{-8}\mathrm {e} ^{-x^{2}})}
(avec une erreur inférieure à 2 × 10–4 pour x > 1,75)
Pour
x
>
0
,
1
−
e
−
x
2
≤
erf
(
x
)
≤
1
−
e
−
4
x
2
/
π
{\displaystyle x>0,\quad {\sqrt {1-\mathrm {e} ^{-x^{2}}}}\leq \operatorname {erf} (x)\leq {\sqrt {1-\mathrm {e} ^{-4x^{2}/\pi }}}}
(encadrement proposé par J. T. Chu, 1955 ; la borne supérieure approche partout la fonction erf à moins de 7 × 10−3 près).
Pour
x
>
0
,
erf
(
x
)
≃
1
−
e
−
1
,
9
x
1
,
3
{\displaystyle x>0,\quad \operatorname {erf} (x)\simeq 1-\mathrm {e} ^{-1,9x^{1,3}}}
(approximation proposée par E. Robert, 1996 ; Elle approche partout la fonction erf à moins de 2,2 × 10−2 près. L'approximation s'améliore pour être inférieure à 10−2 pour
x
≥
1
{\displaystyle x\geq 1}
).
La fonction
x
↦
erf
(
x
)
×
e
x
2
{\displaystyle x\mapsto \operatorname {erf} (x)\times \mathrm {e} ^{x^{2}}}
est la solution de l'équation différentielle
y
″
−
2
x
y
′
−
2
y
=
0
{\displaystyle y''-2x\,y'-2y=0}
valant 0 en 0 et de dérivée
2
π
{\displaystyle {\frac {2}{\sqrt {\pi }}}}
en 0.
Fonction réciproque
Approximations de la fonction d'erreur réciproque (somme jusqu'à k = K ).
La fonction d'erreur réciproque intervient parfois dans des formules statistiques . Elle peut être décrite à l'aide d'un développement en série :
erf
−
1
(
z
)
=
∑
k
=
0
∞
c
k
2
k
+
1
(
π
2
z
)
2
k
+
1
{\displaystyle \operatorname {erf} ^{-1}(z)=\sum _{k=0}^{\infty }{\frac {c_{k}}{2k+1}}\left({\frac {\sqrt {\pi }}{2}}z\right)^{2k+1}}
où
c
0
=
1
{\displaystyle c_{0}=1}
et
c
k
=
∑
m
=
0
k
−
1
c
m
c
k
−
1
−
m
(
m
+
1
)
(
2
m
+
1
)
=
{
1
,
1
,
7
6
,
127
90
,
…
}
{\displaystyle c_{k}=\sum _{m=0}^{k-1}{\frac {c_{m}c_{k-1-m}}{(m+1)(2m+1)}}=\left\{1,1,{\frac {7}{6}},{\frac {127}{90}},\ldots \right\}}
On obtient le développement suivant :
erf
−
1
(
z
)
=
1
2
π
(
z
+
π
12
z
3
+
7
π
2
480
z
5
+
127
π
3
40320
z
7
+
4369
π
4
5806080
z
9
+
34807
π
5
182476800
z
11
+
⋯
)
{\displaystyle \operatorname {erf} ^{-1}(z)={\frac {1}{2}}{\sqrt {\pi }}\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)}
(le rayon de convergence de cette série valant 1, elle ne donne de bonnes valeurs approchées que pour |z |<1/2 par exemple).
Quelques implémentations
erf
{\displaystyle \operatorname {erf} }
est présente nativement dans plusieurs langages comme C++ (C++ 2011 Standard) et Fortran 2008.