Retour

Normale-BC.tex

Télécharger le fichier
%©( avril 2009) http://www.cnam.fr/depts/maths/Membres/ghorbanzadeh/
 
\RequirePackage[latin1]{inputenc}
\RequirePackage{fp}
\FPmessagesfalse  % pour ne pas voir les messages de FP
\RequirePackage{pst-func}
\RequirePackage{pstricks-add}
\RequirePackage{moreverb}
\RequirePackage{fancyvrb}
\RequirePackage{xkeyval} % pour l'IHM
\RequirePackage{ifthen}
\RequirePackage{multido}
\input{random.tex}
 
%%% pour le titre des figures
\addto\captionsfrench{%
    \renewcommand{\figurename}{Figure }}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\RequirePackage[hang,small]{caption}
\renewcommand{\captionfont}{\usefont{T1}{rm}{m}{n}\fontsize{11pt}{11pt}\selectfont}
\renewcommand{\captionlabelfont}{\sffamily}
\setlength{\captionmargin}{10pt}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
%%% pour le titre des tables
\addto\captionsfrench{
\renewcommand{\tablename}{Table}
}
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%% affichage des résultats %%%%%%%%%%%%%
 
%%%%%%%%%     Zone  UniInf  %%%%%%%%%%%%%%%%%%%%%%%
\newcommand{\NormalUniInf}[3]{%
\displaystyle{\mathbb{P}\left( \mathcal{N}(#1,#2)\leq #3 \right)}
}
%%%%%%%%%     (Zone  UniSup )  %%%%%%%%%%%%%%%%%%%%%%%
\newcommand{\NormalUniSup}[3]{%
\displaystyle{\mathbb{P}\left( \mathcal{N}(#1,#2)\geq #3 \right)}
}
%%%%%%%%%     (Zone  BiInt )  %%%%%%%%%%%%%%%%%%%%%%%
\newcommand{\NormalBiInt}[4]{%
\displaystyle{\mathbb{P}\left( #3 \leq \mathcal{N}(#1,#2)\leq #4 \right)}
}
%%%%%%%%%     (Zone  BiExt )  %%%%%%%%%%%%%%%%%%%%%%%
\newcommand{\NormalBiExt}[4]{%
\displaystyle{\mathbb{P}\left(\mathcal{N}(#1,#2)\leq #3 \right)+\mathbb{P}\left(\mathcal{N}(#1,#2)\geq #4 \right)}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%        Partie BC                   %%%%%%%%
 
%%%%%%%%  Ecrire en langage BC %%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%  librairie pour BC    %%%%%%%%%%%%%%%%%%%%%
 
\begin{VerbatimOut}[]{NormalLib.b}
 
/* fonction de répartition de loi N(mu,sigma2) */
 define normaleg_fdr(x,mu,sigma)
  {
    auto y;
    y=(x-mu)/sqrt(sigma);
     return normale_fdr(y);
  }
 
/*  calcul de Phi(x) */
 
define normale_fdr(x)
 {
auto t,b1,b2,b3,b4,b5,p,c;
 
b1=0.319381530;
b2=-0.356563782;
b3=1.781477937;
b4=-1.821255978;
b5=1.330274429;
p =0.2316419;
c =0.39894228;
t = 1/(1 + p*valabs(x));
if(x >= 0) return (1-c*e(-x*x/2)*t*(t*(t*(t*(t*b5+b4)+b3)+b2)+b1));
return (c * e(-x*x/2)* t*(t*(t*(t*(t*b5+b4)+b3)+b2)+b1));
}
 
define valabs(x)
 {
if(x >= 0) return (x);
return (-x);
 }
\end{VerbatimOut}
 
%%%%%%%%  Récupérer les résultats calculés par  BC %%%%%%%%
\newwrite\FichierBC
 
%%%%%%%%%%%%%%%%%%  Zone  UniInf   %%%%%%%%%%%%%%%%%%
% #1 fichier contenant le résultat des calculs
% #2 seiul (pour  UniInf )
% #3 mu
% #4 sigma
% #5 précision (chiffres après la virgule)
 
\newcommand{\ResultatBCUniInf}[5][NormalR]{%
\immediate\openout\FichierBC #1.bc
\immediate\write\FichierBC{scale=#5;}
\immediate\write\FichierBC{print  "\noexpand$\noexpand\\NormalUniInf{#3}{#4}{#2} = ",(normaleg_fdr(#2,#3,#4))/1, "$";}
\immediate\write\FichierBC{quit}
\immediate\closeout\FichierBC
}
%%%%%%%%%%%%%%%%%%  Zone  UniSup   %%%%%%%%%%%%%%%%%%
% #1 fichier contenant le résultat des calculs
% #2 seiul (pour  UniSup )
% #3 mu
% #4 sigma
% #5 précision (chiffres après la virgule)
 
\newcommand{\ResultatBCUniSup}[5][NormalR]{%
\immediate\openout\FichierBC #1.bc
\immediate\write\FichierBC{scale=#5;}
\immediate\write\FichierBC{print  "\noexpand$\noexpand\\NormalUniSup{#3}{#4}{#2} = ",(1-normaleg_fdr(#2,#3,#4))/1, "$";}
\immediate\write\FichierBC{quit}
\immediate\closeout\FichierBC
}
%%%%%%%%%%%%%%%%%%  Zone  BiInt    %%%%%%%%%%%%%%%%%%
% #1 fichier contenant le résultat des calculs
% #2 seiul (pour  a )
% #3 seiul (pour  b )
% #4 mu
% #5 sigma
% #6 précision (chiffres après la virgule)
 
\newcommand{\ResultatBCBiInt}[6][NormalR]{%
\immediate\openout\FichierBC #1.bc
\immediate\write\FichierBC{scale=#6;}
\immediate\write\FichierBC{print  "\noexpand$\noexpand\\NormalBiInt{#4}{#5}{#2}{#3} = ",(normaleg_fdr(#3,#4,#5)-normaleg_fdr(#2,#4,#5))/1, "$";}
\immediate\write\FichierBC{quit}
\immediate\closeout\FichierBC
}
%%%%%%%%%%%%%%%%%%  Zone  BiExt %%%%%%%%%%%%%%%%%%
% #1 fichier contenant le résultat des calculs
% #2 seiul (pour  a )
% #3 seiul (pour  b )
% #4 mu
% #5 sigma
% #6 précision (chiffres après la virgule)
 
\newcommand{\ResultatBCBiExt}[6][NormalR]{%
\immediate\openout\FichierBC #1.bc
\immediate\write\FichierBC{scale=#6;}
\immediate\write\FichierBC{print  "\noexpand$\noexpand\\NormalBiExt{#4}{#5}{#2}{#3} = ",(normaleg_fdr(#2,#4,#5)+1-normaleg_fdr(#3,#4,#5))/1, "$";}
\immediate\write\FichierBC{quit}
\immediate\closeout\FichierBC
}
%%%%%%%%%%%  Appel à bc   %%%%%%%%%%
%  répertoire de  bc.exe   : C:/GnuWin32/bin/
% \executBC{#1}{#2}{#3}
% #1 librairie BC
% #2 fichier contenant les commandes en BC
% #3 fichier en sortie
\newcommand{\executBC}[3][NormalLib]{
%%% Il faut modifier ici le chemin d'accès à BC !
\immediate\write18{bc -q -l #1.b #2 > #3 }
}
 
%%%%%%%%%%  IHM-Récupération des résultats en ligne   %%%%%%%%
\makeatletter
% paramètre mu
\define@key{NormalEcrire}{mu}{\def\PMu{#1}}
% paramètre sigma^2
\define@key{NormalEcrire}{sigma}{\def\PSigmaD{#1}}
% borne inf de la zone à calculer
\define@key{NormalEcrire}{Binf}{\def\PBinf{#1}}
% borne sup de la zone à calculer
\define@key{NormalEcrire}{Bsup}{\def\PBsup{#1}}
% paramètre pour la Zone à calculer
 \define@cmdkey{NormalEcrire}{zone}{\def\Zone{#1}}
 % paramètre précision (chiffres après la virgule)
\define@cmdkey{NormalEcrire}{precision}{\def\Paramprecision{#1}}
% valeur par default
\presetkeys{NormalEcrire}{mu=0,sigma=1,Binf=-2,Bsup=2,precision=6}{}
\def\NormalEcrire{\@ifnextchar[\@NormalEcrire{\@NormalEcrire[]}}
\def\@NormalEcrire[#1]{\setkeys{NormalEcrire}{#1}%
\ifthenelse{\equal{\Zone}{UniInf}}{%
\ResultatBCUniInf[NormRUniInf]{\PBinf}{\PMu}{\PSigmaD}{\Paramprecision}
\executBC{NormRUniInf.bc}{NormRUniInf.tex}%
\input{NormRUniInf.tex}}{}
\ifthenelse{\equal{\Zone}{UniSup}}{%
\ResultatBCUniSup[NormRUniSup]{\PBsup}{\PMu}{\PSigmaD}{\Paramprecision}
\executBC{NormRUniSup.bc}{NormRUniSup.tex}%
\input{NormRUniSup.tex}}{}
\ifthenelse{\equal{\Zone}{BiInt}}{%
\ResultatBCBiInt[NormRBiInt]{\PBinf}{\PBsup}{\PMu}{\PSigmaD}{\Paramprecision}
\executBC{NormRBiInt.bc}{NormRBiInt.tex}%
\input{NormRBiInt.tex}}{}
 \ifthenelse{\equal{\Zone}{BiExt}}{%
\ResultatBCBiExt[NormRBiExt]{\PBinf}{\PBsup}{\PMu}{\PSigmaD}{\Paramprecision}%
\executBC{NormRBiExt.bc}{NormRBiExt.tex}%
\input{NormRBiExt.tex}}{}
}
\makeatother
\def\FontOnze{\usefont{T1}{cmr}{m}{n}\fontsize{11pt}{11pt}\selectfont }
\renewcommand{\arraystretch}{1.2}
\newwrite\FichierTable
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%  Table de la loi N(mu,sigma2)   %%%%%%%%%%%%%%%%%%
% #1 fichier contenant le résultat des calculs
% #2 mu
% #3 sigma
% #4 borne inf
% #5 borne sup
% #6 précision
\makeatletter
\begingroup
\catcode`\[=1
\catcode`\]=2
\catcode`\{=11
\catcode`\}=11
\gdef\@myleftbrace[{]
\gdef\@myrightbrace[}]
\endgroup
\newcommand{\NormaleTableBC}[6][NormalTable]{%
\immediate\openout\FichierTable #1.bc
\immediate\write\FichierTable{scale=#6;}
\immediate\write\FichierTable{mu=#2;}
\immediate\write\FichierTable{sigma=#3;}
\immediate\write\FichierTable{binf=#4;}
\immediate\write\FichierTable{bsup=#5;}
\immediate\write\FichierTable{pas=bsup - binf;}
\immediate\write\FichierTable{for ( j =0; j <100; j ++) \@myleftbrace }
\immediate\write\FichierTable{y[j]=binf+pas*j/99; }
\immediate\write\FichierTable{\@myrightbrace}
\immediate\write\FichierTable{print "\noexpand\\begin\@myleftbrace table\@myrightbrace[ht]","\noexpand\n"}
\immediate\write\FichierTable{print "\noexpand\\centering" ,"\noexpand\n"}
\immediate\write\FichierTable{print "\noexpand\\[ F(x)=\noexpand\\mathbb{P}(\noexpand\\mathcal{N}(#2 , #3)\noexpand\\leq x)\noexpand\\]","\noexpand\n"}
\immediate\write\FichierTable{print "\@myleftbrace \noexpand\\FontOnze","\noexpand\n"}
\immediate\write\FichierTable{print "\noexpand\\[ \noexpand\\begin{array}{|c|c|c|c|c|c|c|c|}", "\noexpand\\hline\noexpand\n" }
\immediate\write\FichierTable{print "x \noexpand& F(x) \noexpand& x \noexpand& F(x) \noexpand& x \noexpand& F(x) \noexpand& x \noexpand& F(x)"  ,"\noexpand\\\noexpand\\\noexpand\\hline\noexpand\n" }
\immediate\write\FichierTable{for ( i =0; i <25; i ++) \@myleftbrace }
\immediate\write\FichierTable{print y[i]/1, "\noexpand&", normaleg_fdr(y[i]/1,mu,sigma)/1, "\noexpand&",y[i+25]/1, "\noexpand&",normaleg_fdr(y[i+25]/1,mu,sigma)/1 , "\noexpand&\noexpand\n",y[i+50]/1 , "\noexpand&",normaleg_fdr(y[i+50]/1,mu,sigma)/1, "\noexpand&",y[i+75]/1, "\noexpand&",normaleg_fdr(y[i+75]/1,mu,sigma)/1;}
\immediate\write\FichierTable{if (i\@percentchar4==0) print "\noexpand\\\noexpand\\\noexpand\\hline\noexpand\n" }
\immediate\write\FichierTable{\@myrightbrace}
\immediate\write\FichierTable{print "\noexpand\\end{array}","\noexpand\\]\noexpand\n"}
\immediate\write\FichierTable{print "\@myrightbrace","\noexpand\n"}
\immediate\write\FichierTable{print "\noexpand\\caption\@myleftbrace Table de la loi \noexpand\\(\noexpand\\mathcal{N}(#2 , #3) \noexpand\\) \@myrightbrace" ,"\noexpand\n"}
\immediate\write\FichierTable{print "\noexpand\\end\@myleftbrace table\@myrightbrace","\noexpand\n"}
%\immediate\write\FichierTable{print "\noexpand\\clearpage","\noexpand\n"}
\immediate\write\FichierTable{quit}
\immediate\closeout\FichierTable
}
\makeatother
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%  IHM-Table   %%%%%%%%
\makeatletter
% paramètre mu
\define@key{NormalTable}{mu}{\def\PMu{#1}}
% paramètre sigma^2
\define@key{NormalTable}{sigma}{\def\PSigmaD{#1}}
% borne inf de l'intervalle [a,b]
\define@key{NormalTable}{a}{\def\PBinf{#1}}
% borne sup % borne inf de l'intervalle [a,b]
\define@key{NormalTable}{b}{\def\PBsup{#1}}
 % paramètre précision (chiffres après la virgule)
\define@cmdkey{NormalTable}{precision}{\def\Paramprecision{#1}}
% valeur par default
\presetkeys{NormalTable}{mu=0,sigma=1,a=-4,b=4,precision=6}{}
\def\NormalTable{\@ifnextchar[\@NormalTable{\@NormalTable[]}}
\def\@NormalTable[#1]{\setkeys{NormalTable}{#1}%
\NormaleTableBC{\PMu}{\PSigmaD}{\PBinf}{\PBsup}{\Paramprecision}
\executBC{NormalTable.bc}{NormalTable.tex}
%\begin{table}[ht]
%\centering
\input{NormalTable.tex}
%\caption{Table de la loi $\mathcal{N}(\PMu ,\PSigmaD)$} % title of Table
%\end{table}
}
\makeatother
 
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newdimen\RandRA
\newdimen\RandGA
\newdimen\RandBA
\setrandim{\RandRA}{0pt}{1pt}
\setrandim{\RandGA}{0pt}{1pt}
\setrandim{\RandBA}{0pt}{1pt}
\newdimen\RandRB
\newdimen\RandGB
\newdimen\RandBB
\setrandim{\RandRB}{0pt}{1pt}
\setrandim{\RandGB}{0pt}{1pt}
\setrandim{\RandBB}{0pt}{1pt}
\definecolor{CouleurA}{rgb}{\pointless\RandRA,\pointless\RandGA,\pointless\RandBA}
\definecolor{CouleurB}{rgb}{\pointless\RandRB,\pointless\RandGB,\pointless\RandBB}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
%%%%%%%%%%%%%%%%        Partie  pstricks            %%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newlength{\LongueurX}
\newlength{\LongueurY}
 
\makeatletter
% paramètre mu
\define@key{Normaleplot}{mu}{\def\PMu{#1}}
% paramètre sigma^2
\define@key{Normaleplot}{sigma}{\def\PSigmaD{#1}}
% borne inf de la zone à hachurer
\define@key{Normaleplot}{Binf}{\def\PBinf{#1}}
% borne sup de la zone à hachurer
\define@key{Normaleplot}{Bsup}{\def\PBsup{#1}}
% xechelle=xunit de \psset
\define@key{Normaleplot}{xechelle}{\def\Xechelle{#1}}
% yechelle=yunit de \psset
\define@key{Normaleplot}{yechelle}{\def\Yechelle{#1}}
% nbpoints=plotpoints de \psset
\define@key{Normaleplot}{nbpoints}{\def\Nbpoints{#1}}
% couleur de la zone à hachurer
\define@key{Normaleplot}{couleurz}{\def\CouleurZ{#1}}
% couleur de la courbe
\define@key{Normaleplot}{couleurc}{\def\CouleurC{#1}}
% paramètre pour la Zone à hachurer
 \define@cmdkey{Normaleplot}{zone}{\def\Zone{#1}}
 % paramètre précision (chiffres après la virgule)
\define@cmdkey{Normaleplot}{precision}{\def\Paramprecision{#1}}
% valeur par default
\presetkeys{Normaleplot}{mu=0,sigma=1,Binf=-2,Bsup=2,xechelle=11,yechelle=4,nbpoints=200,
couleurz=CouleurA, couleurc=CouleurB,precision=6}{}
 
\def\Normaleplot{\@ifnextchar[\@Normaleplot{\@Normaleplot[]}}
\def\@Normaleplot[#1]{\setkeys{Normaleplot}{#1}%
%\PSigma = sqrt(%\PSigmaD)
\FProot{\PSigma}{\PSigmaD}{2}
\FPeval\PSigma{round(\PSigma,6)}
% x varie  dans [mu-4*sigma , mu+4*sigma]
% appel à FP pour les calculs intermédiaires
% les paramètres de : pspicture
\FPeval\PSA{round(clip(\PMu-4*\PSigma),4)} % mu-4*sigma
\FPeval\PSB{round(clip(\PMu+4*\PSigma),4)} % mu+4*sigma
%1/(sigma * sqrt(2*pi)) = max(f)
\FPeval\FMax{round(clip((0.3989)/ \PSigma),4)}
 
% axes des x : longueur de [mu-4*sigma , mu+4*sigma] = 8*sigma
\FPeval\Xmesure{round(clip(\Xechelle / (8*\PSigma)),4)}
% axes des y : longueur=\FMax
\FPeval\Ymesure{round(clip(\Yechelle / \FMax),4)}
 
%\XMarques pour échelonner l'axe des x
\FPeval\XMarques{round(clip(0.3989/ \Ymesure),2)}
 
 
%\PSAA : la position de l'axe des y
\FPeval\PSAA{round(clip(\PSA - 0.5*\PSigma),2)}
%
%\PSBB : la position de l'axe des y
\FPeval\PSBB{round(clip(\PSB + 0.5*\PSigma),2)}
 
\FPeval\Xpos{round(clip(\PMu - 0.5*\PSigma),2)} %
 
\setlength{\LongueurX}{\Xmesure cm} % pour passer \Xmesure en longueur
\setlength{\LongueurY}{\Ymesure cm} % pour passer \Ymesure en longueur
 
\begin{figure}[htb]
\centering
\psset{xunit=\LongueurX,yunit=\LongueurY,plotpoints=\Nbpoints}
\begin{pspicture}(\PSAA,0)(\PSBB,\FMax)
\ifthenelse{\equal{\Zone}{UniInf}}{%
\pscustom[fillstyle=solid,fillcolor=\CouleurZ,linestyle=none]{%
\psline(\PBinf,0)(\PSA,0)%
\psGauss[sigma=\PSigma, mue=\PMu , linewidth=2pt]{\PSA}{\PBinf}%
}}
{\ifthenelse{\equal{\Zone}{UniSup}}{%
\pscustom[fillstyle=solid,fillcolor=\CouleurZ,linestyle=none]{%
\psline(\PBsup,0)(\PSB,0)%
\psGauss[sigma=\PSigma, mue=\PMu , linewidth=2pt]{\PSB}{\PBsup}%
}}
{\ifthenelse{\equal{\Zone}{BiInt}}{%
\pscustom[fillstyle=solid,fillcolor=\CouleurZ,linestyle=none]{%
\psline(\PBsup,0)(\PBinf,0)%
\psGauss[sigma=\PSigma, mue=\PMu , linewidth=2pt]{\PBinf}{\PBsup}%
}}
 {\ifthenelse{\equal{\Zone}{BiExt}}{%
\pscustom[fillstyle=solid,fillcolor=\CouleurZ,linestyle=none]{%
\psline(\PBinf,0)(\PSA,0)%
\psGauss[sigma=\PSigma, mue=\PMu , linewidth=2pt]{\PSA}{\PBinf}%
}
\pscustom[fillstyle=solid,fillcolor=\CouleurZ,linestyle=none]{%
\psline(\PBsup,0)(\PSB,0)%
\psGauss[sigma=\PSigma, mue=\PMu , linewidth=2pt]{\PSB}{\PBsup}%
}}{}
 }
 }
 }
\psGauss[sigma=\PSigma, mue=\PMu,linecolor=\CouleurC,linewidth=2pt]{\PSB}{\PSA}
\psline[linewidth=1pt]{-}(\PSAA,0)(\PSBB,0)      % horizontal
 
% pour remplacer \psaxes
\multido{\i=1+1}{9}{%
\FPeval\mdx{round(clip(\PMu + (\i - 5)* \PSigma),2)}
% l'intervalle sous la forme
% [mu-4*sigma,mu-3*sigma, ..., mu,mu+sigma,..,mu+4*sigma]
\rput(\mdx,0){\tiny{$\mid$}}
\rput[b](\mdx,-\XMarques){\tiny{\mdx}}}
 
\end{pspicture}
\medskip
\ifthenelse{\equal{\Zone}{UniInf}}{%
\ResultatBCUniInf[NormRUniInf]{\PBinf}{\PMu}{\PSigmaD}{\Paramprecision}
\executBC{NormRUniInf.bc}{NormRUniInf.tex}
 \caption{graphe de la loi $\mathcal{N}(\PMu \,,\, \PSigmaD)$  avec \protect\input{NormRUniInf.tex}}}{}
 
\ifthenelse{\equal{\Zone}{UniSup}}{%
\ResultatBCUniSup[NormRUniSup]{\PBsup}{\PMu}{\PSigmaD}{\Paramprecision}
\executBC{NormRUniSup.bc}{NormRUniSup.tex}%
\caption{graphe de la loi $\mathcal{N}(\PMu \,,\, \PSigmaD)$  avec \protect\input{NormRUniSup.tex}}}{}
 
\ifthenelse{\equal{\Zone}{BiInt}}{%
\ResultatBCBiInt[NormRBiInt]{\PBinf}{\PBsup}{\PMu}{\PSigmaD}{\Paramprecision}
\executBC{NormRBiInt.bc}{NormRBiInt.tex}
\caption{graphe de la loi $\mathcal{N}(\PMu \,,\, \PSigmaD)$  avec \protect\input{NormRBiInt.tex}}}{}
 
\FPeval\XExt{round(clip(\PMu - 3* \PSigma),2)}
\ifthenelse{\equal{\Zone}{BiExt}}{%
\ResultatBCBiExt[NormRBiExt]{\PBinf}{\PBsup}{\PMu}{\PSigmaD}{\Paramprecision}%
\executBC{NormRBiExt.bc}{NormRBiExt.tex}%
\caption{graphe de la loi $\mathcal{N}(\PMu \,,\, \PSigmaD)$  avec \protect\input{NormRBiExt.tex}}}{}
%\label{......}
\end{figure}
}
\makeatother