Télécharger finvrepa.procedur

Retour à la liste

Numérotation des lignes :

  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 (&lt;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 (&lt;EG xi 1e-15);
  45. INVREP=LOG (2. * X);
  46. SINON;
  47. SI (&lt;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 (&lt;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 (&lt;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 (&lt;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.  
  234.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales