36. Power series, radius and interval of convergence

📖 Reading · 11 min
💡 Every code box below is live — edit it and hit Run.

Every series in Module 7 had fixed numerical terms — \sum\frac1{n^2} either converges or it doesn't, with no variable involved. This lesson lets the terms depend on x, turning a series into a function: plug in a value of x, get a number series, ask whether that series converges. The set of x where it does is what this lesson finds — and it turns out every ratio-test and root-test skill from §7.9 was really preparation for exactly this question.

Power series

A power series centered at a is

\sum_{n=0}^\infty c_n(x-a)^n=c_0+c_1(x-a)+c_2(x-a)^2+\cdots

For each fixed value of x, this is an ordinary numerical series — every test from Module 7 applies directly, with x simply along for the ride until a number is substituted in.

The radius of convergence

Apply the ratio test (§7.9) to a power series, treating x as fixed:

L=\lim_{n\to\infty}\left|\frac{c_{n+1}(x-a)^{n+1}}{c_n(x-a)^n}\right|=|x-a|\cdot\lim_{n\to\infty}\left|\frac{c_{n+1}}{c_n}\right|

Call that remaining limit \frac1R (assuming it exists and is nonzero). The ratio test says the series converges absolutely when L<1:

|x-a|\cdot\frac1R<1\ \Longleftrightarrow\ |x-a|<R

R is the radius of convergence — the series converges absolutely for every x within distance R of the center a, and diverges for every x farther than R away (since L>1 there). Two edge cases: R=0 means the series converges only at x=a itself; R=\infty means it converges for every real x — this happens whenever \left|\frac{c_{n+1}}{c_n}\right|\to0, and it's exactly the case for the series representing e^x, seen in §8.1.

The interval of convergence — checking the endpoints

The ratio test says nothing at exactly |x-a|=R — the same L=1 blind spot from §7.9. The two endpoints x=a-R and x=a+R must be checked separately, by substituting them in and analyzing the resulting numerical series with whatever tool from Module 7 applies: often the p-series test, the alternating series test, or the divergence test.

Each endpoint independently converges or diverges — there's no shortcut that infers one from the other. The full interval of convergence is (a-R,a+R), possibly including one, both, or neither endpoint depending on what those separate checks find.

A worked family, showing all three outcomes at the boundary simultaneously, all centered at a=0 with R=1:

  • \sum x^n: at x=\pm1, terms are (\pm1)^n, which don't shrink to 0 — diverges at both endpoints by the divergence test (§7.5). Interval: (-1,1).
  • \sum\frac{x^n}n: at x=1, this is the harmonic series — diverges. At x=-1, this is the alternating harmonic series — converges conditionally (§7.8). Interval: [-1,1).
  • \sum\frac{x^n}{n^2}: at x=\pm1, both give a convergent p-series (p=2) up to sign, and \sum\left|\frac{(\pm1)^n}{n^2}\right|=\sum\frac1{n^2} converges — absolutely convergent at both endpoints. Interval: [-1,1].

Three power series, identical radius, three different intervals — the radius alone never determines what happens at the boundary.

Doing it in Python

Finding the radius of convergence via the ratio-test limit, for a series centered away from the origin:

import sympy as sp

n = sp.Symbol('n', positive=True, integer=True)

c_n = 1 / (n * 3**n)   # coefficients of sum (x-2)^n / (n*3^n)

ratio_of_coeffs = sp.limit(c_n.subs(n, n + 1) / c_n, n, sp.oo)
R = 1 / ratio_of_coeffs
print(f"lim |c_(n+1)/c_n| = {ratio_of_coeffs}")
print(f"radius of convergence R = {R}")
print(f"centered at a=2, so the open interval is (2-{R}, 2+{R}) = ({2-R}, {2+R})")

Checking both endpoints of that same series, each with the appropriate Module 7 test:

import sympy as sp

n = sp.Symbol('n', positive=True, integer=True)

# at x = -1: (x-2)^n/(n*3^n) = (-3)^n/(n*3^n) = (-1)^n/n  -- alternating harmonic
left_abs = sp.summation(sp.Abs((-1)**n / n), (n, 1, sp.oo))
left_signed = sp.summation((-1)**n / n, (n, 1, sp.oo))
print("x = -1: terms are (-1)^n/n")
print(f"        sum of |terms| = {left_abs}          -> not absolutely convergent")
print(f"        but the signed sum is {left_signed}   -> CONVERGES conditionally")

# at x = 5: (x-2)^n/(n*3^n) = 3^n/(n*3^n) = 1/n  -- plain harmonic
right_sum = sp.summation(1 / n, (n, 1, sp.oo))
print("x =  5: terms are 1/n")
print(f"        sum = {right_sum}                     -> DIVERGES")

print("\ntwo endpoints, two different verdicts: interval of convergence is [-1, 5)")

Confirming a series with R=\infty — the coefficients of \sum\frac{x^n}{n!} shrink fast enough that no finite radius bounds convergence at all:

import sympy as sp

n = sp.Symbol('n', positive=True, integer=True)
c_n = 1 / sp.factorial(n)

ratio_of_coeffs = sp.limit(c_n.subs(n, n + 1) / c_n, n, sp.oo)
print(f"lim |c_(n+1)/c_n| = {ratio_of_coeffs}")
print("R = 1/0 = infinity -- converges for every real x")

Worked example

Find the radius and interval of convergence of \displaystyle\sum_{n=1}^\infty\frac{(x-2)^n}{n\cdot3^n}.

\left|\frac{a_{n+1}}{a_n}\right|=\frac{|x-2|^{n+1}/((n+1)3^{n+1})}{|x-2|^n/(n\cdot3^n)}=|x-2|\cdot\frac n{(n+1)\cdot3}\ \xrightarrow{n\to\infty}\ \frac{|x-2|}3

Converges when \frac{|x-2|}3<1\Longleftrightarrow|x-2|<3: \boxed{R=3}, open interval (-1,5).

Endpoint x=-1: (x-2)=-3, so the term becomes \dfrac{(-3)^n}{n\cdot3^n}=\dfrac{(-1)^n}n — the alternating harmonic series. Converges (conditionally, §7.8).

Endpoint x=5: (x-2)=3, term becomes \dfrac{3^n}{n\cdot3^n}=\dfrac1n — the plain harmonic series. Diverges (§7.5).

\boxed{\text{interval of convergence: }[-1,5)}

Sanity check. The center is a=2, and -1 and 5 sit exactly 3 units away on either side — matching R=3 exactly. It also makes sense that the two endpoints behave differently: one substitution produced an alternating series (rescued by cancellation) while the other produced a series of all-positive terms (with nothing to rescue it) — precisely the asymmetry §7.8 exists to explain. ✓

Your turn

1. Find the radius of convergence of \displaystyle\sum_{n=0}^\infty\frac{x^n}{2^n} (no endpoint check needed for this one — just R).

2. Find the radius and interval of convergence of \displaystyle\sum_{n=1}^\infty\frac{(x+1)^n}{n^2}.

3. True or false: a power series with radius of convergence R=5 must diverge at both x=a-5 and x=a+5.

Solutions

1. c_n=\dfrac1{2^n}, \left|\dfrac{c_{n+1}}{c_n}\right|=\dfrac12 (constant, no limit even needed):

R=\frac1{1/2}=\boxed2

2. \left|\dfrac{a_{n+1}}{a_n}\right|=|x+1|\cdot\dfrac{n^2}{(n+1)^2}\to|x+1|. Converges when |x+1|<1: \boxed{R=1}, open interval (-2,0).

Endpoints: at x=-2, term is \dfrac{(-1)^n}{n^2} — absolutely convergent (p=2). At x=0, term is \dfrac1{n^2} — also convergent.

\boxed{\text{interval of convergence: }[-2,0]}

3. False. This is exactly the point of the worked family in the concept section: the radius alone never determines endpoint behavior. R=5 only guarantees convergence strictly inside (a-5,a+5) and divergence strictly outside [a-5,a+5] — at the two boundary points themselves, convergence, divergence, or one-of-each are all possible, and each must be checked with a separate, ordinary numerical-series test.

Check yourself in code

For \displaystyle\sum_{n=1}^\infty\frac{(x-2)^n}{n\cdot3^n}, compute the radius of convergence via the ratio test, and evaluate the terms at both candidate endpoints x=-1 and x=5.

Print exactly this:

radius of convergence = 3
term at x=-1 = (-1)**n/n
term at x=5 = 1/n
import sympy as sp

n = sp.Symbol('n', positive=True, integer=True)
x = sp.Symbol('x')

c_n = 1 / (n * 3**n)
ratio_of_coeffs = sp.limit(c_n.subs(n, n + 1) / c_n, n, sp.oo)
R = 1 / ratio_of_coeffs
print("radius of convergence = ...")

term_left = sp.simplify(((-1) - 2)**n / (n * 3**n))
print("term at x=-1 = ...")

term_right = sp.simplify((5 - 2)**n / (n * 3**n))
print("term at x=5 = ...")
import sympy as sp

n = sp.Symbol('n', positive=True, integer=True)
x = sp.Symbol('x')

c_n = 1 / (n * 3**n)
ratio_of_coeffs = sp.limit(c_n.subs(n, n + 1) / c_n, n, sp.oo)
R = 1 / ratio_of_coeffs
print(f"radius of convergence = {R}")

term_left = sp.simplify(((-1) - 2)**n / (n * 3**n))
print(f"term at x=-1 = {term_left}")

term_right = sp.simplify((5 - 2)**n / (n * 3**n))
print(f"term at x=5 = {term_right}")

A power series is a series with an x riding along in every term, and plugging in any specific x reduces it to an ordinary Module 7 series — the ratio test, applied symbolically, finds a radius R within which the series converges absolutely and outside which it diverges. The two boundary points x=a\pm R sit in a blind spot the ratio test can't see into, and must be checked one at a time with whichever Module 7 tool the resulting numerical series calls for — the same series' two endpoints can land on entirely different sides of convergence.

Next: where these coefficients actually come from when the power series is built to represent a specific, familiar function.