网站首页
手机版

人工智能之数学基础 微积分:第四章 积分应用

更新时间:作者:小小条

人工智能之数学基础 微积分----公式关注公众号

第四章 积分应用

人工智能之数学基础 微积分:第四章 积分应用


前言

积分是微积分的两大支柱之一,与导数互为逆运算。定积分不仅用于计算面积、体积,更是概率论中累积分布函数(CDF)的核心工具。本文系统讲解不定积分、定积分、微积分基本定理、数值积分方法,并重点展示其在连续型概率分布(如正态分布、指数分布)中的应用,配套完整的 Python(SciPy / NumPy / Matplotlib / SymPy)代码实现与可视化。


一、积分基础概念

1. 不定积分(Indefinite Integral)

定义:函数 $ f(x) $ 的原函数族(反导数)

$ \int f(x) \, dx = F(x) + C, \quad \text{其中 } F'(x) = f(x) $

例:$ \int 2x \, dx = x^2 + C $

2. 定积分(Definite Integral)

定义(黎曼和):

$ \inta^b f(x) \, dx = \lim{n \to \infty} \sum{i=1}^n f(xi^*) \Delta x $

几何意义:曲线 $ y = f(x) $ 与 $ x $-轴在 $[a, b]$ 间围成的有向面积

二、微积分基本定理(Fundamental Theorem of Calculus)

连接微分与积分的桥梁

若 $ f $ 在 $[a, b]$ 上连续,且 $ F $ 是 $ f $ 的一个原函数,则:

$ \int_a^b f(x) \, dx = F(b) - F(a) $

✅ 这使得定积分可通过求原函数计算,无需极限求和。


三、积分在概率论中的核心作用

对连续型随机变量 \( X \),其概率由概率密度函数(PDF) \( f_X(x) \) 描述:

概率 = PDF 在区间上的定积分

$ P(a \leq X \leq b) = \inta^b fX(x) \, dx $

累积分布函数(CDF) 定义为:

$ FX(x) = P(X \leq x) = \int{-\infty}^x f_X(t) \, dt $

因此,CDF 就是 PDF 的定积分(从 $-\infty$ 到 $x$)


四、常见连续分布的积分应用

1. 正态分布(高斯分布)

PDF:$ f(x) = \frac{1}{\sigma \sqrt{2\pi}} e^{-\frac{(x - \mu)^2}{2\sigma^2}} $CDF:无初等函数表达式!需用误差函数(erf) 或数值积分

$ F(x) = \frac{1}{2} \left[ 1 + \operatorname{erf}\left( \frac{x - \mu}{\sigma \sqrt{2}} \right) \right] $

2. 指数分布

PDF:$ f(x) = \lambda e^{-\lambda x},\ x \geq 0 $CDF(可解析积分):

$ F(x) = \int_0^x \lambda e^{-\lambda t} dt = 1 - e^{-\lambda x} $

3. 均匀分布

PDF:$ f(x) = \frac{1}{b - a},\ a \leq x \leq b $CDF:

$ F(x) = \begin{cases} 0 & x < a \\ \frac{x - a}{b - a} & a \leq x \leq b \\ 1 & x > b \end{cases} $


五、Python 代码实现

1. 导入库

import numpy as npimport matplotlib.pyplot as pltfrom scipy import integratefrom scipy.stats import norm, expon, uniformimport sympy as sp# 设置绘图风格plt.rcParams['figure.figsize'] = (10, 5)


2. 符号积分(SymPy)

x = sp.symbols('x')# 不定积分expr1 = sp.exp(-x)indef_int = sp.integrate(expr1, x)print("∫ e⁻ˣ dx =", indef_int)# 定积分:指数分布 CDFlam = sp.symbols('λ', positive=True)pdf_exp = lam * sp.exp(-lam * x)cdf_exp = sp.integrate(pdf_exp, (x, 0, x)) # 从 0 到 xprint("指数分布 CDF =", cdf_exp)# 正态分布:无法解析积分pdf_norm = (1/sp.sqrt(2*sp.pi)) * sp.exp(-x**2 / 2)try: cdf_norm = sp.integrate(pdf_norm, (x, -sp.oo, x)) print("标准正态 CDF =", cdf_norm)except Exception as e: print("正态分布无初等原函数 → 需数值方法或 erf")


3. 数值积分:计算概率

场景:计算 $ P(1 \leq X \leq 2) $,其中 $ X \sim \mathcal {N}(0, 1) $

# 方法1:使用 scipy.stats(推荐)prob1 = norm.cdf(2) - norm.cdf(1)print(f"P(1 ≤ X ≤ 2) via CDF: {prob1:.6f}")# 方法2:直接数值积分 PDFresult, error = integrate.quad(norm.pdf, 1, 2)print(f"P(1 ≤ X ≤ 2) via quad(): {result:.6f} ± {error:.2e}")# 方法3:蒙特卡洛模拟(验证)np.random.seed(42)samples = np.random.normal(0, 1, size=1000000)prob_mc = np.mean((samples >= 1) & (samples <= 2))print(f"P(1 ≤ X ≤ 2) via Monte Carlo: {prob_mc:.6f}")

输出:

P(1 ≤ X ≤ 2) via CDF: 0.135905P(1 ≤ X ≤ 2) via quad(): 0.135905 ± 1.51e-15P(1 ≤ X ≤ 2) via Monte Carlo: 0.135872


4. 可视化:PDF 与 CDF

x_vals = np.linspace(-4, 4, 400)# 正态分布pdf_vals = norm.pdf(x_vals)cdf_vals = norm.cdf(x_vals)plt.figure(figsize=(12, 4))# PDF + 阴影区域plt.subplot(1, 2, 1)plt.plot(x_vals, pdf_vals, 'b-', label='PDF')# 阴影 P(1 ≤ X ≤ 2)x_fill = np.linspace(1, 2, 100)plt.fill_between(x_fill, norm.pdf(x_fill), color='orange', alpha=0.5, label='P(1≤X≤2)')plt.title('概率密度函数(PDF)')plt.xlabel('x'); plt.ylabel('f(x)')plt.legend(); plt.grid(True)# CDFplt.subplot(1, 2, 2)plt.plot(x_vals, cdf_vals, 'r-', label='CDF')plt.axvline(1, color='gray', linestyle='--')plt.axvline(2, color='gray', linestyle='--')plt.scatter([1, 2], [norm.cdf(1), norm.cdf(2)], color='red')plt.title('累积分布函数(CDF)')plt.xlabel('x'); plt.ylabel('F(x)')plt.legend(); plt.grid(True)plt.tight_layout()plt.show()

左图:概率 = 曲线下面积;右图:CDF 差值 = 区间概率。


5. 自定义分布:数值积分求 CDF

假设 PDF 为 $ f(x) = \frac{3}{4}(1 - x^2),\ -1 \leq x \leq 1 $

def custom_pdf(x): return 0.75 * (1 - x**2) * ((x >= -1) & (x <= 1))# 验证归一化:∫ f(x) dx = 1total_prob, _ = integrate.quad(custom_pdf, -1, 1)print(f"总概率(应为1): {total_prob:.6f}")# 计算 CDF 函数(数值积分)def custom_cdf(x): if x < -1: return 0.0 elif x > 1: return 1.0 else: result, _ = integrate.quad(custom_pdf, -1, x) return result# 向量化custom_cdf_vec = np.vectorize(custom_cdf)x_plot = np.linspace(-2, 2, 400)pdf_plot = custom_pdf(x_plot)cdf_plot = custom_cdf_vec(x_plot)plt.figure(figsize=(10, 4))plt.subplot(1, 2, 1)plt.plot(x_plot, pdf_plot, 'b-')plt.title('自定义 PDF')plt.grid(True)plt.subplot(1, 2, 2)plt.plot(x_plot, cdf_plot, 'r-')plt.title('自定义 CDF(数值积分)')plt.grid(True)plt.tight_layout()plt.show()


6. 多重积分:联合概率(二维正态分布)

计算 $ P(X \leq 0, Y \leq 0) $ 对于标准二维正态分布(独立)

from scipy.stats import multivariate_normal# 联合 PDFmean = [0, 0]cov = [[1, 0], [0, 1]] # 独立rv = multivariate_normal(mean, cov)# 方法1:直接使用 CDF(scipy 支持)prob_joint = rv.cdf([0, 0])print(f"P(X≤0, Y≤0) = {prob_joint:.6f} (应为 0.25)")# 方法2:双重数值积分def joint_pdf(y, x): # 注意 integrate.dblquad 顺序 return rv.pdf([x, y])result2d, err2d = integrate.dblquad( joint_pdf, -np.inf, 0, # x 从 -∞ 到 0 lambda x: -np.inf, lambda x: 0 # y 从 -∞ 到 0)print(f"双重积分结果: {result2d:.6f} ± {err2d:.2e}")


7. 积分技巧:换元法与分部积分(SymPy 示例)

# 换元法:∫ 2x cos(x²) dxexpr_sub = 2*x * sp.cos(x**2)int_sub = sp.integrate(expr_sub, x)print("换元法示例:", int_sub) # sin(x²) + C# 分部积分:∫ x e^x dxexpr_part = x * sp.exp(x)int_part = sp.integrate(expr_part, x)print("分部积分示例:", int_part) # (x - 1)e^x + C


六、数值积分方法简介

当无法解析积分时,常用数值方法:

方法

原理

Python 函数

梯形法则

用梯形近似曲边梯形

np.trapz

辛普森法则

用抛物线近似

scipy.integrate.simps

自适应高斯-克朗罗德

自动调整精度

scipy.integrate.quad(默认)

# 比较不同数值积分方法x_fine = np.linspace(0, 2, 1000)y_fine = norm.pdf(x_fine)trapz_result = np.trapz(y_fine, x_fine)simps_result = integrate.simps(y_fine, x_fine)quad_result, _ = integrate.quad(norm.pdf, 0, 2)print(f"梯形法则: {trapz_result:.6f}")print(f"辛普森法则: {simps_result:.6f}")print(f"quad()(高精度): {quad_result:.6f}")


七、总结:积分在概率中的核心地位

概念

数学表达

Python 实现

概率

$ P(a \leq X \leq b) = \int_a^b f(x) dx $

integrate.quad(pdf, a, b)

CDF

$ F(x) = \int_{-\infty}^x f(t) dt $

dist.cdf(x)

期望

$\mathbb{E}[X] = \int x f(x) dx $

dist.mean() 或 integrate.quad(lambda x: x*pdf(x), ...)

方差

$ \text{Var}(X) = \int (x - \mu)^2 f(x) dx $

dist.var()

关键洞见:

所有连续概率计算本质都是定积分;正态分布等重要分布的 CDF 无初等表达式,依赖特殊函数(erf)或数值积分;SciPy 的 scipy.stats 封装了常见分布的 PDF/CDF/数值积分,优先使用;自定义分布时,可用 integrate.quad 构建 CDF。

掌握积分,从概率密度到实际概率,为统计推断、机器学*(如变分推断)、金融工程等打下坚实基础。

后续

python过渡项目部分代码已经上传至gitee,后续会逐步更新。

资料关注

公众号:咚咚王 gitee:
https://gitee.com/wy18585051844/ai_learning

《Python编程:从入门到实践》 《利用Python进行数据分析》 《算法导论中文第三版》 《概率论与数理统计(第四版) (盛骤) 》 《程序员的数学》 《线性代数应该这样学第3版》 《微积分和数学分析引论》 《(西瓜书)周志华-机器学*》 《TensorFlow机器学*实战指南》 《Sklearn与TensorFlow机器学*实用指南》 《模式识别(第四版)》 《深度学* deep learning》伊恩·古德费洛著 花书 《Python深度学*第二版(中文版)【纯文本】 (登封大数据 (Francois Choliet)) (Z-Library)》 《深入浅出神经网络与深度学*+(迈克尔·尼尔森(Michael+Nielsen)》 《自然语言处理综论 第2版》 《
Natural-Language-Processing-with-PyTorch》 《计算机视觉-算法与应用(中文版)》 《Learning OpenCV 4》 《AIGC:智能创作时代》杜雨+&+张孜铭 《AIGC原理与实践:零基础学大语言模型、扩散模型和多模态模型》 《从零构建大语言模型(中文版)》 《实战AI大模型》 《AI 3.0》

版权声明:本文转载于今日头条,版权归作者所有,如果侵权,请联系本站编辑删除

为您推荐

高三数学知识点归纳,抓住这5块,提分更稳

高三了,孩子数学成绩总在某个分数段卡着,上不去,家长看着着急,学生自己学得也迷茫。问题出在哪?很多时候,不是孩子不够努力,而是复习没抓到点子上。数学内容多,时间紧,不能像以前一样

2026-01-10 03:47

贝叶斯定理帮助我们确定概率

贝叶斯定理为我们清晰地思考不确定性以及概率影响结果的方式提供了一个工具。托马斯·贝叶斯是一位数学家、长老会牧师和艾萨克·牛顿爵士的捍卫者。今天,全世界的统计学家都

2026-01-10 03:47

高中概率与统计(离散型随机变量)公式大全(高清图片)

面对概率统计这个高考重点模块,许多同学常常陷入公式记不住、概念混淆、解题无从下手的困境。尤其是在处理离散型随机变量问题时,一不留神就会在期望计算或方差求解中失分。本

2026-01-10 03:46

高中数学概率论核心突破!随机变量及其分布最全汇总!

高中数学概率论核心突破!随机变量及其分布最全汇总,掌握这6大知识点高考再提15分!概率论不再是玄学!一篇搞定随机变量所有考点,轻松拿下高考压轴题!随机变量及其分布是概率论的核

2026-01-10 03:46

山西公布2022年第三批省直就业见习岗位1137个 地点均在太原市

6月28日,山西省人社厅公布2022年第三批省直就业见习岗位,共有33家用人单位提供1137个就业见习岗位,离校2年内未就业的高校毕业生和16岁~24岁的失业青年可报名参加为期3个月至12

2026-01-10 03:45

「教育观察」山西:大学生见习期被录用可算工龄

本报讯(记者 赵岩)近日,山西省人社厅公布了26家单位的1241个高校毕业生就业见习岗位,有见习意向的高校毕业生可从中挑选适合自己的职位,参加为期3个月至12个月的带薪就业见习。见

2026-01-10 03:45