(Not a mathematician, I'm sure this has some flaws...) Similar to your original idea, but make JSL do the work. I'm pretty sure Minimize has seen some improvements since JMP 10. https://community.jmp.com/t5/JMPer-Cable/Minimize-and-Maximize-Functions-in-JSL/ba-p/36355/jump-to/f...
a = -2;
b = -3;
c = 5;
d = 1;
f = Function( {x},
a + b * x + c * x * x + d * x * x * x
);
lo = -1e99;
hi = 1e99;
vlo = f( lo );
vhi = f( hi );
v = 1;
nn=0;
While( (abs(v)>1e-15) ,
test = (lo + hi) / 2;
v = f( test );
If( v > 0,
If(
vhi > 0, hi = test,
vlo > 0, lo = test
),
If(
vhi < 0, hi = test,
vlo < 0, lo = test
)
);
);
New Window( "Example",
Graph Box(
X Scale( -10, 10 ),
Y Scale( -30, 30 ),
Pen Color( "red" );
Y Function( f(x), x );
pencolor("black");
V Line( test );
hline(0);
)
);
Found a zero
If the coefficients on the ^2 and ^3 terms are too big, you'll need to make the -1e99 to 1e99 interval smaller.
Craige