home *** CD-ROM | disk | FTP | other *** search
/ Piper's Pit BBS/FTP: ibm 0020 - 0029 / ibm0020-0029 / ibm0028.tar / ibm0028 / MCAD254.ZIP / STAT / GEN_UNIF.MCD < prev    next >
Encoding:
Text File  |  1988-12-05  |  2.7 KB  |  121 lines

  1. .MCD 20000 0
  2. .CMD PLOTFORMAT logs=0,0 subdivs=1,1 size=5,15 type=l
  3. .CMD FORMAT  rd=d ct=10 im=i et=3 zt=15 pr=3 mass length time charge
  4. .CMD SET ORIGIN 0
  5. .CMD SET TOL 0.001000
  6. .CMD MARGIN 0
  7. .CMD LINELENGTH 78
  8. .CMD SET PRNCOLWIDTH 8
  9. .CMD SET PRNPRECISION 4
  10. .TXT 0 43 1 39 
  11. a1,38,49,37
  12. Copyright (c) 1988 by MathSoft, Inc.
  13. .TXT 1 38 1 42 
  14. a1,41,78,40
  15. /EQUATIONS TO GENERATE UNIFORM DEVIATES
  16. .TXT 1 -61 1 41 
  17. a1,40,78,39
  18. UNIFORMLY DISTRIBUTED RANDOM DEVIATES 
  19. .TXT 2 -19 3 80 
  20. a3,79,77,200
  21. This document generates a vector of uniformly distributed random deviates on 
  22. the interval [A,B].  These numbers are then plotted as a histogram together 
  23. with a plot of the uniform density on [A,B].
  24. .TXT 1 79 2 79 
  25. a2,78,78,147
  26. Define a function to generate uniformly distributed random variables on the 
  27. interval [A,B] using uniformly distributed random variables on [0,1].
  28. .EQN 3 9 1 35 
  29. UNIFORM(A,B)~(B-A)*rnd(1)+A
  30. .EQN 1 -89 1 14 
  31. NRAND~1000
  32. .TXT 0 14 5 23 
  33. a5,22,20,67
  34. <-- number of random 
  35.     deviates to be 
  36.     generated        
  37. 
  38.  
  39. .TXT 1 66 1 51 
  40. a1,50,78,49
  41. Create an array containing the uniform deviates.
  42. .EQN 1 -43 11 40 
  43. T&0&D[J,U(X){1,1,9,30,bl}@RIGHT&LEFT&BINS[J,X
  44. .EQN 2 -37 1 10 
  45. LEFT~2
  46. .TXT 0 13 2 19 
  47. a2,18,20,34
  48. <-- select left 
  49.     endpoint    
  50. .EQN 0 76 1 19 
  51. K~0;NRAND-1
  52. .EQN 3 -89 1 11 
  53. RIGHT~4
  54. .TXT 0 12 2 23 
  55. a2,22,20,35
  56. <-- select right     
  57.     endpoint
  58. .EQN 0 76 2 26 
  59. V[K~UNIFORM(LEFT,RIGHT)
  60. .EQN 3 -88 1 11 
  61. NBIN~20
  62. .TXT 0 12 2 25 
  63. a2,24,22,38
  64. <-- number of bins in  
  65.     histogram
  66. .EQN 0 115 3 18 
  67. H~(RIGHT-LEFT)/NBIN
  68. .TXT 1 -46 1 46 
  69. a1,45,78,44
  70. Establish the interval covered by each bin.
  71. .EQN 2 -37 1 12 
  72. LEFT=?
  73. .EQN 0 22 1 13 
  74. RIGHT=?
  75. .TXT 1 -66 1 15 
  76. a1,14,77,13
  77. [Ctrl][PgDn]
  78. .TXT 0 81 1 15 
  79. a1,14,78,13
  80. [Ctrl][PgDn]
  81. .TXT 2 -80 1 44 
  82. a1,43,77,42
  83. The uniform deviates are in the vector V:
  84. .EQN 2 0 201 15 
  85. V=?
  86. .TXT 0 79 1 39 
  87. a1,38,78,37
  88. Create an array containing the bins.
  89. .EQN 2 19 1 14 
  90. I~0;NBIN
  91. .EQN 2 0 2 20 
  92. BINS[I~LEFT+I*H
  93. .TXT 3 -19 2 81 
  94. a2,80,78,128
  95. Create an array containing the number of deviates falling within the intervals 
  96. specified in the BINS array, then normalize it.
  97. .EQN 4 19 3 18 
  98. D~hist(BINS,V)/(NRAND*H)
  99. .TXT 4 -17 1 15 
  100. a1,14,78,13
  101. [Ctrl][PgDn]
  102. .TXT 3 -3 1 58 
  103. a1,57,78,56
  104. Prepare an index variable for plotting the above array.
  105. .EQN 2 19 1 24 
  106. J~0;last(BINS)-1
  107. .TXT 2 -19 1 62 
  108. a1,61,78,60
  109. Move BINS array to center bars on the appropriate interval.
  110. .EQN 2 20 1 21 
  111. BINS~BINS+0.5*H
  112. .EQN 3 0 3 38 
  113. X~LEFT,LEFT+(RIGHT-LEFT)/2;RIGHT
  114. .EQN 3 0 3 52 
  115. U(x)~-1/(LEFT-RIGHT)*Φ((x≤RIGHT)*(x≥LEFT)-.5)
  116. .TXT 4 -18 1 15 
  117. a1,14,78,13
  118. [Ctrl][PgDn]
  119. .EQN 1 18 4 27 
  120. T~1.1*max({2,1}÷1/(RIGHT-LEFT)÷max(D))
  121.