72 lines
1.6 KiB
Plaintext
72 lines
1.6 KiB
Plaintext
*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)
|