At first this is a mathematical issue: this function isnt linear and has other dificulties. So D&C isnt a solution but part of the problem :-O
If your are looking for a 4-digit solution, I would ran a big loop like this:
Meta code:
float results[10000];
int n = 0;
for( float step = 0; i < 1; i+=0.00001 )
{
results[n] = callProblem( i );
}
some divide and conquer approach
float x = 0;
float diff = 1;while( )
{
result = callProblem(x);
if( result > 0 )
{
x -= diff;
diff = diff/2;
result = callProblem(x);
}
else
{
x += diff;
diff = diff/2;
result = callProblem(x);
}
}