1  REM  ****  HP BASIC PROGRAM LIBRARY  *******************************
2  REM
3  REM        CVAREA:   AREA UNDER CURVE
4  REM
5  REM        36620 REV  A   6/73
6  REM
7  REM  ****  CONTRIBUTED PROGRAM  ************************************
50  REM CVAREA - COPYRIGHT 1971, POLYTECHNIC INSTITUTE OF BROOKLYN
100  REM AREA UNDER A CURVE-Q.J. O'CONNOR 
101  REM REVISED 8/18/70 (D. PESSEL) (COMBINATION OF DEFIN AND ACCUQ) 
102  REM IMPORTANT VARIABLES: D-# 0F SUBINTERVALS; AREA BY
103  REM RECTANGLES (F(X))-P, BY RECTANGLES (F(X+H))-Q, 
104  REM BY TRAPEZOIDS-T, BY PARABOLAS-S; C-STORES PREVIOUS 
105  REM VALUE OF S.
110  PRINT TAB(15);"AREA UNDER A CURVE - INTEGRATION"
111  PRINT 
112  PRINT "     THIS PROGRAM EVALUATES THE DEFINITE INTEGRAL OF F(X)"
113  PRINT "FROM X=A TO X=B BY FOUR METHODS OF NUMERICAL APPROXIMATION:"
114  PRINT 
115  PRINT TAB(20);"I RECTANGLES (INITIAL HEIGHT OF F(X))"
116  PRINT TAB(19);"II RECTANGLES (INITIAL HEIGHT OF F(X+H))"
117  PRINT TAB(18);"III TRAPEZOIDS"
118  PRINT TAB(19);"IV PARABOLAS (SIMPSON'S RULE)"
119  PRINT 
120  PRINT "AFTER THE PROGRAM STOPS, YOU MAY ENTER YOUR FUNCTION AS";
121  PRINT " FOLLOWS:"
122  PRINT 
123  PRINT TAB(13);"1 GO TO 200"
124  PRINT TAB(13);"300 DEF FNY(X)=...(YOUR FUNCTION OF X)..."
125  PRINT TAB(13);"RUN"
126  PRINT 
127  PRINT "FOR EXAMPLE, TO FIND THE AREA UNDER THE CURVE Y=X^3 YOU"
128  PRINT "WOULD TYPE:"
129  PRINT 
130  PRINT TAB(13);"1 GO TO 200"
131  PRINT TAB(13);"300 DEF FNY(X)=X^3"
132  PRINT TAB(13);"RUN"
133  PRINT 
134  PRINT "YOU MIGHT TRY THAT AS YOUR FIRST RUN."
135  PRINT "END EACH LINE, INCLUDING 'RUN', WITH THE 'RETURN' KEY."
150  STOP 
200  PRINT "WHAT ARE YOUR VALUES FOR A AND B (SMALLER FIRST:A,B)";
201  INPUT A,B
203  IF B >= A THEN 210
204  PRINT "A MUST BE LESS THAN B!"
205  GOTO 200
210  PRINT 
211  PRINT " NUMBER OF","I. SUM OF","II. SUM OF","III. SUM OF",
212  PRINT "IV. SUM OF"
213  PRINT "SUBINTERVALS","RECTANGLES","RECTANGLES","TRAPEZOIDS",
214  PRINT "PARABOLAS"
218  PRINT "------------","----------","----------","-----------",
219  PRINT "----------"
250  LET M=-2
260  LET S=0
300  DEF FNY()=^3
310  LET M=M+3
320  FOR N=M TO M+2
330  LET C=S
340  LET Q=0
350  LET P=0
360  LET D=2^N
365  PRINT D,
370  LET H=(B-A)/D
380  FOR I=0 TO (D-1)
390  LET P=P+H*FNY(A+I*H)
400  LET Q=Q+H*FNY(A+I*H+H)
410  NEXT I
415  PRINT P,Q,
420  LET T=(P+Q)/2
425  PRINT T,
430  LET U=FNY(A)+FNY(B)
440  FOR J=2 TO (D-2) STEP 2
450  LET U=U+2*FNY(A+J*H)
460  NEXT J
470  LET V=0
480  FOR K=1 TO (D-1) STEP 2
490  LET V=V+4*FNY(A+K*H)
500  NEXT K
510  LET S=(U+V)*(H/3)
520  PRINT S
530  NEXT N
535  IF D<64 THEN 310
540  IF ABS((C-S)/((C+S)/2))>.0001 THEN 310
550  PRINT 
560  PRINT "NOTE THAT SIMPSON'S RULE (IV) CONVERGES FASTEST."
600  PRINT 
610  PRINT "WOULD YOU LIKE TO TRY NEW VALUES FOR A AND B (1-YES, 0-NO)";
611  INPUT Q5
612  PRINT 
613  PRINT "*****"
614  PRINT 
615  IF Q5>0 THEN 200
620  PRINT "TO USE A NEW FUNCTION YOU NEED ONLY RETYPE LINE 300"
621  PRINT "AND 'RUN'.  SEE INSTRUCTIONS FOR MORE DETAILS."
622  PRINT "IF YOU ARE FINISHED, TYPE '1' AND THE 'RETURN' KEY."
650  END 
