What this calculator does
This tool finds a root of an equation — a value of x for which \(f(x) = 0\) — using a derivative-free Newton's method, also known as Steffensen's iteration. Classic Newton's method needs the analytic first derivative \(f'(x)\); this variant replaces the derivative with a forward-difference estimate built entirely from function evaluations, so you never have to differentiate by hand. It is a pure mathematical tool that works for any single-variable real function.
How to use it
Enter your function in the f(x) box using the variable x. You can use + - * / ^, parentheses, the constants pi and e, and common functions: sin, cos, tan, asin, acos, atan, sinh, cosh, tanh, exp, ln, log, log10, sqrt, abs. Trigonometric functions use radians. Set x0, the starting guess (the result depends on it), pick the maximum number of iterations n, and read off the converged root, the residual \(f(x)\), and how many iterations were needed.
The formula explained
The update rule is $$x_{n+1} = x_n - \frac{f(x_n)^2}{f\!\left(x_n + f(x_n)\right) - f(x_n)}.$$ It comes from the standard Newton step \(x_{n+1} = x_n - f(x_n)/f'(x_n)\), where \(f'(x_n)\) is approximated by a forward difference with step size \(h = f(x_n)\). Substituting that estimate gives the formula above. Near a simple root it converges roughly quadratically, like true Newton, but uses only function values.
Worked example
For \(f(x) = x - \cos(x)\) with \(x_0 = 1\): iteration 1 gives \(f(1) = 0.45970\), probe \(f(1.45970) = 1.34861\), denominator \(0.88891\), so $$x_1 = 1 - \frac{0.45970^2}{0.88891} = 0.76224.$$ The iteration quickly settles on \(x \approx 0.7390851332\), the value where \(x = \cos(x)\) (the Dottie number), with \(f(x) \approx 0\).
FAQ
Why might it not converge? A poor starting guess can diverge or land on a different root, and if the denominator \(f(x+f(x)) - f(x)\) becomes zero the method stops safely. Try another x0.
Are angles in degrees or radians? Radians, the standard math convention. Convert with x*pi/180 if needed.
Do I need the derivative? No — that is the point of this method. It estimates the slope from function values alone.