目录
-
- 一、无穷积分的定义
- 二、实例解析与Python验证
-
- [2.1、求介于曲线 y = 1 x 2 ( x ≥ 1 ) y = \frac{1}{x^2}(x\geq1) y=x21(x≥1)与x轴之间区域的面积](#2.1、求介于曲线 y = 1 x 2 ( x ≥ 1 ) y = \frac{1}{x^2}(x\geq1) y=x21(x≥1)与x轴之间区域的面积)
- 2.2、计算将地面物体竖直举高H米克服重力所做的功及使其脱离地球引力所做的功
- [2.3、判断无穷积分 ∫ 0 + ∞ e − x d x \int_{0}^{+\infty} e^{-x}dx ∫0+∞e−xdx的敛散性并求值](#2.3、判断无穷积分 ∫ 0 + ∞ e − x d x \int_{0}^{+\infty} e^{-x}dx ∫0+∞e−xdx的敛散性并求值)
- [2.4、判断无穷积分 ∫ − ∞ + ∞ d x 1 + x 2 \int_{-\infty}^{+\infty} \frac{dx}{1 + x^2} ∫−∞+∞1+x2dx的敛散性并求值](#2.4、判断无穷积分 ∫ − ∞ + ∞ d x 1 + x 2 \int_{-\infty}^{+\infty} \frac{dx}{1 + x^2} ∫−∞+∞1+x2dx的敛散性并求值)
- [2.5、判断无穷积分 ∫ 1 + ∞ 1 x p d x \int_{1}^{+\infty} \frac{1}{x^p}dx ∫1+∞xp1dx的敛散性](#2.5、判断无穷积分 ∫ 1 + ∞ 1 x p d x \int_{1}^{+\infty} \frac{1}{x^p}dx ∫1+∞xp1dx的敛散性)
- [2.6、判断无穷积分 ∫ 2 + ∞ 1 x ln p x d x \int_{2}^{+\infty} \frac{1}{x\ln^p x}dx ∫2+∞xlnpx1dx的敛散性](#2.6、判断无穷积分 ∫ 2 + ∞ 1 x ln p x d x \int_{2}^{+\infty} \frac{1}{x\ln^p x}dx ∫2+∞xlnpx1dx的敛散性)
- 三、总结与学习建议
当积分区间延伸到无穷,数学分析展现了它解决实际问题的强大能力
在数学分析中,我们之前探讨的定积分主要针对的是有限区间上的有界函数。然而,在许多实际问题和理论研究中,我们会遇到积分区间为无穷区间的情况。这时候,就需要引入反常积分的概念。
本文将重点研究积分区间为无穷区间的反常积分,也就是无穷积分,并结合Python编程工具,通过可视化方式帮助读者直观理解这一重要概念。
一、无穷积分的定义
基本概念
无穷积分是定积分在无限区间上的自然推广。我们通过"先截断后取极限"的方法来定义:
定义 :设函数 f ( x ) f(x) f(x)在 [ a , + ∞ ) [a, +\infty) [a,+∞)上有定义。如果对于充分大的 A > a A > a A>a,定积分 ∫ a A f ( x ) d x \int_a^A f(x)dx ∫aAf(x)dx存在,且极限
I = lim A → + ∞ ∫ a A f ( x ) d x I = \lim_{A \to +\infty} \int_a^A f(x)dx I=A→+∞lim∫aAf(x)dx
存在( I I I为有限实数),则称无穷积分收敛 ,其值为 I I I,记作
∫ a + ∞ f ( x ) d x = I \int_a^{+\infty} f(x)dx = I ∫a+∞f(x)dx=I
如果该极限不存在或为无穷大,则称无穷积分发散。
几何意义
- 收敛 :曲线 y = f ( x ) y=f(x) y=f(x)下方从 x = a x=a x=a到无穷远的面积为有限值
- 发散:该面积为无限大
重要说明
- 收敛性独立于起点 :积分 ∫ a + ∞ f ( x ) d x \int_a^{+\infty} f(x)dx ∫a+∞f(x)dx的收敛性与起点 a a a的选择无关。但如果积分收敛,其具体的数值会因起点不同而变化
- 双边无穷积分 : ∫ − ∞ + ∞ f ( x ) d x \int_{-\infty}^{+\infty} f(x)dx ∫−∞+∞f(x)dx收敛当且仅当对某个实数 c c c,两个积分 ∫ − ∞ c f ( x ) d x \int_{-\infty}^c f(x)dx ∫−∞cf(x)dx和 ∫ c + ∞ f ( x ) d x \int_c^{+\infty} f(x)dx ∫c+∞f(x)dx都收敛
二、实例解析与Python验证
2.1、求介于曲线 y = 1 x 2 ( x ≥ 1 ) y = \frac{1}{x^2}(x\geq1) y=x21(x≥1)与x轴之间区域的面积
手动计算 : 要求面积的区域无界,我们先求曲边梯形 D A D_A DA的面积 S A S_A SA。
S A = ∫ 1 A 1 x 2 d x = − 1 x ∣ 1 A = 1 − 1 A S_A = \int_{1}^{A} \frac{1}{x^2}dx = -\frac{1}{x}\big|_{1}^{A} = 1 - \frac{1}{A} SA=∫1Ax21dx=−x1 1A=1−A1
要求的无穷区域的面积为:
S = lim A → + ∞ S A = lim A → + ∞ ( 1 − 1 A ) = 1 S = \lim\limits_{A \to +\infty} S_A = \lim\limits_{A \to +\infty} (1 - \frac{1}{A}) = 1 S=A→+∞limSA=A→+∞lim(1−A1)=1
Python验证与可视化:
见calculus/chapter07/note43_test01.py
python
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.patches import Polygon
import sympy as sp
# 中文字体设置
plt.rcParams['font.sans-serif'] = ['SimHei'] # 指定默认字体
# 计算无穷积分
x = sp.symbols('x')
area_integral = sp.integrate(1/x**2, (x, 1, sp.oo))
print("介于曲线y=1/x^2(x≥1)与x轴之间区域的面积:", area_integral)
# 绘制积分区域可视化图
def func(x):
return 1/(x**2)
x_vals = np.linspace(1, 10, 100)
y_vals = func(x_vals)
fig, ax = plt.subplots(figsize=(10, 6))
plt.plot(x_vals, y_vals, 'r', linewidth=2, label=r'$y = 1/x^2$')
# 添加积分区域阴影
a, b = 1, 10
ix = np.linspace(a, b)
iy = func(ix)
verts = [(a, 0)] + list(zip(ix, iy)) + [(b, 0)]
poly = Polygon(verts, facecolor='0.8', edgecolor='0.5')
ax.add_patch(poly)
plt.text(4, 0.3, r'$\int_{1}^{\infty} \frac{1}{x^2} dx = 1$',
fontsize=15, horizontalalignment='center')
plt.xlabel('x')
plt.ylabel('y')
plt.title(r'曲线$y=1/x^2$与x轴之间的无穷区域面积')
plt.legend()
plt.grid(True)
plt.show()
执行结果:
介于曲线y=1/x^2(x≥1)与x轴之间区域的面积: 1

2.2、计算将地面物体竖直举高H米克服重力所做的功及使其脱离地球引力所做的功
手动计算 : 设地球的半径为 R R R,质量为 M M M,引力常数为 G G G,则将地面物体竖直举高 H H H米克服重力所做的功 W ( H ) W(H) W(H)为:
W ( H ) = ∫ R R + H G M m x 2 d x = G M m ( 1 R − 1 R + H ) W(H) = \int_{R}^{R + H} \frac{GMm}{x^2}dx = GMm(\frac{1}{R} - \frac{1}{R + H}) W(H)=∫RR+Hx2GMmdx=GMm(R1−R+H1)
使该物体脱离地球的引力,克服重力所做的功是:
W = lim H → + ∞ W ( H ) = G M m R W = \lim\limits_{H \to +\infty} W(H) = \frac{GMm}{R} W=H→+∞limW(H)=RGMm
Python验证:
见calculus/chapter07/note43_test02.py
python
import sympy as sp
# 定义符号变量
x = sp.symbols('x', positive=True)
# 计算克服重力做功
G, M, m, R, H = sp.symbols('G M m R H')
work_integral = sp.integrate(G*M*m/x**2, (x, R, R+H))
print(f"举高H米克服重力做功: {work_integral}")
work_escape = sp.integrate(G*M*m/x**2, (x, R, sp.oo))
print(f"脱离地球引力克服重力所做的功: {work_escape}")
运行结果:
举高H米克服重力做功: -G*M*m/(H + R) + G*M*m/R
脱离地球引力克服重力所做的功: G*M*m/R
2.3、判断无穷积分 ∫ 0 + ∞ e − x d x \int_{0}^{+\infty} e^{-x}dx ∫0+∞e−xdx的敛散性并求值
手动计算 :
∫ 0 + ∞ e − x d x = lim A → + ∞ ∫ 0 A e − x d x = lim A → + ∞ ( − e − x ) ∣ 0 A = lim A → + ∞ ( 1 − e − A ) = 1 \begin{aligned} \int_{0}^{+\infty} e^{-x}dx = \lim\limits_{A \to +\infty} \int_{0}^{A} e^{-x}dx \\ = \lim\limits_{A \to +\infty} (-e^{-x})\big|{0}^{A} = \lim\limits{A \to +\infty} (1 - e^{-A}) = 1 \end{aligned} ∫0+∞e−xdx=A→+∞lim∫0Ae−xdx=A→+∞lim(−e−x) 0A=A→+∞lim(1−e−A)=1
所以该无穷积分收敛,且值为 1 1 1。
Python验证与可视化:
见calculus/chapter07/note43_test03.py
python
import numpy as np
import sympy as sp
import matplotlib.pyplot as plt
from matplotlib.patches import Polygon
# 中文字体设置
plt.rcParams['font.sans-serif'] = ['SimHei'] # 指定默认字体
# 定义符号变量
x = sp.symbols('x')
# 计算∫e^(-x)dx从0到∞
ex_integral = sp.integrate(sp.exp(-x), (x, 0, sp.oo))
print("无穷积分∫e^(-x)dx从0到∞的值:", ex_integral)
# 绘制函数图像和积分区域
x_vals = np.linspace(0, 5, 100)
y_vals = np.exp(-x_vals)
fig, ax = plt.subplots(figsize=(10, 6))
plt.plot(x_vals, y_vals, 'b', linewidth=2, label=r'$y = e^{-x}$')
# 添加积分区域阴影
a, b = 0, 5
ix = np.linspace(a, b)
iy = np.exp(-ix)
verts = [(a, 0)] + list(zip(ix, iy)) + [(b, 0)]
poly = Polygon(verts, facecolor='0.8', edgecolor='0.5')
ax.add_patch(poly)
plt.text(2.5, 0.3, r'$\int_{0}^{\infty} e^{-x} dx = 1$',
fontsize=15, horizontalalignment='center')
plt.xlabel('x')
plt.ylabel('y')
plt.title(r'指数函数$e^{-x}$的无穷积分')
plt.legend()
plt.grid(True)
plt.show()
运行结果:
无穷积分∫e^(-x)dx从0到∞的值: 1

2.4、判断无穷积分 ∫ − ∞ + ∞ d x 1 + x 2 \int_{-\infty}^{+\infty} \frac{dx}{1 + x^2} ∫−∞+∞1+x2dx的敛散性并求值
手动计算: 分别计算两部分:
- ∫ − ∞ 0 d x 1 + x 2 = lim A → − ∞ ( arctan 0 − arctan A ) = π 2 \int_{-\infty}^{0} \frac{dx}{1 + x^2} = \lim\limits_{A \to -\infty} (\arctan 0 - \arctan A) = \frac{\pi}{2} ∫−∞01+x2dx=A→−∞lim(arctan0−arctanA)=2π
- ∫ 0 + ∞ d x 1 + x 2 = lim A → + ∞ ( arctan A − arctan 0 ) = π 2 \int_{0}^{+\infty} \frac{dx}{1 + x^2} = \lim\limits_{A \to +\infty} (\arctan A - \arctan 0) = \frac{\pi}{2} ∫0+∞1+x2dx=A→+∞lim(arctanA−arctan0)=2π
所以该无穷积分收敛,且值为 π \pi π。
Python验证与可视化:
见calculus/chapter07/note43_test04.py
python
import sympy as sp
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.patches import Polygon
# 中文字体设置
plt.rcParams['font.sans-serif'] = ['SimHei'] # 指定默认字体
# 支持负数
plt.rcParams['axes.unicode_minus'] = False
# 定义符号变量
x = sp.symbols('x')
# 计算∫dx/(1+x²)从-∞到∞
inverse_x2_plus_1_integral = sp.integrate(1/(1 + x**2), (x, -sp.oo, sp.oo))
print("无穷积分∫dx/(1+x²)从-∞到∞的值:", inverse_x2_plus_1_integral)
# 绘制函数图像
x_vals = np.linspace(-10, 10, 500)
y_vals = 1/(1 + x_vals**2)
fig, ax = plt.subplots(figsize=(12, 6))
plt.plot(x_vals, y_vals, 'g', linewidth=2, label=r'$y = 1/(1+x^2)$')
# 添加积分区域阴影
a, b = -10, 10
ix = np.linspace(a, b, 100)
iy = 1/(1 + ix**2)
verts = [(a, 0)] + list(zip(ix, iy)) + [(b, 0)]
poly = Polygon(verts, facecolor='0.8', edgecolor='0.5')
ax.add_patch(poly)
plt.text(0, 0.3, r'$\int_{-\infty}^{\infty} \frac{1}{1+x^2} dx = \pi$',
fontsize=15, horizontalalignment='center')
plt.xlabel('x')
plt.ylabel('y')
plt.title(r'函数$1/(1+x^2)$的无穷积分')
plt.legend()
plt.grid(True)
plt.show()
运行结果:
无穷积分∫dx/(1+x²)从-∞到∞的值: pi

2.5、判断无穷积分 ∫ 1 + ∞ 1 x p d x \int_{1}^{+\infty} \frac{1}{x^p}dx ∫1+∞xp1dx的敛散性
手动计算 :我们需要分情况讨论参数 p p p的取值:
- 当 p = 1 p = 1 p=1时 :
∫ 1 A 1 x d x = ln x ∣ 1 A = ln A \int_{1}^{A} \frac{1}{x}dx = \ln x\big|_{1}^{A} = \ln A ∫1Ax1dx=lnx 1A=lnA
lim A → + ∞ ln A = + ∞ \lim\limits_{A \to +\infty} \ln A = +\infty A→+∞limlnA=+∞
所以该无穷积分发散。
- 当 p ≠ 1 p \neq 1 p=1时 :
∫ 1 A 1 x p d x = x 1 − p 1 − p ∣ 1 A = A 1 − p − 1 1 − p \int_{1}^{A} \frac{1}{x^p}dx = \frac{x^{1-p}}{1-p}\big|_{1}^{A} = \frac{A^{1-p} - 1}{1-p} ∫1Axp1dx=1−px1−p 1A=1−pA1−p−1
当 p > 1 p > 1 p>1时, 1 − p < 0 1-p < 0 1−p<0, lim A → + ∞ A 1 − p = 0 \lim\limits_{A \to +\infty} A^{1-p} = 0 A→+∞limA1−p=0,所以:
lim A → + ∞ A 1 − p − 1 1 − p = 1 p − 1 \lim\limits_{A \to +\infty} \frac{A^{1-p} - 1}{1-p} = \frac{1}{p-1} A→+∞lim1−pA1−p−1=p−11
该无穷积分收敛。
当 p < 1 p < 1 p<1时, 1 − p > 0 1-p > 0 1−p>0, lim A → + ∞ A 1 − p = + ∞ \lim\limits_{A \to +\infty} A^{1-p} = +\infty A→+∞limA1−p=+∞,所以该无穷积分发散。
结论 :无穷积分 ∫ 1 + ∞ 1 x p d x \int_{1}^{+\infty} \frac{1}{x^p}dx ∫1+∞xp1dx 当 p > 1 时收敛,当 p ≤ 1 时发散
Python验证:
见calculus/chapter07/note43_test05.py
python
import sympy as sp
import numpy as np
import matplotlib.pyplot as plt
# 定义符号变量
x, p = sp.symbols('x p', positive=True)
# 计算∫1/x^p dx从1到∞
integral_p = sp.integrate(1/x**p, (x, 1, sp.oo))
print(f"无穷积分∫1/x^p dx从1到∞的结果: {integral_p}")
# 具体数值验证
print("\n具体数值验证:")
for p_val in [0.5, 1, 1.5, 2]:
if p_val == 1:
# p=1时特殊处理
integral_val = sp.integrate(1/x, (x, 1, 1000)) # 取大数近似无穷
convergence = "发散"
else:
integral_val = sp.integrate(1/x**p_val, (x, 1, sp.oo))
convergence = "收敛" if p_val > 1 else "发散"
print(f"p={p_val}: 积分值≈{float(integral_val.evalf()):.4f} ({convergence})")
# 可视化不同p值对应的函数图像
x_vals = np.linspace(1, 10, 100)
p_values = [0.5, 1, 1.5, 2]
colors = ['red', 'blue', 'green', 'orange']
labels = [r'$p=0.5$', r'$p=1$', r'$p=1.5$', r'$p=2$']
plt.figure(figsize=(12, 8))
for i, p_val in enumerate(p_values):
y_vals = 1/(x_vals**p_val)
plt.plot(x_vals, y_vals, color=colors[i], linewidth=2, label=labels[i])
plt.xlabel('x')
plt.ylabel('y')
plt.title(r'函数族 $y=1/x^p$ 的图像')
plt.legend()
plt.grid(True)
plt.ylim(0, 1.2)
plt.show()
运行结果:
无穷积分∫1/x^p dx从1到∞的结果: 1/(p - 1)
具体数值验证:
p=0.5: 积分值≈inf (发散)
p=1: 积分值≈6.9078 (发散)
p=1.5: 积分值≈2.0000 (收敛)
p=2: 积分值≈1.0000 (收敛)

2.6、判断无穷积分 ∫ 2 + ∞ 1 x ln p x d x \int_{2}^{+\infty} \frac{1}{x\ln^p x}dx ∫2+∞xlnpx1dx的敛散性
手动计算 :令 u = ln x u = \ln x u=lnx,则 d u = 1 x d x du = \frac{1}{x}dx du=x1dx,积分变为:
∫ 2 A 1 x ln p x d x = ∫ ln 2 ln A 1 u p d u \int_{2}^{A} \frac{1}{x\ln^p x}dx = \int_{\ln 2}^{\ln A} \frac{1}{u^p}du ∫2Axlnpx1dx=∫ln2lnAup1du
-
当 p = 1 p = 1 p=1时 :
∫ ln 2 ln A 1 u d u = ln u ∣ ln 2 ln A = ln ( ln A ) − ln ( ln 2 ) \int_{\ln 2}^{\ln A} \frac{1}{u}du = \ln u\big|_{\ln 2}^{\ln A} = \ln(\ln A) - \ln(\ln 2) ∫ln2lnAu1du=lnu ln2lnA=ln(lnA)−ln(ln2)
lim A → + ∞ ln ( ln A ) − ln ( ln 2 ) = + ∞ \lim\limits_{A \to +\infty} \\ln(\\ln A) - \\ln(\\ln 2) = +\infty A→+∞limln(lnA)−ln(ln2)=+∞ 所以该无穷积分发散。
-
当 p ≠ 1 p \neq 1 p=1时 :
∫ ln 2 ln A 1 u p d u = u 1 − p 1 − p ∣ ln 2 ln A = ( ln A ) 1 − p − ( ln 2 ) 1 − p 1 − p \int_{\ln 2}^{\ln A} \frac{1}{u^p}du = \frac{u^{1-p}}{1-p}\big|_{\ln 2}^{\ln A} = \frac{(\ln A)^{1-p} - (\ln 2)^{1-p}}{1-p} ∫ln2lnAup1du=1−pu1−p ln2lnA=1−p(lnA)1−p−(ln2)1−p
当 p > 1 p > 1 p>1时, 1 − p < 0 1-p < 0 1−p<0, lim A → + ∞ ( ln A ) 1 − p = 0 \lim\limits_{A \to +\infty} (\ln A)^{1-p} = 0 A→+∞lim(lnA)1−p=0,所以:
lim A → + ∞ ( ln A ) 1 − p − ( ln 2 ) 1 − p 1 − p = ( ln 2 ) 1 − p p − 1 \lim\limits_{A \to +\infty} \frac{(\ln A)^{1-p} - (\ln 2)^{1-p}}{1-p} = \frac{(\ln 2)^{1-p}}{p-1} A→+∞lim1−p(lnA)1−p−(ln2)1−p=p−1(ln2)1−p
该无穷积分收敛。
当 p < 1 p < 1 p<1时, 1 − p > 0 1-p > 0 1−p>0, lim A → + ∞ ( ln A ) 1 − p = + ∞ \lim\limits_{A \to +\infty} (\ln A)^{1-p} = +\infty A→+∞lim(lnA)1−p=+∞,所以该无穷积分发散。
结论 :无穷积分 ∫ 2 + ∞ 1 x ln p x d x \int_{2}^{+\infty} \frac{1}{x\ln^p x}dx ∫2+∞xlnpx1dx 当 p > 1 时收敛,当 p ≤ 1 时发散
Python验证:
见calculus/chapter07/note43_test06.py
python
import sympy as sp
import numpy as np
import matplotlib.pyplot as plt
# 定义符号变量
x, p = sp.symbols('x p', positive=True)
# 计算∫1/(x*ln(x)^p) dx从2到∞
integral_ln = sp.integrate(1/(x*sp.log(x)**p), (x, 2, sp.oo))
print(f"无穷积分∫1/(x*ln(x)^p) dx从2到∞的结果: {integral_ln}")
# 具体数值验证
print("\n具体数值验证:")
for p_val in [0.5, 1, 1.5, 2]:
if p_val == 1:
# p=1时特殊处理
integral_val = sp.integrate(1/(x*sp.log(x)), (x, 2, 1000))
convergence = "发散"
else:
integral_val = sp.integrate(1/(x*sp.log(x)**p_val), (x, 2, sp.oo))
convergence = "收敛" if p_val > 1 else "发散"
print(f"p={p_val}: 积分值≈{float(integral_val.evalf()):.4f} ({convergence})")
# 可视化不同p值对应的函数图像
x_vals = np.linspace(2, 10, 100)
p_values = [0.5, 1, 1.5, 2]
colors = ['red', 'blue', 'green', 'orange']
labels = [r'$p=0.5$', r'$p=1$', r'$p=1.5$', r'$p=2$']
plt.figure(figsize=(12, 8))
for i, p_val in enumerate(p_values):
y_vals = 1/(x_vals * (np.log(x_vals))**p_val)
plt.plot(x_vals, y_vals, color=colors[i], linewidth=2, label=labels[i])
plt.xlabel('x')
plt.ylabel('y')
plt.title(r'函数族 $y=1/(x\ln^p x)$ 的图像')
plt.legend()
plt.grid(True)
plt.ylim(0, 0.8)
plt.show()
运行结果:
无穷积分∫1/(x*ln(x)^p) dx从2到∞的结果: Integral(1/(x*log(x)**p), (x, 2, oo))
具体数值验证:
p=0.5: 积分值≈inf (发散)
p=1: 积分值≈2.2992 (发散)
p=1.5: 积分值≈2.4022 (收敛)
p=2: 积分值≈1.4427 (收敛)

三、总结与学习建议
无穷积分作为定积分的推广,为我们解决积分区间无限的问题提供了有力工具。要掌握这一概念,建议:
-
理解本质 :无穷积分的本质是极限过程,通过有限区间的积分取极限来定义无限区间的积分
-
掌握判别法:熟练运用比较判别法及其极限形式,这是判断无穷积分敛散性的关键
-
理论联系实际:通过物理应用(如引力做功)理解无穷积分的实际意义
-
借助工具:使用Python等工具验证结果,增强直观理解
至此,我们已经掌握了无穷积分的基本概念和计算方法。但是能用定义求值的无穷积分毕竟只是少数。在具体问题中,人们往往首先关心的是无穷积分是否收敛。下一章,我们将介绍无穷积分的几个基本判敛法。
思考题:你能举出其他无穷积分在实际中应用的例子吗?欢迎在评论区留言讨论!
本文是《程序员AI之路:从Python起步》系列笔记之一,完整目录、可运行代码与补充图示会同步整理在个人站点(https://www.xuexilab.cn/),方便按学习路径连续阅读, 在线代码练习。文中代码环境:Python 3.8+、SymPy 1.9+、Matplotlib 3.5+。欢迎在评论区交流应用例子。