95 lines
3.7 KiB
Plaintext
95 lines
3.7 KiB
Plaintext
1000 PRINT "F(X)";" FROM";" TO";" L-Rect";" M-Rect";" R-Rect ";" Trapez";" Simpson"
|
|
1010 fromval:=0
|
|
1020 toval:=1
|
|
1030 PRINT "X^3 ";
|
|
1040 PRINT USING "#####": fromval;
|
|
1050 PRINT USING "#####": toval;
|
|
1060 PRINT USING "###.#########": numint(f1, "L", fromval, toval, 100);
|
|
1070 PRINT USING "###.#########": numint(f1, "R", fromval, toval, 100);
|
|
1080 PRINT USING "###.#########": numint(f1, "M", fromval, toval, 100);
|
|
1090 PRINT USING "###.#########": numint(f1, "T", fromval, toval, 100);
|
|
1100 PRINT USING "###.#########": numint(f1, "S", fromval, toval, 100)
|
|
1110 //
|
|
1120 fromval:=1
|
|
1130 toval:=100
|
|
1140 PRINT "1/X ";
|
|
1150 PRINT USING "#####": fromval;
|
|
1160 PRINT USING "#####": toval;
|
|
1170 PRINT USING "###.#########": numint(f2, "L", fromval, toval, 1000);
|
|
1180 PRINT USING "###.#########": numint(f2, "R", fromval, toval, 1000);
|
|
1190 PRINT USING "###.#########": numint(f2, "M", fromval, toval, 1000);
|
|
1200 PRINT USING "###.#########": numint(f2, "T", fromval, toval, 1000);
|
|
1210 PRINT USING "###.#########": numint(f2, "S", fromval, toval, 1000)
|
|
1220 fromval:=0
|
|
1230 toval:=5000
|
|
1240 PRINT "X ";
|
|
1250 PRINT USING "#####": fromval;
|
|
1260 PRINT USING "#####": toval;
|
|
1270 PRINT USING "#########.###": numint(f3, "L", fromval, toval, 5000000);
|
|
1280 PRINT USING "#########.###": numint(f3, "R", fromval, toval, 5000000);
|
|
1290 PRINT USING "#########.###": numint(f3, "M", fromval, toval, 5000000);
|
|
1300 PRINT USING "#########.###": numint(f3, "T", fromval, toval, 5000000);
|
|
1310 PRINT USING "#########.###": numint(f3, "S", fromval, toval, 5000000)
|
|
1320 //
|
|
1330 fromval:=0
|
|
1340 toval:=6000
|
|
1350 PRINT "X ";
|
|
1360 PRINT USING "#####": fromval;
|
|
1370 PRINT USING "#####": toval;
|
|
1380 PRINT USING "#########.###": numint(f3, "L", fromval, toval, 6000000);
|
|
1390 PRINT USING "#########.###": numint(f3, "R", fromval, toval, 6000000);
|
|
1400 PRINT USING "#########.###": numint(f3, "M", fromval, toval, 6000000);
|
|
1410 PRINT USING "#########.###": numint(f3, "T", fromval, toval, 6000000);
|
|
1420 PRINT USING "#########.###": numint(f3, "S", fromval, toval, 6000000)
|
|
1430 END
|
|
1440 //
|
|
1450 FUNC numint(FUNC f, type$, lbound, rbound, iters) CLOSED
|
|
1460 delta:=(rbound-lbound)/iters
|
|
1470 integral:=0
|
|
1480 CASE type$ OF
|
|
1490 WHEN "L", "T", "S"
|
|
1500 actval:=lbound
|
|
1510 WHEN "M"
|
|
1520 actval:=lbound+delta/2
|
|
1530 WHEN "R"
|
|
1540 actval:=lbound+delta
|
|
1550 OTHERWISE
|
|
1560 actval:=lbound
|
|
1570 ENDCASE
|
|
1580 FOR n:=0 TO iters-1 DO
|
|
1590 CASE type$ OF
|
|
1600 WHEN "L", "M", "R"
|
|
1610 integral:+f(actval+n*delta)*delta
|
|
1620 WHEN "T"
|
|
1630 integral:+delta*(f(actval+n*delta)+f(actval+(n+1)*delta))/2
|
|
1640 WHEN "S"
|
|
1650 IF n=0 THEN
|
|
1660 sum1:=f(lbound+delta/2)
|
|
1670 sum2:=0
|
|
1680 ELSE
|
|
1690 sum1:+f(actval+n*delta+delta/2)
|
|
1700 sum2:+f(actval+n*delta)
|
|
1710 ENDIF
|
|
1720 OTHERWISE
|
|
1730 integral:=0
|
|
1740 ENDCASE
|
|
1750 ENDFOR
|
|
1760 IF type$="S" THEN
|
|
1770 RETURN (delta/6)*(f(lbound)+f(rbound)+4*sum1+2*sum2)
|
|
1780 ELSE
|
|
1790 RETURN integral
|
|
1800 ENDIF
|
|
1810 ENDFUNC
|
|
1820 //
|
|
1830 FUNC f1(x) CLOSED
|
|
1840 RETURN x^3
|
|
1850 ENDFUNC
|
|
1860 //
|
|
1870 FUNC f2(x) CLOSED
|
|
1880 RETURN 1/x
|
|
1890 ENDFUNC
|
|
1900 //
|
|
1910 FUNC f3(x) CLOSED
|
|
1920 RETURN x
|
|
1930 ENDFUNC
|