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