跳至内容

等比级数:公式、收敛性与示例

一份关于等比级数的实用指南,涵盖有限与无限求和公式、收敛条件,以及其在金融、物理与计算机科学中的实际应用。
更新 2026年5月4日  · 8分钟

有没有想过,1 + 2 + 4 + 8 + ... 这样的一串数,如何用一个简洁的公式来表示?

级数就是把一个数列的项加在一起。当每一项都通过乘以同一个数来得到下一项时,这个级数就是等比级数。这个恒定的乘数称为公比,它是整个结构的关键。 

等比级数无处不在,从贷款还款、信号衰减,到算法分析。掌握它们是处理数据时必备的数学技能。

本文将介绍关键公式,解释无限等比级数何时会有有限和,并通过真实示例加以说明。

如果您掌握了 Python 基础,就可以学习更有趣的内容了。欢迎报名我们的 16 小时 Machine Learning Fundamentals in Python 课程。

什么是等比级数?

等比级数是这样一类项的和:每一项都通过将前一项乘以一个常数比得到。

例如,1 + 2 + 4 + 8 + 16。每一项都是前一项的两倍。这个翻倍的因素使其成为等比。

每个等比级数由两个值决定:

  • 首项(a)——级数的起始值
  • 公比(r)——从一项得到下一项所乘的常数倍

如果 a = 1r = 2,就得到 1 + 2 + 4 + 8 + ...。如果 a = 3r = 0.5,就得到 3 + 1.5 + 0.75 + ...。结构始终相同。

这就是核心思想。任何等比级数都只是从 a 出发,每一步按 r 缩放的重复乘法。

等比数列 vs 等比级数

这两个术语常被混用,但一句话就能说明区别。

等比数列只是一个数字列表:1, 2, 4, 8, 16;等比级数是把它们加起来:1 + 2 + 4 + 8 + 16 = 31。

数字相同,操作不同。数列是列出,级数是求和。

有限等比级数的公式

n 项等比级数的和由下式给出:

Sum of the first n terms formula

前 n 项求和公式

其中:

  • a = 首项

  • r = 公比

  • n = 项数

来看一个简单示例。求 1 + 2 + 4 + 8 的前 4 项和。此时,a = 1r = 2n = 4

Simple geometric series example

等比级数简单示例

您可以手算验证:1 + 2 + 4 + 8 = 15。公式一步到位,尤其在 n 很大时意义更大。

无限等比级数与收敛

有个看似反常的概念:无限级数也可能有一个有限的和。

例如 1 + 0.5 + 0.25 + 0.125 + ...。您可以一直加下去,但总和永远不会超过 2。因为每一项都比前一项更小——小到使得总和趋向一个固定值,而不是无限增大。

这种行为称为收敛,且只在一个条件下发生:|r| < 1

当公比介于 -1 与 1 之间(不含端点)时,随着级数推进,每一项都会缩小。各项趋近于 0,也就意味着再加入的项对总和的贡献越来越小。于是总和趋于稳定。

如果 |r| ≥ 1,各项不会变小。它们要么保持不变,要么变大,总和就会不断增长。这是发散级数——没有有限的和。

要注意 r 两侧的绝对值符号。公比为 -0.5 也会收敛,因为各项虽正负号交替,但仍在缩小并趋向 0。

无限等比级数的公式

|r| < 1 时,可以用一个公式求无限等比级数的和:

Infinite geometric series formula

无限等比级数求和公式

其中 a 为首项,r 为公比。就这样——无需 n,因为级数不会停止。

让我们用上一节的示例:1 + 0.5 + 0.25 + 0.125 + ...。此时,a = 1r = 0.5

Infinite geometric series example

无限等比级数示例

无限和正好是 2。您可以一直加下去,也不会超过它。

需要强调的是,该公式仅在 |r| < 1 时有效。如果级数发散,公式将不再适用,并给出无意义的结果。使用前务必先检查收敛条件。

为什么收敛性重要

并非所有的无限级数都会得到有限的和。有些只会不断增长。

以 1 + 2 + 4 + 8 + ... 为例。这里 r = 2,意味着每一项都比前一项更大。其和没有上界——无限增大。这是发散级数,套用无限和公式只会得到没有意义的结果。

r = 1 时同样如此。级数 3 + 3 + 3 + 3 + ... 永不停累加,因此不存在有限的和。

这就是为什么在使用公式前检查 |r| < 1 是必不可少的。如果级数发散,公式并不会以显而易见的方式“报错”——它只是给出一个看起来合理、实则完全错误的数字。

Python 中的等比级数

让我们把目前为止的内容都写成代码。我们将实现有限和与无限和公式,验证结果,并可视化随着加入更多项,部分和的变化情况。

有限等比级数

实现有限等比级数公式所需的 Python 逻辑如下:

def finite_geometric_sum(a, r, n):
    if r == 1:
        return a * n
    return a * (1 - r**n) / (1 - r)

result = finite_geometric_sum(a=1, r=2, n=4)
print(f"Finite sum (a=1, r=2, n=4): {result}")

Finite geometric series in Python

Python 中的有限等比级数

无限等比级数

对于无限级数也类似,只需在违反约束时抛出错误:

def infinite_geometric_sum(a, r):
    if abs(r) >= 1:
        raise ValueError(f"Series diverges for |r| >= 1. Got r={r}.")
    return a / (1 - r)

# Example: 1 + 0.5 + 0.25 + ... (a=1, r=0.5)
result = infinite_geometric_sum(a=1, r=0.5)
print(f"Infinite sum (a=1, r=0.5): {result}")

Infinite geometric series in Python

Python 中的无限等比级数

|r| >= 1 时,该函数会抛出错误,以免悄无声息地得到错误答案。

可视化收敛

精彩之处在这里。对于收敛的级数,随着 n 增大,部分和应当逼近理论极限。我们来作图展示。

import numpy as np
import matplotlib.pyplot as plt

COLOR_DARK = "#1a1a2e"
COLOR_GREEN = "#03EF62"
COLOR_LIGHT_GRAY = "#cccccc"

a, r = 1, 0.5
n_terms = 30
theoretical_limit = infinite_geometric_sum(a, r)

# Compute partial sums
terms = a * r ** np.arange(n_terms)
partial_sums = np.cumsum(terms)

# Plot
fig, ax = plt.subplots(figsize=(10, 5), facecolor=COLOR_DARK)
ax.set_facecolor(COLOR_DARK)

ax.plot(range(1, n_terms + 1), partial_sums, color=COLOR_GREEN, linewidth=2, label="Partial sums")
ax.axhline(y=theoretical_limit, color=COLOR_LIGHT_GRAY, linewidth=1, linestyle="--", label=f"Limit = {theoretical_limit}")

ax.scatter(range(1, n_terms + 1), partial_sums, color=COLOR_LIGHT_GRAY, s=30, zorder=3)

# Style
for spine in ax.spines.values():
    spine.set_visible(False)
ax.spines["bottom"].set_visible(True)
ax.spines["bottom"].set_color(COLOR_LIGHT_GRAY)
ax.spines["bottom"].set_alpha(0.3)

ax.tick_params(colors=COLOR_LIGHT_GRAY)
ax.xaxis.label.set_color(COLOR_LIGHT_GRAY)
ax.yaxis.label.set_color(COLOR_LIGHT_GRAY)
ax.set_xlabel("Number of terms")
ax.set_ylabel("Partial sum")
ax.set_title("Convergence of geometric series (a=1, r=0.5)", color=COLOR_LIGHT_GRAY, pad=15)

legend = ax.legend(facecolor=COLOR_DARK, edgecolor=COLOR_LIGHT_GRAY, labelcolor=COLOR_LIGHT_GRAY)
legend.get_frame().set_alpha(0.3)

plt.tight_layout()
plt.show()

Converging series visualization

收敛级数的可视化

部分和趋近于 2.0 并逐渐趋于平坦,这正是实际中的收敛形态。每一项的额外贡献都比上一项更小,曲线最终停在理论极限上。

等比级数的常见应用

等比级数描述了广泛存在于金融、物理和计算机科学中的真实模式。

金融是最熟悉的例子。当您以固定利率投资时,每期余额都等于前一期乘以一个常数因子。随着时间推移,由复利带来的总收益就是一个等比级数。同样的结构适用于贷款分期和年金计算。

物理中用等比级数来建模衰减过程。放射性衰变、信号衰减、能量耗散都遵循每一步以固定比例减少的模式。可以把无限时间里衰变的物质量看作一个收敛的等比级数。

在计算机科学中,等比级数出现在算法分析中。每一步把问题规模减半的递归算法——如二分查找或归并排序——在统计各层总工作量时会形成等比级数。它们也常见于内存分配方案和数据结构容量规划中,在这些场景里容量按固定倍数增长。

等比级数的常见错误

大多数错误可归结为几个定义理解偏差和一次错误的公式应用。

混淆数列与级数

这是最常见的一类。数列是列表,级数是求和。如果有人要“等比级数”,而您把各项列出来而不是相加,那就是答非所问。尤其当预期答案应是一个单一数字时,这一区别尤为重要。

在 |r| ≥ 1 时套用无限和公式

这是个隐蔽的错误。公式 S = a / (1 - r) 只在级数收敛时有效。如果令 r = 2 得到一个看起来很整洁的数字,那是没有意义的。务必先检查 |r| < 1

误判公比

这比听起来更棘手。公比 r 始终是“为得到下一项所乘的值”——不是项与项之间的差,也不是首项除以第二项。对 3 + 6 + 12 + 24 而言,公比是 2,不是 3。用任一项除以前一项即可得到 r,并用几对相邻项复核,确保它确实是常数。

结语

等比级数就是把重复的乘法加总起来。每一项都由前一项按同一比例得到,这使模式可预测、公式也容易理解。

收敛条件——|r| < 1——是您必须记住的一件事。它将具有有意义有限和的级数,与无限增长的级数区分开来。如果这一步判断错了,后续得到的结果都不成立。

核心也就这些。找出公比,检查收敛条件,应用正确的公式。就是如此。

如果您觉得等比级数不难,欢迎阅读我们最新的 泰勒级数:从近似到优化 博文——数学不如本文简单,但讲解同样清晰。

等比级数常见问答

什么是等比级数?

等比级数是把这样一组项相加:每一项都由前一项乘以一个称为公比的常数得到。例如,1 + 2 + 4 + 8 是一个等比级数,其首项为 1,公比为 2。等比数列与等比级数的关键区别在于:数列是列出各项,级数是将其相加。

无限等比级数在何时收敛?

当公比的绝对值小于 1(记作 |r| < 1)时,无限等比级数收敛。在该条件下,各项足够快地趋向于 0,使得总和趋于一个有限值。若 |r| ≥ 1,则级数发散,没有有限和。

等比级数在现实中有哪些应用?

等比级数出现在金融、物理和计算机科学中。在金融中,复利与年金计算依赖等比级数结构。在计算机科学中,它们出现在每步将问题规模减半的递归算法分析中,如二分查找与归并排序。

有限与无限等比级数公式有何区别?

有限公式 S_n = a(1 - r^n) / (1 - r) 精确求和前 n 项,除 r = 1 外适用任意 r。无限公式 S = a / (1 - r) 仅在 |r| < 1 时适用,给出级数延展到无穷时的总和。不先检查收敛性就使用无限公式,是处理等比级数时最常见的错误之一。

如何求等比级数的公比?

用任一项除以前一项即可。例如,在 3 + 6 + 12 + 24 中,用 6 除以 3 得到公比 2。为确保该级数确为等比,检查其他相邻几对项的比值是否相同——若不恒定,就不是等比级数。

主题

与 DataCamp 一起学习

Courses

Linear Algebra for Data Science in R

4小时
20.8K
This course is an introduction to linear algebra, one of the most important mathematical topics underpinning data science.
查看详情Right Arrow
开始课程
查看更多Right Arrow