PROGRAM D10r3 ! Driver for routine brent ! The routine brent has been converted to a subroutine LIBRARY "brent", "mnbrak", "bessj0", "bessj1" DECLARE FUNCTION bessj0, bessj1 DIM amin(20) CLEAR LET tol = .000001 LET eql = .0001 LET nmin = 0 PRINT "Minima of the function bessj0" PRINT PRINT " min. # x bessj0(x) bessj1(x)" PRINT FOR i = 1 to 100 LET ax = i LET bx = i + 1 CALL mnbrak (ax, bx, cx, fa, fb, fc, dum) CALL brent (ax, bx, cx, dum, tol, b, xmin) IF nmin = 0 then LET amin(1) = xmin LET nmin = 1 PRINT using "#######": nmin; PRINT " "; PRINT using "----#.######": xmin, bessj0(xmin), bessj1(xmin) ELSE LET iflag = 0 FOR j = 1 to nmin IF abs(xmin - amin(j)) < eql * xmin then LET iflag = 1 NEXT j IF iflag = 0 then LET nmin = nmin + 1 LET amin(nmin) = xmin PRINT using "#######": nmin; PRINT " "; PRINT using "----#.######": xmin, bessj0(xmin), bessj1(xmin) END IF END IF NEXT i END FUNCTION func (x) LIBRARY "bessj0" DECLARE FUNCTION bessj0 LET func = bessj0(x) END FUNCTION