1  REM  ****  HP BASIC PROGRAM LIBRARY  *******************************
2  REM
3  REM        INTGRS:   COMPUTES THE AREA UNDER A CURVE
4  REM
5  REM        36699 REV  A   10/73
6  REM
7  REM  ****  CONTRIBUTED PROGRAM  ************************************
9000  REM  INTGRS--NUMERICAL INTEGRATION USING SIMPSON'S RULE
9002  DIM S[40],Q[40]
9004  READ S,F
9006  FOR I=1 TO 40
9008  READ S[I],Q[I]
9010  IF S[I]=1.E+11 THEN 9014
9012  NEXT I
9014  LET Z=I-1
9016  PRINT "X-VALUE SPACING FACTOR   ="S
9018  PRINT "Y-VALUE WEIGHTING FACTOR ="F
9020  PRINT 
9022  PRINT "X VALUE","Y VALUE","WEIGHTED Y VALUE"
9024  FOR I=1 TO Z
9026  PRINT S[I],Q[I],Q[I]*F
9028  LET S[I]=S[I]*S
9030  NEXT I
9032  PRINT 
9034  GOSUB 9058
9036  LET A=A*F
9038  LET M=M*F
9040  PRINT 
9042  PRINT "AREA UNDER CURVE ="A
9044  PRINT "MOMENT OF AREA UNDER CURVE ABOUT THE Y-AXIS ="M
9046  LET G=M/A
9048  PRINT 
9050  PRINT "CENTER OF GRAVITY OF AREA UNDER CURVE FROM Y-AXIS ="G
9052  LET R=G/(S[Z]*S)
9054  PRINT "CENTER OF GRAVITY/DISTANCE ALONG X-AXIS ="G"/"S[Z]"="R
9056  STOP 
9058  LET I=1
9060  LET A=0
9062  LET M=0
9064  LET I1=I+1
9066  LET I2=I+2
9068  IF I >= Z THEN 9096
9070  LET H=S[I1]-S[I]
9072  IF ABS((S[I2]-S[I1])-H)>1.E-08 THEN 9082
9074  LET A=A+H*(Q[I]+4*Q[I1]+Q[I2])
9076  LET M=M+H*(S[I]*Q[I]+4*S[I1]*Q[I1]+S[I2]*Q[I2])
9078  LET I=I2
9080  GOTO 9064
9082  IF ABS(H-(S[I]-S[I-1]))>1.E-08 THEN 9092
9084  LET A=A+H*(5*Q[I1]+8*Q[I]-Q[I-1])*.25
9086  LET M=M+H*(5*S[I1]*Q[I1]+8*S[I]*Q[I]-S[I-1]*Q[I-1])*.25
9088  LET I=I1
9090  GOTO 9064
9092  PRINT "IMPOSSIBLE FOR PROGRAM TO INTEGRATE X-VALUES:"S[I];S[I1];S[I2]
9094  STOP 
9096  LET A=A/3
9098  LET M=M/3
9100  RETURN 
9900  DATA 1,1.59894
9901  DATA 0,.02
9902  DATA 2,.3091
9903  DATA 4,.4882
9904  DATA 6,.7123
9905  DATA 8,.8918
9906  DATA 10,1
9907  DATA 12,.8949
9908  DATA 14,.7326
9909  DATA 16,.5096
9910  DATA 18,.2404
9911  DATA 20,.0017
9998  DATA 1.E+11,0
9999  END 
