Download finvrepa.procedur

Back to the list

   1 : * FINVREPA  PROCEDUR  CHLOE     99/03/18    21:15:11     3528           
   2 : DEBPROC finvrepa  TPARI*table xi*flottant;
   3 : *
   4 : *xi 
   5 : *tvai entier contenant le type des va
   6 : *tab2 table contenant les parametres  de la va
   7 : *
   8 : *sortie invrep valeur  pour laquelle la fonction de répartition vaut xi
   9 : *
  10 : *SI (OU (< Xi 0.) (> Xi 1.));
  11 : SI (OU (< Xi (0. -  1e-15)) (> Xi (1 + 1e-15)));
  12 :  erre 'ERREUR DANS FINVREPA x DOIT ETRE COMPRIS ENTRE 0 ET 1';
  13 :  QUITTER finvrepa;
  14 : FINSI;
  15 : *
  16 : X=xi;
  17 : tvai = tpari . typva;
  18 : *a voir portabilite
  19 : ESP=1D-8;
  20 : XMIN=ESP;
  21 : XMAX=1. - ESP;
  22 : SI (<EG xi XMIN);
  23 :  X = X + X;
  24 : FINSI;
  25 : SI (EGA xi 0.);
  26 :  X = ESP;
  27 : FINSI;
  28 : SI (>EG xi (1. - ESP));
  29 :  X = 1. - (ESP/2.);
  30 : FINSI;
  31 : SI (EGA xi 1.);
  32 :  X=X - ESP;
  33 : FINSI;
  34 : *loi rectangulaire
  35 : SI (EGA TVAI loi_uniforme);
  36 :  A=TPARI . A;
  37 :  B=TPARI . B;
  38 :  INVREP= B - A * xi + A;
  39 :  quitter finvrepa;
  40 : FINSI;
  41 : *
  42 : *loi laplace
  43 : SI (EGA TVAI loi_de_laplace);
  44 :  SI (<EG xi 1e-15);
  45 :   INVREP=LOG (2. * X);
  46 :  SINON;
  47 :   SI (<EG xi 0.5);
  48 :    INVREP=LOG (2.*xi);
  49 :   SINON;
  50 : *   SI (EGA xi 1.);
  51 :    SI (>EG xi (1. - 1e-15));
  52 :     INVREP=0. - (LOG (2. * (1. - X)));
  53 :    SINON;
  54 :     INVREP=0. - (LOG (2.* (1. - xi)));
  55 :    FINSI;
  56 :   FINSI;
  57 :  FINSI;
  58 :  quitter finvrepa;
  59 : FINSI;
  60 : *
  61 : *loi normale standard
  62 : SI (EGA TVAI loi_normale_standard);
  63 :  RAUX IER=MDNRIS Xi;
  64 :  INVREP=RAUX;
  65 :  quitter finvrepa;
  66 : FINSI;
  67 : * 
  68 : *loi exponentielle
  69 : SI (EGA TVAI loi_exponentielle);
  70 :  _LBDA=TPARI . LAMBDA;
  71 :  _MU= TPARI . MU;
  72 :    SI (>EG xi (1. - 1e-15));
  73 :   INVREP=_MU - ((LOG (1. - X)) /  _LBDA);
  74 :     sinon;
  75 :  INVREP=_MU - ((LOG (1. - Xi)) /  _LBDA);
  76 :  finsi;
  77 :  quitter finvrepa;
  78 : FINSI;
  79 : *
  80 : *loi lognormale
  81 : SI (EGA TVAI loi_lognormale);
  82 :          MOY = TPARI . MOYENNE ;
  83 :          FSIG= TPARI . ECART_TYPE;
  84 :          MOY2 = MOY * MOY;
  85 :          FSIG2=FSIG * FSIG;
  86 : *N pour ecarttype et moyenne de la loi normale associe
  87 :          NSIG2=log((MOY2+FSIG2)/MOY2);
  88 :          NSIG = NSIG2 ** 0.5;
  89 :          NMOY = log(moy2/((MOY2+FSIG2)** 0.5));
  90 :   RAUX IER=MDNRIS Xi;
  91 :   INVREP=EXP (NSIG*RAUX+NMOY);
  92 : FINSI;
  93 : *
  94 : *loi normale
  95 : SI (EGA TVAI loi_normale);
  96 :     MOY = TPARI . MOYENNE ;
  97 :     FSIG= TPARI . ECART_TYPE;
  98 :  RAUX IER=MDNRIS Xi;
  99 :  INVREP=FSIG*RAUX+MOY;
 100 :  quitter finvrepa;
 101 : FINSI;
 102 : *
 103 : *loi weibull min
 104 : SI (EGA TVAI loi_weibull_min);
 105 :  TAU= TPARI . TAU;
 106 :  K= TPARI . K;
 107 :  W= TPARI . W;
 108 :  SI (<EG Xi 1e-15);
 109 :    INVREP = TAU;
 110 :  SINON;
 111 :    SI (>EG Xi (1 - 1e-15));
 112 :      RAUX=LOG (1. - X);
 113 :    SINON;
 114 :      RAUX=LOG (1. - Xi);
 115 :    FINSI;
 116 :    SI (EGA RAUX 0.);
 117 :      AUX1 = 0.;
 118 :    SINON;
 119 :      AUX1= (0. - RAUX) **(1/K);
 120 :    FINSI;
 121 :    INVREP=AUX1 * (W - TAU) +TAU;
 122 :   FINSI;
 123 :  quitter finvrepa;
 124 : FINSI;
 125 : *
 126 : *loi normale tronquee
 127 : SI (EGA TVAI loi_normale_tronquee);
 128 :  MM  = TPARI . MOYENNE;
 129 :  SSIG= TPARI . ECART_TYPE;
 130 :  MMIN= TPARI . MIN;
 131 :  MMAX= TPARI . MAX;
 132 :  SI (EGA XI 0.);
 133 :   INVREP=MMIN;
 134 :  SINON;
 135 :   SI (EGA XESP 1.);
 136 :    INVREP=MMAX;
 137 :   SINON;
 138 :    AUX = (MMIN - MM) / SSIG;
 139 :    AUX1 = 1 - (erf (-0.7071067811865475 * aux )) * 0.5;
 140 :    AUX = (MMAX - MM) / SSIG;
 141 :    AUX2 =1 - (erf (-0.7071067811865475 * aux )) * 0.5;
 142 :    AUX3=(AUX2-AUX1)*Xi + AUX1;
 143 :    RAUX IER=MDNRIS AUX3;
 144 :    INVREP=RAUX * SSIG + MM;
 145 :   FINSI;
 146 :  FINSI;
 147 :  quitter finvrepa;
 148 : FINSI;
 149 : *
 150 : *
 151 : *loi exponentielle tronquee
 152 : SI (EGA TVAI loi_exponentielle_tronquee);
 153 :  _LBDA=TPARI . LAMBDA;
 154 :  _MU=  TPARI . MU  ;
 155 :  _MIN= TPARI . MIN;
 156 :  _MAX= TPARI . MAX;
 157 :  SI (<EG Xi 1e-14);
 158 :   INVREP=_MIN;
 159 :  SINON;
 160 :   SI (>EG Xi (1. - 1e-15));
 161 :    INVREP=_MAX;
 162 :   SINON;
 163 :    T=TABLE;
 164 :    T . typva =loi_exponentielle;
 165 :    T . LAMBDA=_LBDA;
 166 :    T . MU    =_mu;
 167 :    AUX1=REPART   T _MIN  ;
 168 :    AUX2=REPART   T _MAX  ;
 169 :    AUX3=AUX2-AUX1*Xi+AUX1;
 170 :    INVREP= _mu - ((LOG (1.-AUX3))/_LBDA);
 171 :   FINSI;
 172 :  FINSI;
 173 :  quitter finvrepa;
 174 : FINSI;
 175 : *
 176 : *
 177 : *loi gumbel max
 178 : SI (EGA TVAI loi_gumbel_max);
 179 :  LBDA=TPARI . LAMBDA;
 180 :  MU=  TPARI . MU    ;
 181 :   si (<EG xi 1e-30);
 182 :   xi=1e-30;
 183 :   finsi;
 184 :   si (>EG xi (1-1e-16));
 185 :   xi=1-1e-16;
 186 :   finsi;
 187 :  AUX=LOG (0. - (LOG Xi));
 188 :  INVREP=MU - (AUX/LBDA);
 189 :  quitter finvrepa;
 190 : FINSI;
 191 : *
 192 : *loi normale tronquee inf
 193 : SI (EGA TVAI loi_normale_tronquee_inf);
 194 :  MM  = TPARI . MOYENNE;
 195 :  SSIG= TPARI . ECART_TYPE;
 196 :  MMIN= TPARI . MIN;
 197 :  SI (EGA Xi 0.);
 198 :   INVREP=MMIN;
 199 :  SINON;
 200 :   AUX = (MM - MMIN)/SSIG;
 201 :   AUX1 = 1 - (erf (-0.7071067811865475 * aux )) * 0.5;
 202 : SI (< (ABS AUX1) 0.00001);
 203 :   AUX3 = Xi;
 204 : SINON;
 205 :   AUX3=(1. - AUX1)*Xi +AUX1;
 206 : FINSI;
 207 :   RAUX IER=MDNRIS AUX3;
 208 :   INVREP=MM+(RAUX*SSIG);
 209 :  FINSI;
 210 :  quitter finvrepa;
 211 : FINSI; 
 212 : *
 213 : *
 214 : * Loi de Frechet
 215 : SI (EGA TVAI  loi_de_frechet);
 216 :   U = TPARI . U;
 217 :   K = TPARI . K;
 218 :   B = TPARI . B;
 219 :   SI (EGA Xi 0.);
 220 :     INVREP = B;
 221 :   SINON;
 222 :      YAUX = (-1. * (LOG Xi))**(1/K);
 223 :        si (EGA YAUX 0.);
 224 :       INVREP=0;
 225 :        sinon;
 226 :      INVREP = B + (U - B) / YAUX;
 227 :    finsi;
 228 :   FINSI;
 229 :  quitter finvrepa;
 230 : FINSI;
 231 : 
 232 : FINPROC INVREP;
 233 :  

© Cast3M 2003 - All rights reserved.
Disclaimer