用Python来学微积分29-原函数与不定积分完全指南
开启数学新视角,掌握微积分逆运算的奥秘
大家好!今天我们来一起探索微积分中极具魅力的概念——原函数与不定积分。这是微积分中与求导相对应的"逆运算",就像加法和减法的关系一样。掌握了它,你就能解决很多实际应用问题!
一、原函数:微积分的"反其道而行之"
1.1 什么是原函数?
让我们从一个简单的例子开始:我们知道函数 f(x)=2xf(x) = 2xf(x)=2x 的导数是 f′(x)=2f'(x) = 2f′(x)=2。那么反过来,谁的导数是 2x2x2x 呢?
通过逆向思维,我们发现 x2x^2x2 的导数正好是 2x2x2x,那么 x2x^2x2 就是 2x2x2x 的一个原函数。
正式定义:如果在区间 III 上,可导函数 F(x)F(x)F(x) 的导数为 f(x)f(x)f(x),即 F′(x)=f(x)F'(x) = f(x)F′(x)=f(x),那么 F(x)F(x)F(x) 就称为 f(x)f(x)f(x) 在区间 III 上的一个原函数。
1.2 原函数的不唯一性
有趣的是,一个函数的原函数并不唯一!比如:
- (x2)′=2x(x^2)' = 2x(x2)′=2x ⇒ x2x^2x2 是 2x2x2x 的原函数
 - (x2+1)′=2x(x^2 + 1)' = 2x(x2+1)′=2x ⇒ x2+1x^2 + 1x2+1 也是 2x2x2x 的原函数
 - (x2−5)′=2x(x^2 - 5)' = 2x(x2−5)′=2x ⇒ x2−5x^2 - 5x2−5 还是 2x2x2x 的原函数
 
实际上,同一函数的原函数之间只相差一个常数。如果 F(x)F(x)F(x) 是 f(x)f(x)f(x) 的一个原函数,那么 f(x)f(x)f(x) 的全体原函数可以表示为 F(x)+CF(x) + CF(x)+C(其中 CCC 为任意常数)。
1.3 验证原函数的性质
手动求解步骤:
- 写出原函数:F(x)=x2+CF(x) = x^2 + CF(x)=x2+C
 - 对 F(x)F(x)F(x) 求导:F′(x)=2xF'(x) = 2xF′(x)=2x
 - 验证结果:无论 CCC 取什么值,导数都是 2x2x2x
 
Python 代码实现:
import sympy as sp# 定义符号变量
x = sp.Symbol('x')# 定义函数F(x) = x^2 + C
C = 3  # 可以尝试改变C的值:1, -5, 100...
F = x**2 + C# 计算导数
derivative = sp.diff(F, x)
print(f"F(x) = {F} 的导数是:{derivative}")
 
代码运行结果和手动计算结果一致,如下:
F(x) = x**2 + 3 的导数是:2*x
 
二、不定积分:原函数的"全家福"
2.1 不定积分的定义
既然一个函数有无数个原函数,我们需要一种方式来表示所有原函数的集合,这就是不定积分。
函数 f(x)f(x)f(x) 在区间 III 上的全体原函数称为 f(x)f(x)f(x) 的不定积分,记作: ∫f(x)dx=F(x)+C\int f(x)dx = F(x) + C∫f(x)dx=F(x)+C 其中:
- ∫\int∫ 是积分号
 - f(x)f(x)f(x) 是被积函数
 - xxx 是积分变量
 - CCC 是积分常数
 
2.2 不定积分的几何意义
不定积分在几何上表示一簇称为积分曲线的曲线族。这些曲线在横坐标相同的点处的切线互相平行,因为它们在对应点的斜率相同(导数相同)。
2.3 计算不定积分示例
手动求解步骤:
- 识别被积函数:f(x)=2xf(x) = 2xf(x)=2x
 - 回想导数公式:(x2)′=2x(x^2)' = 2x(x2)′=2x
 - 写出原函数:F(x)=x2F(x) = x^2F(x)=x2
 - 添加积分常数:∫2xdx=x2+C\int 2x dx = x^2 + C∫2xdx=x2+C
 
Python 代码实现:
import sympy as sp# 定义符号变量
x = sp.Symbol('x')# 定义被积函数
f = 2*x# 计算不定积分
integral_result = sp.integrate(f, x)
print(f"函数 {f} 的不定积分是:{integral_result} + C")
 
代码运行结果:
函数 2*x 的不定积分是:x**2 + C
 
三、不定积分的基本公式:微积分的"九九乘法表"
就像学习乘法需要背九九乘法表一样,掌握不定积分需要熟记基本积分公式。这些公式实际上是基本导数公式的逆运算:
3.1 基本积分公式表
| 积分类型 | 公式 | 说明 | 
|---|---|---|
| 幂函数 | ∫xndx=xn+1n+1+C\int x^n dx = \frac{x^{n+1}}{n+1} + C∫xndx=n+1xn+1+C (n≠−1)(n \neq -1)(n=−1) | 最常用的积分公式 | 
| 指数函数 | ∫exdx=ex+C\int e^x dx = e^x + C∫exdx=ex+C | 指数函数积分不变 | 
| ∫axdx=axlna+C\int a^x dx = \frac{a^x}{\ln a} + C∫axdx=lnaax+C | 一般指数函数积分 | |
| 三角函数 | ∫sinxdx=−cosx+C\int \sin x dx = -\cos x + C∫sinxdx=−cosx+C | 注意负号! | 
| ∫cosxdx=sinx+C\int \cos x dx = \sin x + C∫cosxdx=sinx+C | ||
| 倒数 | $\int \frac{1}{x} dx = \ln | x | 
3.2 验证基本积分公式
手动求解示例:求 ∫x3dx\int x^3 dx∫x3dx
- 识别 n=3n = 3n=3
 - 应用幂函数公式:∫x3dx=x3+13+1+C\int x^3 dx = \frac{x^{3+1}}{3+1} + C∫x3dx=3+1x3+1+C
 - 计算结果:x44+C\frac{x^4}{4} + C4x4+C
 
Python 代码实现:
import sympy as sp# 定义符号变量
x = sp.Symbol('x')# 计算多个不定积分
functions = [x**3, sp.sin(x), sp.exp(x), 1/x]print("基本积分公式验证:")
for f in functions:integral = sp.integrate(f, x)print(f"∫({f}) dx = {integral} + C")
 
代码运行结果:
基本积分公式验证:
∫(x**3) dx = x**4/4 + C
∫(sin(x)) dx = -cos(x) + C
∫(exp(x)) dx = exp(x) + C
∫(1/x) dx = log(x) + C
 
四、不定积分的性质:简化计算的利器
不定积分有几个非常重要的性质,可以大大简化计算过程。
4.1 线性性质(最重要的性质)
∫[k1f(x)+k2g(x)]dx=k1∫f(x)dx+k2∫g(x)dx\int [k_1f(x) + k_2g(x)]dx = k_1\int f(x)dx + k_2\int g(x)dx∫[k1f(x)+k2g(x)]dx=k1∫f(x)dx+k2∫g(x)dx
其中 k1k_1k1、k2k_2k2 为常数。
4.2 微分与积分的互逆关系
- ddx[∫f(x)dx]=f(x)\frac{d}{dx}\left[\int f(x)dx\right] = f(x)dxd[∫f(x)dx]=f(x)(先积后导,还原函数)
 - ∫F′(x)dx=F(x)+C\int F'(x)dx = F(x) + C∫F′(x)dx=F(x)+C(先导后积,还原函数加常数)
 
4.3 验证线性性质
手动求解步骤:求 ∫(3x2+2sinx−5ex)dx\int (3x^2 + 2\sin x - 5e^x) dx∫(3x2+2sinx−5ex)dx
- 应用线性性质:3∫x2dx+2∫sinxdx−5∫exdx3\int x^2 dx + 2\int \sin x dx - 5\int e^x dx3∫x2dx+2∫sinxdx−5∫exdx
 - 应用基本公式: 
- ∫x2dx=x33+C1\int x^2 dx = \frac{x^3}{3} + C_1∫x2dx=3x3+C1
 - ∫sinxdx=−cosx+C2\int \sin x dx = -\cos x + C_2∫sinxdx=−cosx+C2
 - ∫exdx=ex+C3\int e^x dx = e^x + C_3∫exdx=ex+C3
 
 - 组合结果:x3−2cosx−5ex+Cx^3 - 2\cos x - 5e^x + Cx3−2cosx−5ex+C
 
Python 代码实现:
import sympy as sp# 定义符号变量
x = sp.Symbol('x')# 定义复杂函数
f = 3*x**2 + 2*sp.sin(x) - 5*sp.exp(x)print("验证线性性质:")
print(f"原函数:{f}")# 方法一:直接积分
direct_integral = sp.integrate(f, x)
print(f"直接积分结果:{direct_integral}")# 方法二:分别积分再组合
part1 = 3 * sp.integrate(x**2, x)
part2 = 2 * sp.integrate(sp.sin(x), x)
part3 = -5 * sp.integrate(sp.exp(x), x)
combined_integral = part1 + part2 + part3
print(f"分别积分组合结果:{combined_integral}")# 验证两种方法结果是否相同
print(f"结果相同:{sp.simplify(direct_integral - combined_integral) == 0}")
 
代码运行结果:
验证线性性质:
原函数:3*x**2 - 5*exp(x) + 2*sin(x)
直接积分结果:x**3 - 5*exp(x) - 2*cos(x)
分别积分组合结果:x**3 - 5*exp(x) - 2*cos(x)
结果相同:True
 
五、实战演练:综合应用
让我们通过一个复杂例子来综合运用所学知识:
求不定积分:∫(2x3−3cosx+4x)dx\int (2x^3 - 3\cos x + \frac{4}{x}) dx∫(2x3−3cosx+x4)dx
手动求解详细步骤:
-  
拆分积分: ∫(2x3−3cosx+4x)dx=2∫x3dx−3∫cosxdx+4∫1xdx\int (2x^3 - 3\cos x + \frac{4}{x}) dx = 2\int x^3 dx - 3\int \cos x dx + 4\int \frac{1}{x} dx∫(2x3−3cosx+x4)dx=2∫x3dx−3∫cosxdx+4∫x1dx
 -  
应用基本积分公式:
- ∫x3dx=x44+C1\int x^3 dx = \frac{x^4}{4} + C_1∫x3dx=4x4+C1
 - ∫cosxdx=sinx+C2\int \cos x dx = \sin x + C_2∫cosxdx=sinx+C2
 - ∫1xdx=ln∣x∣+C3\int \frac{1}{x} dx = \ln |x| + C_3∫x1dx=ln∣x∣+C3
 
 -  
代入并简化: 2×x44−3×sinx+4×ln∣x∣+C=12x4−3sinx+4ln∣x∣+C2 \times \frac{x^4}{4} - 3 \times \sin x + 4 \times \ln |x| + C = \frac{1}{2}x^4 - 3\sin x + 4\ln |x| + C2×4x4−3×sinx+4×ln∣x∣+C=21x4−3sinx+4ln∣x∣+C
 -  
验证结果: 对结果求导:ddx(12x4−3sinx+4ln∣x∣)=2x3−3cosx+4x\frac{d}{dx} \left( \frac{1}{2}x^4 - 3\sin x + 4\ln |x| \right) = 2x^3 - 3\cos x + \frac{4}{x}dxd(21x4−3sinx+4ln∣x∣)=2x3−3cosx+x4 ✓
 
Python 代码实现:
import sympy as sp# 定义符号变量
x = sp.Symbol('x')# 定义被积函数
f = 2*x**3 - 3*sp.cos(x) + 4/x# 计算不定积分
result = sp.integrate(f, x)
print(f"不定积分结果:{result} + C")# 验证结果:对积分结果求导
derivative_check = sp.diff(result, x)
print(f"验证导数:{derivative_check}")
print(f"验证通过:{sp.simplify(derivative_check - f) == 0}")
 
代码运行结果:
不定积分结果:x**4/2 + 4*log(x) - 3*sin(x) + C
验证导数:2*x**3 - 3*cos(x) + 4/x
验证通过:True
 
六、总结与思考
今天我们学习了:
- 原函数:导数的逆运算
 - 不定积分:所有原函数的集合
 - 基本积分公式:必须熟记的"积分表"
 - 线性性质:简化复杂积分计算的利器
 
不定积分是微积分中的重要基础,它为后续学习定积分、微分方程等内容奠定了坚实的基础。
互动环节:
- 你最喜欢哪个积分公式?为什么?
 - 尝试手动计算 ∫(3x4+2/x−5sinx)dx\int (3x^4 + 2/x - 5\sin x) dx∫(3x4+2/x−5sinx)dx,并在评论区分享你的步骤和结果!
 - 如果遇到困难,记得使用Python验证你的结果哦!
 
往期精彩回顾:
- 用Python来学微积分27-曲线的渐近线
 - 用Python来学微积分28-泰勒公式
 
专栏导航目录 《程序员AI之路:从Python起步》完全学习导航
完整代码已开源 ai-learning-path,欢迎Star和Fork!
下期预告:在下一篇文章中,我们将开始学习曲线的渐近线。
参考资料:
- 扈志明《微积分》教材
 
互动邀请:如果你对本章内容有独特的理解或在实际应用中遇到过有趣的问题,欢迎在评论区分享交流!
