Radius of convergence from coefficients calculator
This radius of convergence calculator takes coefficients from a power series in ascending power order and applies the limit of absolute consecutive coefficient ratios.
Run — free
It returns the estimated radius, every computed ratio, the tail values used for the estimate, and a stabilization check. That makes the result useful both as a quick calculation and as evidence you can inspect. The calculator is deterministic, runs without external data, and supports positive, negative, or alternating nonzero coefficients.
Turn a coefficient sequence into a convergence radius
For a power series written as the sum of a_n times (x minus c) to the nth power, the coefficient-ratio form of the ratio test gives the radius as R = lim |a_n / a_(n+1)|, provided that limit exists. Enter the coefficients in ascending power order: the first value is a_0, the second is a_1, and so on. The calculator forms an absolute ratio from each adjacent pair, so alternating signs do not change the estimate. It then averages the requested number of ratios at the end of the sequence. That tail average is reported as the radius estimate because later coefficients normally carry the most useful evidence about the limiting behavior. The center c is not needed: translating the variable changes where the interval of convergence sits, but it does not change its radius. Use enough coefficients to reveal a stable pattern. Three values technically produce ratios, but a longer sequence gives a much more meaningful view of whether the ratios approach a common limit.
Read the stabilization diagnostic before trusting the estimate
A finite list cannot prove an infinite limit, so the result includes more than one headline number. The ratios field shows every |a_n / a_(n+1)| value, while tail_ratios isolates the final window used in the estimate. The relative_spread compares the largest and smallest tail ratios with their average. When that spread is no greater than the selected tolerance, stabilized is true. This is a numerical diagnostic, not a theorem: a slowly changing sequence may look stable for several terms and drift later, while a genuinely convergent sequence may need many terms before its spread becomes small. Adjust tail_terms to balance recency against noise. A larger window asks more ratios to agree; a smaller window reacts more quickly to late behavior. Set tolerance according to the precision justified by the coefficients rather than forcing a favorable label. If stabilized is false, inspect the listed ratios, provide more coefficients, or use a different convergence theorem instead of presenting the tail average as an established exact radius.
Know when the coefficient-ratio method applies
This calculator deliberately requires finite, nonzero coefficients. A zero denominator makes a consecutive coefficient ratio undefined, and isolated or recurring zero coefficients can require the root test, a subsequence argument, or algebraic recognition of the series. Rejecting those inputs prevents an apparently ordinary number from hiding that mathematical issue. The method is especially effective for geometric-type coefficients, factorial expressions after numerical evaluation, and sequences whose adjacent ratios visibly settle toward a positive constant. If ratios grow without bound, the theoretical radius may be infinite; if they tend toward zero, the radius may be zero. A finite sample, however, cannot certify either infinite behavior, so this tool returns a finite tail estimate and exposes the ratios rather than guessing a symbolic infinity. After finding R, remember that the ratio test describes absolute convergence for |x-c| less than R and divergence for |x-c| greater than R. The endpoints x = c plus or minus R must be checked separately because the radius calculation alone says nothing decisive about them.
What you can do with it
Check a geometric coefficient pattern
Confirm that constant consecutive ratios recover the expected radius and inspect the exact ratio sequence.
Estimate a limit from tabulated coefficients
Use the last several ratios from computed or measured coefficients when no symbolic formula is available.
Audit a worked calculus solution
Compare a claimed radius with the coefficient ratios and see whether the available tail has actually stabilized.
FAQ
What order should the coefficients use?
Enter a_0 first, followed by a_1, a_2, and later coefficients in ascending power order.
Why are negative coefficients allowed?
The ratio formula uses absolute values, so signs and alternating signs do not affect the computed ratio magnitudes.
Why are zero coefficients rejected?
A zero can make an adjacent ratio undefined. Series with zero coefficients are often better handled with the root test or a subsequence argument.
Does stabilized mean the radius is proven?
No. It means only that the supplied tail ratios fit within your tolerance. A finite numerical sample cannot prove an infinite limit.
Does the result decide endpoint convergence?
No. Each endpoint must be substituted into the original series and tested separately.
How much does an API calculation cost?
Each API request costs $0.002; the browser calculator can run the same deterministic calculation locally.
For developers — API access
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.
API endpoint
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.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/calculus/power-series-radius \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"coefficients":[1,0.5,0.25,0.125,0.0625]}'const res = await fetch("https://api.kit.forhosting.com/calculus/power-series-radius", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"coefficients": [
1,
0.5,
0.25,
0.125,
0.0625
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/calculus/power-series-radius",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"coefficients": [
1,
0.5,
0.25,
0.125,
0.0625
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/calculus/power-series-radius", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"coefficients":[1,0.5,0.25,0.125,0.0625]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"coefficients":[1,0.5,0.25,0.125,0.0625]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/calculus/power-series-radius", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"coefficients": [
1,
0.5,
0.25,
0.125,
0.0625
]
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "calculus.power_series_radius",
"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.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Limits
max_items | 10000 |
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |