*FLOAT64 @% = 12 : REM Column width PRINT "Function Range L-Rect R-Rect M-Rect Trapeze Simpson" FOR func% = 1 TO 4 READ x$, l, h, s% PRINT x$, ; l " - " ; h, FNlrect(x$, l, h, s%) FNrrect(x$, l, h, s%) ; PRINT FNmrect(x$, l, h, s%) FNtrapeze(x$, l, h, s%) FNsimpson(x$, l, h, s%) NEXT END DATA "x^3", 0, 1, 100 DATA "1/x", 1, 100, 1000 DATA "x", 0, 5000, 5000000 DATA "x", 0, 6000, 6000000 DEF FNlrect(x$, a, b, n%) LOCAL i%, d, s, x d = (b - a) / n% x = a FOR i% = 1 TO n% s += d * EVAL(x$) x += d NEXT = s DEF FNrrect(x$, a, b, n%) LOCAL i%, d, s, x d = (b - a) / n% x = a FOR i% = 1 TO n% x += d s += d * EVAL(x$) NEXT = s DEF FNmrect(x$, a, b, n%) LOCAL i%, d, s, x d = (b - a) / n% x = a FOR i% = 1 TO n% x += d/2 s += d * EVAL(x$) x += d/2 NEXT = s DEF FNtrapeze(x$, a, b, n%) LOCAL i%, d, f, s, x d = (b - a) / n% x = b : f = EVAL(x$) x = a : s = d * (f + EVAL(x$)) / 2 FOR i% = 1 TO n%-1 x += d s += d * EVAL(x$) NEXT = s DEF FNsimpson(x$, a, b, n%) LOCAL i%, d, f, s1, s2, x d = (b - a) / n% x = b : f = EVAL(x$) x = a + d/2 : s1 = EVAL(x$) FOR i% = 1 TO n%-1 x += d/2 s2 += EVAL(x$) x += d/2 s1 += EVAL(x$) NEXT x = a = (d / 6) * (f + EVAL(x$) + 4 * s1 + 2 * s2)