home *** CD-ROM | disk | FTP | other *** search
/ c't freeware shareware 1999 February / CT_SW9902.ISO / pc / software / wissen / daten / gnuplot.hqx / gnuplot.2.0b4 / Scripts / demo / prob.dem < prev    next >
Text File  |  1997-05-03  |  22KB  |  776 lines

  1. #
  2. # $Id: prob.dem,v 1.4 1996/12/09 15:58:09 drd Exp $
  3. #
  4. # Demo Statistical Functions version 2.3
  5. #
  6. # Permission granted to distribute freely for non-commercial purposes only
  7. #
  8. # Copyright (c) 1991, 1992 Jos van der Woude, jvdwoude@hut.nl
  9.  
  10. print "                   Statistical Library Demo, version 2.3"
  11. print "\n          Copyright (c) 1991, 1992, Jos van de Woude, jvdwoude@hut.nl"
  12. print "Permission granted to distribute freely for non-commercial purposes only"
  13. print "\n\n\n\n\n\n\n"
  14. print "NOTE: contains 54 plots and consequently takes a lot of time to run"
  15. print "                      Press Ctrl-C to exit right now"
  16. pause -1 "                      Press Return to start demo ..."
  17.  
  18. load "stat.inc"
  19.  
  20. # Arcsinus PDF and CDF
  21. r = 2.0
  22. mu = 0.0
  23. sigma = r / sqrt2
  24. xmin = -r
  25. xmax = r
  26. ymax = 1.1 * r #No mode
  27. set nokey
  28. set zeroaxis
  29. set xrange [xmin : xmax]
  30. set yrange [0 : ymax]
  31. set xlabel "x ->"
  32. set ylabel "probability density ->"
  33. set xtics
  34. set ytics
  35. set format x "%.1f"
  36. set format y "%.1f"
  37. set sample 200
  38. set title "arcsin PDF with r = 2.0"
  39. plot arcsin(x)
  40. pause -1 "Hit return to continue"
  41. set title "arcsin CDF with r = 2.0"
  42. set yrange [0 : 1.1]
  43. plot carcsin(x)
  44. pause -1 "Hit return to continue"
  45.  
  46. # Beta PDF and CDF
  47. #p = 0.5; q = 0.7
  48. #mu = p / (p + q)
  49. #sigma = sqrt(p**q) / ((p + q ) * sqrt(p + q + 1.0))
  50. #xmin = 0.0
  51. #xmax = 1.0
  52. #Mode of beta PDF used
  53. #ymax = (p < 1.0 || q < 1.0) ? 2.0 : 1.1 * beta((p - 1.0)/(p + q - 2.0))
  54. set key
  55. set zeroaxis
  56. #set xrange [xmin : xmax]
  57. #set yrange [0 : ymax]
  58. set xlabel "x ->"
  59. set ylabel "probability density ->"
  60. set xtics
  61. set ytics
  62. set format x "%.1f"
  63. set format y "%.1f"
  64. set sample 100
  65. set title "beta PDF"
  66. plot [0:1] [0:5] p = 0.5, q = 0.7, beta(x) title "p = 0.5, q = 0.7", \
  67.                  p = 5.0, q = 3.0, beta(x) title "p = 5.0, q = 3.0", \
  68.                  p = 0.5, q = 2.5, beta(x) title "p = 0.5, q = 2.5"
  69. pause -1 "Hit return to continue"
  70. set title "incomplete beta CDF"
  71. plot [0:1] [0:1.1] p = 0.5, q = 0.7, cbeta(x) title "p = 0.5, q = 0.7", \
  72.                    p = 5.0, q = 3.0, cbeta(x) title "p = 5.0, q = 3.0", \
  73.                    p = 0.5, q = 2.5, cbeta(x) title "p = 0.5, q = 2.5"
  74. pause -1 "Hit return to continue"
  75.  
  76. # Binomial PDF and CDF
  77. n = 25; p = 0.15
  78. mu = n * p
  79. sigma = sqrt(n * p * (1.0 - p))
  80. xmin = int(mu - 4.0 * sigma)
  81. xmin = xmin < 0 ? 0 : xmin
  82. xmax = int(mu + 4.0 * sigma)
  83. ymax = 1.1 * binom(mu) #Mode of normal PDF used
  84. xinc = ceil((xmax - xmin) / 10)
  85. xinc = xinc > 1 ? xinc : 1
  86. set nokey
  87. set nozeroaxis
  88. set xrange [xmin : xmax]
  89. set yrange [0 : ymax]
  90. set xlabel "k ->"
  91. set ylabel "probability density ->"
  92. set xtics xmin + 0.499, xinc, xmax
  93. set ytics 0, ymax / 10, ymax
  94. set format x "%2.0f"
  95. set format y "%3.2f"
  96. set sample (xmax - xmin) + 1
  97. set title "binomial PDF with n = 25, p = 0.15"
  98. plot binom(x) with steps
  99. pause -1 "Hit return to continue"
  100. set title "binomial CDF with n = 25, p = 0.15"
  101. set yrange [0 : 1.1]
  102. set ytics 0, 1.1 / 10.5, 1.1
  103. plot cbinom(x) with steps
  104. pause -1 "Hit return to continue"
  105.  
  106. # Cauchy PDF and CDF
  107. #a = 0.0; b = 2.0
  108. #cauchy PDF has no moments
  109. #xmin = a - 4.0 * b
  110. #xmax = a + 4.0 * b
  111. #ymax = 1.1 * cauchy(a) #Mode of cauchy PDF used
  112. set key
  113. set zeroaxis
  114. #set xrange [xmin : xmax]
  115. #set yrange [0 : ymax]
  116. set xlabel "x ->"
  117. set ylabel "probability density ->"
  118. set xtics
  119. set ytics
  120. set format x "%.1f"
  121. set format y "%.2f"
  122. set sample 100
  123. set title "cauchy PDF"
  124. plot [-15:15] [0:0.2] a = 0, b = 2, cauchy(x) title "a = 0, b = 2", \
  125.                       a = 0, b = 4, cauchy(x) title "a = 0, b = 4"
  126. pause -1 "Hit return to continue"
  127. set title "cauchy CDF"
  128. plot [-30:30] [0:1.1] a = 0, b = 2, ccauchy(x) title "a = 0, b = 2", \
  129.                       a = 0, b = 4, ccauchy(x) title "a = 0, b = 4"
  130. pause -1 "Hit return to continue"
  131.  
  132. # Chi-square PDF and CDF
  133. #df1 = 4.0
  134. #mu = df1
  135. #sigma = sqrt(2.0 * df1)
  136. #xmin = mu - 4.0 * sigma
  137. #xmin = xmin < 0 ? 0 : xmin
  138. #xmax = mu + 4.0 * sigma
  139. #ymax = 1.1 * (df1 > 2.0 ? chi(df1 - 2.0) : 1.0) #Mode of chi PDF used
  140. set key
  141. set zeroaxis
  142. #set xrange [xmin : xmax]
  143. #set yrange [0 : ymax]
  144. set xlabel "x ->"
  145. set ylabel "probability density ->"
  146. set xtics
  147. set ytics
  148. set format x "%.1f"
  149. set format y "%.2f"
  150. set sample 100
  151. set title "chi-square PDF"
  152. plot [0:15] [0:0.2] df1 = 4, chi(x) title "df = 4", \
  153.                     df1 = 6, chi(x) title "df = 6", \
  154.                     df1 = 8, chi(x) title "df = 8"
  155. pause -1 "Hit return to continue"
  156. set title "chi-square CDF"
  157. plot [0:15] [0:1.1] df1 = 4, cchi(x) title "df = 4", \
  158.                     df1 = 6, cchi(x) title "df = 6", \
  159.                     df1 = 8, cchi(x) title "df = 8"
  160. pause -1 "Hit return to continue"
  161.  
  162. # Erlang PDF and CDF
  163. #lambda = 1.0; n = 2.0
  164. #mu = n / lambda
  165. #sigma = sqrt(n) / lambda
  166. #xmin = mu - 4.0 * sigma
  167. #xmin = xmin < 0 ? 0 : xmin
  168. #xmax = mu + 4.0 * sigma
  169. #ymax = n < 2.0 ? 1.0 : 1.1 * erlang((n - 1.0) / lambda) #Mode of erlang PDF used
  170. set key
  171. set zeroaxis
  172. #set xrange [xmin : xmax]
  173. #set yrange [0 : ymax]
  174. set xlabel "x ->"
  175. set ylabel "probability density ->"
  176. set xtics
  177. set ytics
  178. set format x "%.1f"
  179. set format y "%.1f"
  180. set sample 100
  181. set title "erlang PDF"
  182. plot [0:10] [0:1] lambda = 1, n = 2, erlang(x) title "lambda = 1, n = 2", \
  183.                   lambda = 2, n = 2, erlang(x) title "lambda = 2, n = 2"
  184. pause -1 "Hit return to continue"
  185. set title "erlang CDF"
  186. plot [0:10] [0:1.1] lambda = 1, n = 2, cerlang(x) title "lambda = 1, n = 2", \
  187.                     lambda = 2, n = 2, cerlang(x) title "lambda = 2, n = 2"
  188. pause -1 "Hit return to continue"
  189.  
  190. # Thanks to mrb2j@kelvin.seas.Virginia.EDU for telling us about this.
  191. # Extreme (Gumbel extreme value) PDF and CDF
  192. #alpha = 0.5; u = 1.0
  193. #mu = u + (0.577215665/alpha)   # Euler's constant
  194. #sigma = pi/(sqrt(6.0)*alpha)
  195. #xmin = mu - 4.0 * sigma
  196. #xmax = mu + 4.0 * sigma
  197. #ymax = 1.1 * extreme(u) #Mode of extreme PDF used
  198. set key
  199. set zeroaxis
  200. #set xrange [xmin : xmax]
  201. #set yrange [0 : ymax]
  202. set xlabel "x ->"
  203. set ylabel "probability density ->"
  204. set xtics
  205. set ytics
  206. set format x "%.1f"
  207. set format y "%.2f"
  208. set sample 100
  209. set title "extreme PDF"
  210. plot [-10:10] [0:0.4] alpha = 0.5, u = 1.0, extreme(x) title "alpha = 0.5, u = 1.0", \
  211.                       alpha = 1.0, u = 0.0, extreme(x) title "alpha = 1.0, u = 0.0"
  212. pause -1 "Hit return to continue"
  213. set title "extreme CDF"
  214. plot [-10:10] [0:1.1] alpha = 0.5, u = 1.0, cextreme(x) title "alpha = 0.5, u = 1.0", \
  215.                       alpha = 1.0, u = 0.0, cextreme(x) title "alpha = 1.0, u = 0.0"
  216. pause -1 "Hit return to continue"
  217.  
  218. # F PDF and CDF
  219. #df1 = 5.0; df2 = 9.0
  220. #mu = df2 < 2.0 ? 1.0 : df2 / (df2 - 2.0)
  221. #sigma = df2 < 4.0 ? 1.0 : mu * sqrt(2.0 * (df1 + df2 - 2.0) / (df1 * (df2 - 4.0)))
  222. #xmin = mu - 4.0 * sigma
  223. #xmin = xmin < 0 ? 0 : xmin
  224. #xmax = mu + 4.0 * sigma
  225. #Mode of F PDF used
  226. #ymax = df1 < 3.0 ? 1.0 : 1.1 * f((df1 / 2.0 - 1.0) / (df1 / 2.0 + df1 / df2))
  227. set key
  228. set zeroaxis
  229. #set xrange [xmin : xmax]
  230. #set yrange [0 : ymax]
  231. set xlabel "x ->"
  232. set ylabel "probability density ->"
  233. set xtics
  234. set ytics
  235. set format x "%.1f"
  236. set format y "%.2f"
  237. set sample 100
  238. set title "F PDF"
  239. plot [0:4] [0:0.8] df1 = 5.0, df2 = 9.0, f(x) title "df1 = 5, df2 = 9", \
  240.                    df1 = 7.0, df2 = 6.0, f(x) title "df1 = 7, df2 = 6"
  241. pause -1 "Hit return to continue"
  242. set title "F CDF"
  243. plot [0:4] [0:1.1] df1 = 5.0, df2 = 9.0, cf(x) title "df1 = 5, df2 = 9", \
  244.                    df1 = 7.0, df2 = 6.0, cf(x) title "df1 = 7, df2 = 6"
  245. pause -1 "Hit return to continue"
  246.  
  247. # Gamma PDF and incomplete gamma CDF
  248. #rho = 0.5; lambda = 1.0
  249. #mu = rho / lambda
  250. #sigma = sqrt(rho) / lambda
  251. #xmin = mu - 4.0 * sigma
  252. #xmin = xmin < 0 ? 0 : xmin
  253. #xmax = mu + 4.0 * sigma
  254. #ymax = rho < 1.0 ? 2.0 : 1.1 * g((rho - 1.0) / lambda) #Mode of gamma pdf used
  255. set key
  256. set zeroaxis
  257. #set xrange [xmin: xmax]
  258. #set yrange [0: ymax]
  259. set xlabel "x ->"
  260. set ylabel "probability density ->"
  261. set xtics
  262. set ytics
  263. set format x "%.1f"
  264. set format y "%.1f"
  265. set sample 100
  266. set title "gamma PDF"
  267. plot [0:5] [0:1.5] rho = 0.5, lambda = 1.0, g(x) title "rho = 0.5, lambda = 1.0", \
  268.                    rho = 1.0, lambda = 1.0, g(x) title "rho = 1.0, lambda = 1.0", \
  269.                    rho = 2.0, lambda = 2.0, g(x) title "rho = 2.0, lambda = 2.0"
  270. pause -1 "Hit return to continue"
  271. set title "incomplete gamma CDF (lambda == 1.0)"
  272. plot [0:5] [0:1.1] rho = 0.5, cgamma(x) title "rho = 0.5", \
  273.                    rho = 1.0, cgamma(x) title "rho = 1.0", \
  274.                    rho = 2.0, cgamma(x) title "rho = 2.0"
  275. pause -1 "Hit return to continue"
  276.  
  277. # Geometric PDF and CDF
  278. p = 0.4
  279. mu = (1.0 - p) / p
  280. sigma = sqrt(mu / p)
  281. xmin = int(mu - 4.0 * sigma)
  282. xmin = xmin < 0 ? 0 : xmin
  283. xmax = int(mu + 4.0 * sigma)
  284. xinc = ceil((xmax - xmin) / 10)
  285. xinc = xinc > 1 ? xinc : 1
  286. ymax = 1.1 * geometric(mu - 1/p) #mode of gamma PDF used
  287. set nokey
  288. set nozeroaxis
  289. set xrange [xmin : xmax]
  290. set yrange [0 : ymax]
  291. set xlabel "k ->"
  292. set ylabel "probability density ->"
  293. set xtics xmin + 0.499, xinc, xmax
  294. set ytics 0, ymax / 10, ymax
  295. set format x "%2.0f"
  296. set format y "%3.2f"
  297. set sample (xmax - xmin) + 1
  298. set title "geometric PDF with p = 0.4"
  299. plot geometric(x) with steps
  300. pause -1 "Hit return to continue"
  301. set title "geometric CDF with p = 0.4"
  302. set yrange [0 : 1.1]
  303. set ytics 0, 1.1 / 10.5, 1.1
  304. plot cgeometric(x) with steps
  305. pause -1 "Hit return to continue"
  306.  
  307. # Half normal PDF and CDF
  308. mu = sqrt2invpi
  309. sigma = 1.0
  310. s = sigma*sqrt(1.0 - 2.0/pi)
  311. xmin = 0.0
  312. xmax = mu + 4.0 * s
  313. ymax = 1.1 * halfnormal(0) #Mode of half normal PDF used
  314. set nokey
  315. set zeroaxis
  316. set xrange [xmin: xmax]
  317. set yrange [0: ymax]
  318. set xlabel "x ->"
  319. set ylabel "probability density ->"
  320. set xtics
  321. set ytics
  322. set format x "%.1f"
  323. set format y "%.1f"
  324. set sample 100
  325. set title "half normal PDF, sigma = 1.0"
  326. plot halfnormal(x)
  327. pause -1 "Hit return to continue"
  328. set title "half normal CDF, sigma = 1.0"
  329. set yrange [0:1.1]
  330. plot chalfnormal(x)
  331. pause -1 "Hit return to continue"
  332.  
  333. # Hypergeometric PDF and CPF
  334. nn = 75; mm = 25; n = 10
  335. p = real(mm) / nn
  336. mu = n * p
  337. sigma = sqrt(real(nn - n) / (nn - 1.0) * n * p * (1.0 - p))
  338. xmin = int(mu - 4.0 * sigma)
  339. xmin = xmin < 0 ? 0 : xmin
  340. xmax = int(mu + 4.0 * sigma)
  341. xinc = ceil((xmax - xmin) / 10)
  342. xinc = xinc > 1 ? xinc : 1
  343. ymax = 1.1 * hypgeo(mu) #mode of binomial PDF used
  344. set nokey
  345. set nozeroaxis
  346. set xrange [xmin : xmax]
  347. set yrange [0 : ymax]
  348. set xlabel "k ->"
  349. set ylabel "probability density ->"
  350. set xtics xmin + 0.499, xinc, xmax
  351. set ytics 0, ymax / 10, ymax
  352. set format x "%2.0f"
  353. set format y "%3.2f"
  354. set sample (xmax - xmin) + 1
  355. set title "hypergeometric PDF with nn = 75, mm = 25, n = 10"
  356. plot hypgeo(x) with steps
  357. pause -1 "Hit return to continue"
  358. set yrange [0 : 1.1]
  359. set ytics 0, 1.1 / 10.5, 1.1
  360. set title "hypergeometric CDF with nn = 75, mm = 25, n = 10"
  361. plot chypgeo(x) with steps
  362. pause -1 "Hit return to continue"
  363.  
  364. # Laplace PDF
  365. a = 0.0; b = 1.0
  366. mu = a
  367. sigma = sqrt(2.0) * b
  368. xmin = mu - 4.0 * sigma
  369. xmax = mu + 4.0 * sigma
  370. ymax = 1.1 * laplace(a) #Mode of laplace PDF used
  371. set nokey
  372. set zeroaxis
  373. set xrange [xmin: xmax]
  374. set yrange [0: ymax]
  375. set xlabel "x ->"
  376. set ylabel "probability density ->"
  377. set xtics
  378. set ytics
  379. set format x "%.1f"
  380. set format y "%.2f"
  381. set sample 100
  382. set title "laplace (or double exponential) PDF with a = 0, b = 1"
  383. plot laplace(x)
  384. pause -1 "Hit return to continue"
  385. set title "laplace (or double exponential) CDF with a = 0, b = 1"
  386. set yrange [0: 1.1]
  387. plot claplace(x)
  388. pause -1 "Hit return to continue"
  389.  
  390. # Logistic PDF and CDF
  391. a = 0.0; lambda = 2.0
  392. mu = a
  393. sigma = pi / (sqrt(3.0) * lambda)
  394. xmin = mu - 4.0 * sigma
  395. xmax = mu + 4.0 * sigma
  396. ymax = 1.1 * logistic(mu) #Mode of logistic PDF used
  397. set nokey
  398. set zeroaxis
  399. set xrange [xmin: xmax]
  400. set yrange [0: ymax]
  401. set nokey
  402. set zeroaxis
  403. set xlabel "x ->"
  404. set ylabel "probability density ->"
  405. set xtics
  406. set ytics
  407. set format x "%.1f"
  408. set format y "%.1f"
  409. set sample 100
  410. set title "logistic PDF with a = 0, lambda = 2"
  411. plot logistic(x)
  412. pause -1 "Hit return to continue"
  413. set title "logistic CDF with a = 0, lambda = 2"
  414. set yrange [0: 1.1]
  415. plot clogistic(x)
  416. pause -1 "Hit return to continue"
  417.  
  418. # Lognormal PDF and CDF
  419. mu = 1.0; sigma = 0.5
  420. m = exp(mu + 0.5 * sigma**2)
  421. s = sqrt(exp(2.0 * mu + sigma**2) * (2.0 * exp(sigma) - 1.0))
  422. xmin = m - 4.0 * s
  423. xmin = xmin < 0 ? 0 : xmin
  424. xmax = m + 4.0 * s
  425. ymax = 1.1 * lognormal(exp(mu - sigma**2)) #Mode of lognormal PDF used
  426. set nokey
  427. set zeroaxis
  428. set xrange [xmin: xmax]
  429. set yrange [0: ymax]
  430. set xlabel "x ->"
  431. set ylabel "probability density ->"
  432. set xtics
  433. set ytics
  434. set format x "%.2f"
  435. set format y "%.2f"
  436. set sample 100
  437. set title "lognormal PDF with mu = 1.0, sigma = 0.5"
  438. plot lognormal(x)
  439. pause -1 "Hit return to continue"
  440. set title "lognormal CDF with mu = 1.0, sigma = 0.5"
  441. set yrange [0: 1.1]
  442. plot clognormal(x)
  443. pause -1 "Hit return to continue"
  444.  
  445. # Maxwell PDF
  446. #a = 0.1
  447. #mu = 2.0 / sqrt(pi) / a
  448. #sigma = sqrt(3.0 - 8.0/pi) / a
  449. #xmin = mu - 4.0 * sigma
  450. #xmin = xmin < 0 ? 0 : xmin
  451. #xmax = mu + 4.0 * sigma
  452. #ymax = 1.1 * maxwell(1.0 / a) #Mode of maxwell PDF used
  453. set key
  454. set zeroaxis
  455. #set xrange[xmin: xmax]
  456. #set yrange[0: ymax]
  457. set xlabel "x ->"
  458. set ylabel "probability density ->"
  459. set xtics
  460. set ytics
  461. set format x "%.1f"
  462. set format y "%.1f"
  463. set sample 100
  464. set title "maxwell PDF"
  465. plot [0:6] [0:1.4] a = 1.5, maxwell(x) title "a = 1.5", \
  466.                    a = 1.0, maxwell(x) title "a = 1.0", \
  467.                    a = 0.5, maxwell(x) title "a = 0.5"
  468. pause -1 "Hit return to continue"
  469. set title "maxwell CDF"
  470. plot [0:6] [0:1.1] a = 1.5, cmaxwell(x) title "a = 1.5", \
  471.                    a = 1.0, cmaxwell(x) title "a = 1.0", \
  472.                    a = 0.5, cmaxwell(x) title "a = 0.5"
  473. pause -1 "Hit return to continue"
  474.  
  475. # Negative binomial PDF and CDF
  476. r = 8; p = 0.4
  477. mu = r * (1.0 - p) / p
  478. sigma = sqrt(mu / p)
  479. xmin = int(mu - 4.0 * sigma)
  480. xmin = xmin < 0 ? 0 : xmin
  481. xmax = int(mu + 4.0 * sigma)
  482. xinc = ceil((xmax - xmin) / 10)
  483. xinc = xinc > 1 ? xinc : 1
  484. ymax = 1.1 * negbin(mu - 1.0/p) #mode of gamma PDF used
  485. set nokey
  486. set nozeroaxis
  487. set xrange [xmin : xmax]
  488. set yrange [0 : ymax]
  489. set xlabel "k ->"
  490. set ylabel "probability density ->"
  491. set xtics xmin + 0.499, xinc, xmax
  492. set ytics 0, ymax / 10, ymax
  493. set format x "%2.0f"
  494. set format y "%3.2f"
  495. set sample (xmax - xmin) + 1
  496. set title "negative binomial (or pascal or polya) PDF with r = 8, p = 0.4"
  497. plot negbin(x) with steps
  498. pause -1 "Hit return to continue"
  499. set yrange [0 : 1.1]
  500. set ytics 0, 1.1 / 10.5, 1.1
  501. set title "negative binomial (or pascal or polya) CDF with r = 8, p = 0.4"
  502. plot cnegbin(x) with steps
  503. pause -1 "Hit return to continue"
  504.  
  505. # Negative exponential PDF and CDF
  506. lambda = 2.0
  507. mu = 1.0 / lambda
  508. sigma = 1.0 / lambda
  509. xmax =  mu + 4.0 * sigma
  510. ymax = lambda #No mode
  511. set nokey
  512. set zeroaxis
  513. set xrange [0: xmax]
  514. set yrange [0: ymax]
  515. set xlabel "x ->"
  516. set ylabel "probability density ->"
  517. set xtics
  518. set ytics
  519. set format x "%.2f"
  520. set format y "%.1f"
  521. set sample 100
  522. set title "negative exponential (or exponential) PDF with lambda = 2.0"
  523. plot nexp(x)
  524. pause -1 "Hit return to continue"
  525. set title "negative exponential (or exponential) CDF with lambda = 2.0"
  526. set yrange [0: 1.1]
  527. plot cnexp(x)
  528. pause -1 "Hit return to continue"
  529.  
  530. # Normal PDF and CDF
  531. #mu = 0.0; sigma = 1.0
  532. #xmin = mu - 4.0 * sigma
  533. #xmax = mu + 4.0 * sigma
  534. #ymax = 1.1 * normal(mu) #Mode of normal PDF used
  535. set key
  536. set zeroaxis
  537. #set xrange [xmin: xmax]
  538. #set yrange [0: ymax]
  539. set xlabel "x ->"
  540. set ylabel "probability density ->"
  541. set xtics
  542. set ytics
  543. set format x "%.1f"
  544. set format y "%.1f"
  545. set sample 100
  546. set title "normal (also called gauss or bell-curved) PDF"
  547. plot [-4:4] [0:1] mu = 0, sigma = 1.0, normal(x) title "mu = 0, sigma = 1.0", \
  548.                   mu = 2, sigma = 0.5, normal(x) title "mu = 2, sigma = 0.5", \
  549.                   mu = 1, sigma = 2.0, normal(x) title "mu = 1, sigma = 2.0"
  550. pause -1 "Hit return to continue"
  551. set title "normal (also called gauss or bell-curved) CDF"
  552. plot [-4:4] [0:1.1] mu = 0, sigma = 1.0, cnormal(x) title "mu = 0, sigma = 1.0", \
  553.                     mu = 2, sigma = 0.5, cnormal(x) title "mu = 2, sigma = 0.5", \
  554.                     mu = 1, sigma = 2.0, cnormal(x) title "mu = 1, sigma = 2.0"
  555. pause -1 "Hit return to continue"
  556.  
  557. # Pareto PDF and CDF
  558. a = 1.0; b = 3.0
  559. mu = a * b / (b - 1.0)
  560. sigma = a * sqrt(b) / (sqrt(b - 2.0) * (b - 1.0))
  561. xmin = mu - 4.0 * sigma
  562. xmin = xmin < 0 ? 0 : xmin
  563. xmax = mu + 4.0 * sigma
  564. ymax = 1.1 * pareto(a) #mode of pareto PDF used
  565. set nokey
  566. set zeroaxis
  567. set xrange [xmin: xmax]
  568. set yrange [0: ymax]
  569. set xlabel "x ->"
  570. set ylabel "probability density ->"
  571. set xtics
  572. set ytics
  573. set format x "%.1f"
  574. set format y "%.1f"
  575. set sample 500
  576. set title "pareto PDF with a = 1, b = 3"
  577. plot pareto(x)
  578. pause -1 "Hit return to continue"
  579. set title "pareto CDF with a = 1, b = 3"
  580. set yrange [0: 1.1]
  581. plot cpareto(x)
  582. pause -1 "Hit return to continue"
  583.  
  584. # Poisson PDF and CDF
  585. mu = 4.0
  586. sigma = sqrt(mu)
  587. xmin = int(mu - 4.0 * sigma)
  588. xmin = xmin < 0 ? 0 : xmin
  589. xmax = int(mu + 4.0 * sigma)
  590. xinc = ceil((xmax - xmin) / 10)
  591. xinc = xinc > 1 ? xinc : 1
  592. ymax = 1.1 * poisson(mu) #mode of poisson PDF used
  593. set nokey
  594. set nozeroaxis
  595. set xrange [xmin : xmax]
  596. set yrange [0 : ymax]
  597. set xlabel "k ->"
  598. set ylabel "probability density ->"
  599. set xtics xmin + 0.499, xinc, xmax
  600. set ytics 0, ymax / 10, ymax
  601. set format x "%2.0f"
  602. set format y "%3.2f"
  603. set sample (xmax - xmin) + 1
  604. set title "poisson PDF with mu = 4.0"
  605. plot poisson(x) with steps
  606. pause -1 "Hit return to continue"
  607. set yrange [0 : 1.1]
  608. set ytics 0, 1.1 / 10.5, 1.1
  609. set title "poisson CDF with mu = 4.0"
  610. plot cpoisson(x) with steps
  611. pause -1 "Hit return to continue"
  612.  
  613. # Rayleigh PDF and CDF
  614. lambda = 2.0
  615. mu = 0.5 * sqrt(pi / lambda)
  616. sigma = sqrt((1.0 - pi / 4.0) / lambda)
  617. xmax = mu + 4.0 * sigma
  618. ymax = 1.1 * rayleigh(1.0 / sqrt(2.0 * lambda)) #Mode of rayleigh PDF used
  619. set nokey
  620. set zeroaxis
  621. set xrange [0: xmax]
  622. set yrange [0: ymax]
  623. set xlabel "x ->"
  624. set ylabel "probability density ->"
  625. set xtics
  626. set ytics
  627. set format x "%.2f"
  628. set format y "%.1f"
  629. set sample 100
  630. set title "rayleigh PDF with lambda = 2.0"
  631. plot rayleigh(x)
  632. pause -1 "Hit return to continue"
  633. set title "rayleigh CDF with lambda = 2.0"
  634. set yrange [0: 1.1]
  635. plot crayleigh(x)
  636. pause -1 "Hit return to continue"
  637.  
  638. # Sine PDF and CDF
  639. #a = 3.0; n = 2
  640. #mu = a / 2.0
  641. #sigma = sqrt(a * a / 3.0 * (1.0 - 3.0 / (2.0 * n * n * pi * pi)) - mu * mu)
  642. #xmin = 0.0
  643. #xmax = a
  644. #ymax = 1.1 * 2.0 / a #Mode of sine PDF used
  645. set key
  646. set zeroaxis
  647. #set xrange [xmin: xmax]
  648. #set yrange [0: ymax]
  649. set xlabel "x ->"
  650. set ylabel "probability density ->"
  651. set xtics
  652. set ytics
  653. set format x "%.2f"
  654. set format y "%.1f"
  655. set sample 100
  656. set title "sine PDF"
  657. plot [0:2] [0:1.1] a = 2.0, n = 1, sine(x) title "a = 2.0, n = 1", \
  658.                    a = 2.0, n = 3, sine(x) title "a = 2.0, n = 3"
  659. pause -1 "Hit return to continue"
  660. set title "sine CDF"
  661. plot [0:2] [0:1.1] a = 2.0, n = 1, csine(x) title "a = 2.0, n = 1", \
  662.                    a = 2.0, n = 3, csine(x) title "a = 2.0, n = 3"
  663. pause -1 "Hit return to continue"
  664.  
  665. # t PDF and CDF
  666. df1 = 3.0
  667. mu = 0.0
  668. sigma = df1 > 2.0 ? sqrt(df1 / (df1 - 2.0)) : 1.0
  669. xmin = mu - 4.0 * sigma
  670. xmax = mu + 4.0 * sigma
  671. ymax = 1.1 * t(mu) #Mode of t PDF used
  672. set nokey
  673. set zeroaxis
  674. set xrange [xmin: xmax]
  675. set yrange [0: ymax]
  676. set xlabel "x ->"
  677. set ylabel "probability density ->"
  678. set xtics
  679. set ytics
  680. set format x "%.1f"
  681. set format y "%.2f"
  682. set sample 100
  683. set title "t PDF with df1 = 3.0"
  684. plot t(x)
  685. pause -1 "Hit return to continue"
  686. set title "t CDF with df1 = 3.0"
  687. set yrange [0: 1.1]
  688. plot ct(x)
  689. pause -1 "Hit return to continue"
  690.  
  691. # Thanks to efrank@upenn5.hep.upenn.edu for telling us about this
  692. # triangular PDF and CDF
  693. m = 3.0
  694. g = 2.0
  695. mu = m
  696. sigma = g/sqrt(6.0)
  697. xmin = m - g
  698. xmax = m + g
  699. ymax = 1.1 * triangular(m) #Mode of triangular PDF used
  700. set nokey
  701. set zeroaxis
  702. set xrange [xmin: xmax]
  703. set yrange [0: ymax]
  704. set xlabel "x ->"
  705. set ylabel "probability density ->"
  706. set xtics
  707. set ytics
  708. set format x "%.1f"
  709. set format y "%.2f"
  710. set sample 100
  711. set title "triangular PDF with m = 3.0, g = 2.0"
  712. plot triangular(x)
  713. pause -1 "Hit return to continue"
  714. set title "triangular CDF with m = 3.0, g = 2.0"
  715. set yrange [0: 1.1]
  716. plot ctriangular(x)
  717. pause -1 "Hit return to continue"
  718.  
  719. # Uniform PDF and CDF
  720. a = -2.0; b= 2.0
  721. mu = (a + b) / 2.0
  722. sigma = (b - a) / sqrt(12.0)
  723. xmin = a
  724. xmax = b
  725. ymax = 1.1 * uniform(mu) #No mode
  726. set nokey
  727. set zeroaxis
  728. set xrange [xmin: xmax]
  729. set yrange [0: ymax]
  730. set xlabel "x ->"
  731. set ylabel "probability density ->"
  732. set xtics
  733. set ytics
  734. set format x "%.2f"
  735. set format y "%.2f"
  736. set sample 100
  737. set title "uniform PDF with a = -2.0, b = 2.0"
  738. plot uniform(x)
  739. pause -1 "Hit return to continue"
  740. set title "uniform CDF with a = -2.0, b = 2.0"
  741. set yrange [0: 1.1]
  742. plot cuniform(x)
  743. pause -1 "Hit return to continue"
  744.  
  745. # Weibull PDF and CDF
  746. #lambda = 1.0; n = 1.5
  747. #mu = lambda**(-1.0 / n) * gamma(1.0 / n) / n
  748. #sigma = sqrt(2.0 * lambda**(-2.0 / n) * gamma(2.0 / n) / n - mu * mu)
  749. #xmin = mu - 4.0 * sigma
  750. #xmin = xmin < 0 ? 0 : xmin
  751. #xmax = mu + 4.0 * sigma
  752. #Mode of weibull PDF used
  753. #ymax = 1.1 * (n > 1.0 ? weibull(((n - 1.0) / (lambda * n))**(1.0 / n)) : 2.0)
  754. set key
  755. set zeroaxis
  756. #set xrange [xmin : xmax]
  757. #set yrange [0: ymax]
  758. set xlabel "x ->"
  759. set ylabel "probability density ->"
  760. set xtics
  761. set ytics
  762. set format x "%.2f"
  763. set format y "%.1f"
  764. set sample 100
  765. set title "weibull PDF"
  766. plot [0:2] [0:1.5] lambda = 1, n = 0.5, weibull(x) title "lambda = 1, n = 0.5", \
  767.                    lambda = 1, n = 1.0, weibull(x) title "lambda = 1, n = 1.0", \
  768.                    lambda = 1, n = 2.0, weibull(x) title "lambda = 1, n = 2.0", \
  769.                    lambda = 3, n = 2.0, weibull(x) title "lambda = 3, n = 2.0"
  770. pause -1 "Hit return to continue"
  771. set title "weibull CDF"
  772. plot [0:3] [0:1.2] lambda = 1, n = 0.5, cweibull(x) title "lambda = 1, n = 0.5", \
  773.                    lambda = 1, n = 1.0, cweibull(x) title "lambda = 1, n = 1.0", \
  774.                    lambda = 1, n = 2.0, cweibull(x) title "lambda = 1, n = 2.0", \
  775.                    lambda = 3, n = 2.0, cweibull(x) title "lambda = 3, n = 2.0"
  776.