ForHosting KIT · Developer Utilities

Steffensen method root finder calculator

This Steffensen method root finder approximates a zero of a real-valued function from one initial guess, without asking for a derivative.

● BetaFree · in your browser
Use it from WebAPIEmailTelegramApp soon

Enter an expression for f(x), choose the starting value and stopping controls, and receive the final estimate together with a complete iteration trace. The method uses an Aitken-style correction built from f(x) and f(x + f(x)); near a suitable simple root it can achieve quadratic convergence using function values alone. The structured result makes the calculation useful for study, verification, and repeatable numerical workflows.

Enter the function and a sensible initial guess

Write the function as an expression in x, such as x^2 - 2, cos(x) - x, or exp(-x) - x. Multiplication must be explicit, so use 2*x rather than 2x. The parser accepts decimal and scientific-notation numbers, parentheses, +, -, *, /, powers written with ^, the constants pi and e, and common one-argument functions including sin, cos, tan, exp, log, log10, sqrt, and abs. It does not execute JavaScript or accept assignments such as f(x)=. Supply a finite initial_guess close enough to the root you want. Steffensen's method is an open method: unlike bisection, it does not start with an interval that guarantees a root is enclosed. Different starting values can converge to different zeros, fail at a singularity, or leave the useful region of the function. A graph, sign scan, or mathematical estimate can help select the starting point. The optional tolerance controls both the acceptable residual and the relative size of the update; max_iterations supplies a hard computational limit. Use a tolerance that matches the precision justified by the problem rather than requesting many digits from uncertain input data.

Understand the Steffensen and Aitken-style update

At a current estimate x, the calculator first evaluates f(x). It then evaluates the function again at the shifted point x + f(x). The difference f(x + f(x)) - f(x) forms the denominator, and the next estimate is x minus f(x) squared divided by that denominator. This construction can be interpreted as applying Aitken acceleration to a fixed-point iteration and approximates the effect of a Newton step without explicitly computing f'(x). For a sufficiently smooth function, a suitable starting point, and a simple root, the local convergence is typically quadratic: once the estimates are close, the number of correct digits can grow rapidly. That desirable local behavior is not a global guarantee. A zero denominator means the update is undefined, while a tiny denominator can create a very large step. The calculator rejects an exactly zero denominator and any non-finite function value or estimate instead of returning corrupted JSON. Each trace row reports x, f(x), the shifted point, its function value, the denominator, the next estimate, and the next residual. Those fields let you reproduce the formula, see the acceleration develop, and identify the exact iteration where a difficult function causes trouble.

Read convergence honestly and validate the result

The converged field becomes true when the new residual is no larger than tolerance or when the update is small relative to the scale of the new estimate. The root and f_root fields contain the last estimate and its evaluated residual, while iterations counts completed Steffensen updates. An initial guess that already satisfies the residual test returns zero iterations and an empty trace. If the iteration limit is reached first, the calculator returns converged as false along with the last finite estimate and the entire trace; it does not disguise exhaustion as success. Always inspect f_root, because a small update can occasionally occur through numerical stagnation even when the residual is not as small as desired. For important work, substitute the root into the original formula independently, rerun with a nearby starting value, and compare against a bracketing method when one is available. Multiple roots can reduce the expected convergence rate, and discontinuities, restricted domains, flat regions, or badly scaled formulas can defeat the iteration. Standard floating-point arithmetic also limits meaningful precision. This tool is a transparent numerical calculator, not a symbolic proof that a root exists, is unique, or has a guaranteed error bound. Those claims require separate analysis of continuity, derivatives, intervals, and conditioning.

Check a numerical analysis exercise

Compare each derivative-free update with a hand calculation and inspect the residual at the reported root.

Solve a nonlinear model equation

Find a finite zero when function evaluations are available but deriving or implementing a derivative is inconvenient.

Test sensitivity to starting values

Run the same expression from nearby guesses to study basins of attraction, convergence speed, and failure modes.

What does the API request cost?

Each API request costs $0.002. The browser version can run the same deterministic solver locally.

Does Steffensen's method require a derivative?

No. Each update uses function values at the current estimate, a shifted point, and the resulting next estimate.

Is quadratic convergence guaranteed?

No. It is a local result under suitable smoothness, simple-root, and starting-point conditions; difficult functions or guesses can fail.

Why did the denominator become zero?

The two function values used in the finite-difference denominator were equal, so the Steffensen correction was undefined. Try another initial guess or method.

What happens when the iteration limit is reached?

The result sets converged to false and returns the last finite estimate, residual, and trace for diagnosis.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/calculus/steffensen-method

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.

curl -X POST https://api.kit.forhosting.com/calculus/steffensen-method \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"expression":"x^2 - 2","initial_guess":1}'
{
  "expression": "x^2 - 2",
  "initial_guess": 1
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "calculus.steffensen_method",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

max_expression_chars500
max_iterations10000
HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

Read the full KIT documentation →