10X$=SYS(CHR$(7)):R$=LEFT(X$,7):L$=RIGHT(X$,8) 20 REM 30 REM NORMAL DISTRIBUTION 40 REM 50 REM**************************************************************** 60 DIM #1,A1(111),A2(111),A3(111) 70 X=0 80 OPEN R$ AS FILE 1 110 I3=A1(2) 120 REM 130 REM I3=8 MEANS THAT ENTRY IS VIA EXPECTED UTILITY 140 REM 150 IF I3=8 THEN 2620 160A1(0)=14 170M0=A2(0):S0=A2(1) 180 L9=0 190 REM 200 REM S0=0 MEANS THAT THE PARAMETERS HAVE NOT BEEN PASSED 210 REM 220 IF S0=0 THEN 240 230 L9=1 240 PRINT L$ 250 REM 260 PRINT " EVALUATION OF A NORMAL DISTRIBUTION" 270 REM 280 PRINT 290 PRINT "THIS MODULE ALLOWS YOU TO EXAMINE THE CHARACTERISTICS OF A" 300 PRINT "NORMAL DISTRIBUTION." 310 GOTO 450 320 PRINT L$ 330 PRINT "TYPE THE NUMBER OF THE OPTION YOU WANT." 340 PRINT " 1. PERCENTILES" 350 PRINT " 2. HIGHEST DENSITY REGIONS" 360 PRINT " 3. PROBABILITY LESS THAN SOME VALUE" 370 PRINT " 4. PROBABILITY BETWEEN TWO VALUES" 380 PRINT " 5. EXIT MODULE" 390 GOSUB 9000 400 IF O1=5 THEN 2450 410 I=O1 420 GOTO 700 430 PRINT "REENTER. INPUT MUST BE 1,2,3,4 OR 5." 440 GOTO 390 450 PRINT 460 REM 470 REM L9=0 IF THE PARAMETERS WERE NOT PASSED 480 REM 490 IF L9=0 THEN 550 500 GOTO 320 510 REM *********************************************************** 520 REM INPUT PARAMETERS ROUTINE 530 REM 540 REM 550 PRINT "INPUT THE MEAN OF THE NORMAL DISTRIBUTION."; 560 L9=1 570 GOSUB 9000 580 M0=O1 590 PRINT 600 PRINT "INPUT THE STANDARD DEVIATION."; 610 GOSUB 9000 620 IF O1>0 THEN 650 630 PRINT "REENTER. STANDARD DEVIATION MUST BE POSITIVE." 640 GOTO 590 650 S0=O1 660 GOTO 320 670 REM 680 REM END OF THE INPUT ROUTINE 690 REM ***************************************************** 700 REM 710 IF I=1 THEN 790 720 IF I=2 THEN 1520 730 IF I=3 THEN 1780 740 IF I=4 THEN 2000 750 GOTO 430 760 REM ******************************************************************** 770 REM 780 REM 790 PRINT L$ 800 PRINT " OPTION 1: PERCENTILES" 810 PRINT 820 PRINT "TO EXIT ROUTINE TYPE '0' WHEN ASKED FOR INPUT." 830 PRINT "INPUT PERCENTILE AS NUMBER FROM 1 THROUGH 99." 840 GOSUB 2510 850 PRINT 860 PRINT "INPUT PERCENTILE"; 870 GOSUB 9000 880 IF O1=0 THEN 2320 890 IF O1<1 THEN 910 900 IF O1 <= 99 THEN 930 910 PRINT "REENTER. INPUT MUST BE '0' OR ACCEPTABLE PERCENTILE VALUE." 920 GOTO 860 930 GOSUB 1010 950 IF O1>50 THEN 970 960 Y3=-Y3 970A$=" ##.#% = ##########.##" 971 PRINT USING A$,O1,M0+Y3*S0 980 GOTO 850 990 Y3=0 1000 GOTO 970 1010 IF O1>50 THEN 1050 1020 IF 50=O1 THEN 990 1030 P0=100-O1 1040 GOTO 1070 1050 P0=O1 1060 GOTO 1090 1070 E2=2.6 1080 IF P0>99 THEN 1240 1090 E2=2.4 1100 IF P0>95 THEN 1240 1110 E2=1.7 1120 IF P0>90 THEN 1260 1130 E2=1.3 1140 IF P0>80 THEN 1280 1150 E2=.86 1160 IF P0>70 THEN 1300 1170 E2=.55 1180 IF P0>60 THEN 1320 1190 E2=.28 1200 IF P0>55 THEN 1340 1210 E2=.14 1220 E1=0 1230 GOTO 1360 1240 E1=1.6 1250 GOTO 1360 1260 E1=1.2 1270 GOTO 1360 1280 E1=.8 1290 GOTO 1360 1300 E1=.5 1310 GOTO 1360 1320 E1=.2 1330 GOTO 1360 1340 E1=.1 1350 GOTO 1360 1360 P0=P0/100 1370 Y3=.5*(E1+E2) 1380 GOSUB 8000 1390 IF ABS(P-P0)>.0001 THEN 1410 1400 RETURN 1410 IF P>P0 THEN 1440 1420 E1=Y3 1430 GOTO 1370 1440 E2=Y3 1450 GOTO 1370 1460 REM 1470 REM END OF THE PERCENTILES ROUTINE 1480 REM 1490 REM ************************************************************ 1500 REM 1510 REM 1520 PRINT L$ 1530 PRINT " OPTION 2: HIGHEST DENSITY REGIONS" 1540 PRINT 1550 PRINT "TO EXIT ROUTINE TYPE '0' WHEN ASKED FOR INPUT." 1570 PRINT "INPUT P% AS NUMBER FROM 1 THROUGH 99." 1580 GOSUB 2510 1590 PRINT 1600 PRINT "INPUT P%"; 1610 GOSUB 9000 1620 IF O1=0 THEN 2320 1630 IF O1<1 THEN 1700 1640 IF O1>99 THEN 1700 1650 P0=50+O1/2 1660 GOSUB 1070 1670A$=" ##.#% HDR = ########.## TO #########.##" 1671 PRINT USING A$ ,O1,M0-Y3*S0,M0+Y3*S0 1690 GOTO 1600 1700 PRINT "REENTER. INPUT MUST BE '0' OR ACCEPTABLE P% VALUE." 1710 GOTO 1600 1720 REM 1730 REM END OF HDR ROUTIN 1740 REM 1750 REM****************************************************** 1760 REM 1770 REM 1780 PRINT L$ 1790 PRINT " OPTION 3: PROBAILITY LESS THAN SOME VALUE" 1800 PRINT 1810 PRINT "TO EXIT ROUTINE TYPE '7777' WHEN ASKED FOR INPUT." 1820 GOSUB 2510 1830 PRINT 1840 PRINT "INPUT VALUE"; 1850 GOSUB 9000 1860 IF O1=7777 THEN 2320 1870 Y3=(O1-M0)/S0 1880 GOSUB 8000 1890A$=" PROB( X <########.## )= #.##" 1891 PRINT USING A$ ,O1,P 1900A$=" PROB( X >########.## )= #.##" 1901 PRINT USING A$ ,O1,1-P 1930 GOTO 1830 1940 REM 1950 REM END OF LESS THAN ROUTINE 1960 REM 1970 REM ************************************************************ 1980 REM 1990 REM 2000 PRINT L$ 2010 PRINT " OPTION 4: PROBABILITY BETWEEN TWO VALUES" 2020 PRINT 2030 PRINT "TO EXIT ROUTINE TYPE '0'S WHEN ASKED FOR INPUT." 2040 GOSUB 2510 2050 PRINT 2060 PRINT "INPUT SMALLER VALUE"; 2070 GOSUB 9000 2080 X2=O1 2090 PRINT "INPUT LARGER VALUE"; 2100 GOSUB 9000 2110 IF X2=0 THEN 2120 2115 GOTO 2130 2120 IF O1=0 THEN 2320 2130 IF O1>X2 THEN 2160 2140 PRINT "REENTER. SECOND VALUE MUST BE LARGER THAN FIRST." 2150 GOTO 2050 2160 Y3=(O1-M0)/S0 2170 GOSUB 8000 2180 P0=P 2190 Y3=(X2-M0)/S0 2200 GOSUB 8000 2210 P0=P0-P 2220A$=" PROB(#########.## < X <#########.##)=#.##" 2221 PRINT USING A$ ,X2,O1,P0 2240 GOTO 2060 2250 REM 2260 REM END OF THE BETWEEN TWO VALUES ROUTINE 2270 REM 2280 REM *********************************************************** 2290 REM 2300 REM SELECT OPTION AFTER COMPLETING ROUTINE 2310 REM 2320 PRINT L$ 2330 PRINT "TYPE THE NUMBER OF THE OPTION YOU WANT." 2340 PRINT " 1. FURTHER EVALUATE THIS DISTRIBUTION" 2350 PRINT " 2. EVALUATE ANOTHER NORMAL DISTRIBUTION" 2360 PRINT " 3. EXIT MODULE" 2370 GOSUB 9000 2380 IF O1=3 THEN 2450 2390 IF O1=2 THEN 2430 2400 IF O1=1 THEN 2460 2410 PRINT "REENTER. INPUT MUST BE 1,2 OR 3." 2420 GOTO 2370 2430 L9=0 2434 GOTO 450 2440 GOTO 2460 2450 CLOSE 1: CHAIN "RSTRT" 2460REM 2462 GOTO 320 2470 REM 2480 REM END OF SELECT OPTION ROUTINE 2490 REM 2500 REM ************************************************************** 2510A$="--------------------------------------------------------------" 2511PRINT A$ 2530 PRINT " NORMAL DISTRIBUTION" 2540A$=" MEAN=########.## STANDARD DEVIATION =#######.##" 2541 PRINT USING A$ ,M0,S0 2560A$="---------------------------------------------------------------" 2561PRINT A$ 2570 RETURN 2580 REM ************************************************************** 2590 REM 2600 REM EXPECTED UTILITY 2610 REM 2620 DIM M(9),U(9),P(3) 2630 FOR I=1 TO 9:M(I)=A3(I-1):NEXT I 2632 FOR I=1 TO 9:U(I)=A3(I+8):NEXT I 2634FOR I=1 TO 3:P(I)=A3(I+17):NEXT I 2640 M0=P(1) 2650 S0=P(2) 2660 U9=0 2665 U0=0 2670 K5=2 2680 Y3=(M(1)-M0)/S0 2682 IF Y3<4 THEN 2690 2683 PRINT "THE SMALLEST POINT FOR WHICH YOUR UTILITY FUNCTION IS DEFINED" 2684 PRINT "IS MORE THAN 4 STANDARD DEVIATIONS GREATER THAN THE MEAN" 2685 PRINT "OF THE DISTRIBUTION WITH RESPECT TO WHICH YOU ARE TAKING" 2686 PRINT "THE EXPECTATION. IF YOU ASSUME THAT POINTS SMALLER THAN" 2687 PRINT "YOUR SMALLEST POINT HAVE UTILITY 0 THEN THE EXPECTED UTILITY" 2688 PRINT "IS 0." 2689 GOTO 2920 2690 GOSUB 8000 2700 K8=P 2710 P0=P 2715 Y3=(M(9)-M0)/S0 2716 IF Y3>-4THEN2730 2720 PRINT 2723 PRINT "THE LARGEST POINT FOR WHICH YOUR UTILITY FUNCTION IS DEFINED" 2724 PRINT "IS MORE THAN 4 STANDARD DEVIATIONS LESS THAN THE MEAN OF THE" 2725 PRINT "EXPECTING DISTRIBUTION. IF YOU ASSUME THAT ALL POINTS LARGER" 2726 PRINT "THAN YOUR LARGEST POINT HAVE UTILITY 1 THEN THE EXPECTED" 2728 PRINT "UTILITY IS 1." 2729GOTO2920 2730 GOSUB 8000 2740 K8=K8+1-P 2742 PRINT "NORMAL DISTRIBUTION" 2744 PRINT 2750 PRINT 2752 PRINT "MEAN=";M0;" STANDARD DEVIATION=";S0 2754 PRINT 2755 PRINT"THE EXPECTED UTILITY IS BEING COMPUTED." 2756PRINT 2760 FOR I7=M(1) TO M(9) STEP (M(9)-M(1))/110 2770 I=I7 2780 IF M(1)=I7 THEN 2870 2790 IF I>M(K5) THEN 2960 2800 Y3=(I-M0)/S0 2810 GOSUB 8000 2820 U1=(I-M(K5-1))*((U(K5)-U(K5-1))/(M(K5)-M(K5-1))) 2830 U1=U(K5-1)+U1 2835 U2=(U1+U0)/2 2840 U9=U9+U2*(P-P0) 2850 P0=P 2855 U0=U1 2870 NEXT I7 2875 IF K8<=0THEN 2910 2885 U9=U9/(1-K8) 2890 PRINT 2910A$="THE EXPECTED UTILITY IS #.##." 2911 PRINT USING A$ ,U9 2920 PRINT 2922 DIM V(1) 2923 V(1)=1 2924 A3(0)=V(1) 2925 FOR I=1 TO 9:A3(I)=M(I):NEXT I 2926 FOR I=1 TO 9:A3(I+9)=M(I):NEXT I 2928 FOR I=1 TO 3:A3(I+18)=P(I):NEXT I 2930 PRINT "WHEN YOU ARE READY TO CONTINUE TYPE '1'."; 2940 GOSUB 9000 2950 CLOSE 1: CHAIN "CMODP" 2960 K5=K5+1 2970 GOTO 2810 7900 REM ************************************************************ 7910 REM 7920 REM APPENDED GOSUBS FOLLOW 7930 REM 7940 REM 8000 REM ********************************************************** 8001 REM ROUTINE CALCULATES THE CDF FOR NORMAL DISTRIBUTION 8002 REM INPUT Y3 8003 REM OUTPUT P 8004 REM 8005 Y4=ABS(Y3) 8010 X1=X 8015 X=Y3 8020 T=1/(1+.231642*Y4) 8021IF X*X/2<80 THEN 8025 8022 D=0 8023 GOTO 8030 8025 D=.398942*EXP(-X*X/2) 8030 C1=1.33027 8035 C2=1.82126 8040 C3=1.78148 8045 C4=.356564 8050 C5=.319382 8055 P=1-D*T*((((C1*T-C2)*T+C3)*T-C4)*T+C5) 8060 IF X >= 0 THEN 8070 8065 P=1-P 8070 X=X1 8075 RETURN 8076 REM 8077 REM END OF NORMAL CDF ROUTINE 8078 REM ********************************************************** 9000 REM--SUBROUTINE THAT DETERMINES IF RESTART HAS BEEN REQUESTED. 9005 INPUT O1 9015 IF O1=-9999 THEN 9025 9020 RETURN 9025 CLOSE 1: CHAIN "RSTRT" 9035 REM*************END ROUTINE 9999 END