I have a function that is like:
f(x) = c - x^2 (c = some constant positive integer, x = +ve integer >= 0)
The output of this function, goes from positive to negative as x -> +infinity.
Is there a way to directly figure out the
xwhich produces last of the positive outputs before entering in the negative domain?Also, if I use an iterative method to locate such a point, how should I find the right increment to go with so that I can reach that value of
xas quick as possible? Right now, I am initializingx = floor(sqrt(c) * 0.9)and using dumb+1increments toxto reach the point wheref(x)enters the negative range.An observation:
f(x)seems to behave in a weird way forc > 10e40(i.e. when we initiatex = floor(sqrt(c) * 0.9)it gives out a value way too far from the desired point) and you can imagine how long the +1 increment takes to get to the desired output with such large values ofc.. ;-(.
Please help. thanks.
The mathematical answer is that given by Jasper Loy. The computational solution may be better done the following way in order to avoid the detour via floating point numbers and surprises caused by conversion. I assume that you have integer operations $+,-,\cdot,/$ available (where $/$ is integer division as usual in programming) that can deal with integers in the range $0,\ldots,c$. The following algorithm corresonds to Heron's method of computing square roots (assuming $c>2$ perhaps)