数列
数列与递推关系式
编辑
编辑
数列极限
当一个函数的自变量无限接近某个值时,函数本身的值会无限接近于什么。极限的精髓:它
关注的是趋势,而不是特定点的实际值。
编辑
累加
编辑
极限
当一个函数的自变量无限接近某个值时,函数本身的值会无限接近于什么。极限的精髓:它
关注的是趋势,而不是特定点的实际值。
编辑
编辑
红色空心圆:这个圆圈标记了函数在 x=1 处的缺失点。虽然函数在该点没有定义,但从图像上
可以清楚地看到,当 x 从左边或右边无限接近 1 时,函数值无限接近 2。虚线:水平和垂直虚线明
确地指出了这个极限点的位置,即 (1,2)。
下面将展示一个简单的 Sigmoid 函数的例子,并编写代码,通过数值方法来求解其在 x 趋近于
正无穷和负无穷时的极限,最后将这个过程可视化。对于需要精确的符号解(而不是数值近似)的
情况,我们可以使用像 SymPy 这样的 Python 库。SymPy 可以进行代数运算,它知道极限的数学
规则,可以直接求解。
import sympy as sp # 定义一个符号变量 x x = sp.Symbol('x') # 定义 Sigmoid 函数的符号表达式 sigmoid_expr = 1 / (1 + sp.exp(-x)) # 求解当 x 趋近于正无穷时的极限 limit_pos_inf = sp.limit(sigmoid_expr, x, sp.oo) # 求解当 x 趋近于负无穷时的极限 limit_neg_inf = sp.limit(sigmoid_expr, x, -sp.oo) # 打印结果 print(f"当 x 趋近于 +∞ 时,Sigmoid函数的极限是: {limit_pos_inf}") print(f"当 x 趋近于 -∞ 时,Sigmoid函数的极限是: {limit_neg_inf}")
当 x 趋近于 +∞ 时,Sigmoid函数的极限是: 1 当 x 趋近于 -∞ 时,Sigmoid函数的极限是: 0
编辑
在人工智能中,链式法则本身就是基于复合函数求导的,而求导的基础就是极限。可以说,反
向传播算法的高效性,完全建立在微积分和极限的严格理论之上。
无穷小
编辑
编辑
无穷大
编辑
编辑
函数
一元函数
一次函数 在数学函数中最基本、最重要的就是一次函数。它它在神经网络的世界里也同样重
要。这个函数可以用下式表示。
编辑
多元函数
编辑
编辑
单位阶跃函数
编辑
Sigmoid 函数
编辑
应用:
在 AI 的技术逻辑中,所有智能决策与预测,本质都是 “找一个合适的函数”。无论是让模型识
别猫和 狗,还是预测明天的气温,核心目标都是构建一个能精准描述 “输入数据” 与 “输出结果” 对
应关系的函数。
导数
导数的概念
简单来说:函数在某一点的导数,就是函数图像在这一点切线的斜率。
微分:是一个增量,它是在导数的基础上,用来近似函数在自变量微小变化时所产生的增量。
微分就是用导数(斜率)来估算这个小增量。
编辑
编辑
编辑
曲率
编辑
编辑
编辑
编辑
编辑
三大中值定理
本质就是:割线的斜率等于切线的斜率
罗尔定理
编辑
拉格朗日定理
编辑
编辑
柯西定理
编辑
泰勒公式
编辑
编辑
编辑
编辑
编辑
为什么这个方法有效?
泰勒公式的核心在于,它利用了函数在某一点的所有导数信息。这些导数信息包含了函数在这一
点周围的所有局部几何特征:一阶导数:决定了函数的斜率。二阶导数:决定了函数的凹凸性。三
阶及更高阶导数:决定了函数的“弯曲变化”。通过把所有这些局部信息叠加起来,泰勒多项式就能
像一个“整形医生”一样,越来越精确地模仿原始函数的局部形状。
编辑
应用
近似计算:在计算机中,计算 ex 或 sinx 这样复杂函数的值时,通常就是使用它们的泰勒级数展开
式,通过有限项求和来得到近似值。
编辑
在人工智能领域:假设我们有一个神经网络模型,我们想要通过调整其参数来最小化在训练集上的
损失函数。然而,有时候这个损失函数非常复杂,难以直接求解。这时候,我们可以使用泰勒公式
来近似表示这个复杂的损失函数。我们选择一个适当的点作为展开的中心点,然后计算损失函数在
这个点的值、一阶导数、二阶导数等。我们可以使用泰勒公式将损失函数在这个点附近展开为一个
简单的二次函数。我们可以使用这个简化的二次函数来找到损失函数的最小值。虽然这个最小值可
能不是原始损失函数的真实最小值,但它足够接近,让我们可以通过调整模型参数来得到一个好的
解决方案。
积分
不定积分
不定积分就是寻找一个已知函数求导前的那个原函数 F(x),它代表了一族只相差一个常数的函数。
编辑
不定积分的本质是求原函数,导数的本质是关于x点对应切线斜率的函数
编辑
求出2x的不定积分
from sympy import symbols, integrate # 1. 定义符号变量 x = symbols('x') # 2. 定义被积函数 f(x) = 2x f_x = 2 * x # 3. 求解不定积分 (integrate(函数, 变量)) # SymPy 计算符号积分 F_x = integrate(f_x, x) # 4. 输出结果 print("使用 SymPy 求解 2x 的不定积分:") # SymPy 返回 x**2,我们必须加上 + C print(f"∫ 2x dx = {F_x} + C")
编辑
应用
不定积分是连接变化率(微分)与物理状态(原函数)的桥梁,是进行运动预测、能量分析和
结构设计的基础数学工具。
定积分
定积分就是曲线下的面积(Area Under a Curve),它代表一个函数在某一区间内的净累计量
或总量。
编辑
编辑
from sympy import symbols, integrate # 1. 定义符号变量 x = symbols('x') # 2. 定义被积函数 f(x) = x^2 f_x = x**2 # 3. 求解定积分:integrate(函数, (变量, 下限, 上限)) # (x, 0, 1) 表示对 x 在 [0, 1] 区间上积分 definite_integral = integrate(f_x, (x, 0, 1)) # 4. 输出结果 print("--- 符号计算 (SymPy) ---") print(f"定积分表达式: ∫[0, 1] x^2 dx") print(f"精确解析解: {definite_integral}") # 结果是 1/3
应用
定积分是进行精确量化和性能分析的基础,它将连续的物理量(如速度、流量、功率)累加为
有实际意义的工程总量。
变上限积分
设函数 f(t) 在区间 [a,b] 上连续,则以 x 为上限的变上限积分函数 F(x) 定义为:
编辑
我们考虑函数 f(t)=t,并定义一个以 x 为上限,以 0 为下限的变上限积分函数 F(x):
编辑
编辑
from sympy import symbols, integrate # 1. 定义符号变量 # t 是积分变量 (dummy variable) # x 是积分的上限变量 (variable upper limit) t, x = symbols('t x') # 2. 定义被积函数 f(t) f_t = t # 3. 求解变上限定积分:∫[0, x] t dt # 格式为 integrate(函数, (积分变量, 下限, 上限)) F_x = integrate(f_t, (t, 0, x)) # 4. 输出结果 print("--- SymPy 求解变上限积分 ---") print(f"被积函数 f(t) = {f_t}") print(f"积分区间: [0, x]") print("-" * 30) print(f"变上限积分函数 F(x) = {F_x}")
应用:
变上限积分提供了一种强大的函数建模方法,用一个连续变化的函数 F(x) 来描述系统在任意时
刻或任意位置所达到的累计状态。
反常积分
反常积分是定积分的推广,用于计算积分区间是无穷大或被积函数在积分区间内存在无穷间断
点时曲线下的面积。
无穷区间的反常积分
编辑
编辑
from sympy import symbols, integrate, oo # 1. 定义符号变量 x = symbols('x') # 2. 定义被积函数 f(x) = 1/x^2 f_x = 1/x**2 # 3. 求解反常定积分:integrate(函数, (变量, 下限, 上限)) # oo (infinity) 代表无穷大 definite_improper_integral = integrate(f_x, (x, 1, oo)) # 4. 输出结果 print("--- 符号计算 (SymPy) ---") print(f"反常积分表达式: ∫[1, ∞] 1/x^2 dx") print(f"精确解析解: {definite_improper_integral}")
编辑
编辑
编辑
编辑
无界函数的反常积分
编辑
编辑
编辑
编辑
应用:在工程中,反常积分主要用于分析那些在时间或空间上无限延伸的系统或现象。
微分方程
微分方程是包含一个函数及其导数(变化率)的数学方程,用于描述自然界或工程系统中变量
之间的动态关系。
微分方程可以分为常微分方程(Ordinary Differential Equation, ODE)和偏微分方程(Partial
Differential Equation, PDE)两大类。
常微分方程 (ODE) ,只包含一个独立变量及其导数:
编辑
偏微分方程 (PDE),包含两个或更多独立变量及其偏导数:
编辑
假设药物以某个恒定速率被身体消除。药物的浓度 C 在时间 t 内的变化率 dt/dC 与当时的药物
浓度 C 成正比。
编辑
import numpy as np from scipy.integrate import odeint import matplotlib.pyplot as plt import matplotlib as mpl # 尝试使用系统中常见的几种中文字体 plt.rcParams['font.sans-serif'] = ['SimHei', 'WenQuanYi Micro Hei', 'Arial Unicode MS', 'Heiti TC'] # 解决负号显示为方块的问题 plt.rcParams['axes.unicode_minus'] = False # ========================================================= # --- 2. 定义微分方程函数 --- def drug_decay_model(C, t, k): """ 药物浓度衰减微分方程: dC/dt = -k*C C: 药物浓度 (mg/L) t: 时间 (h) k: 消除速率常数 (h^-1) """ dCdt = -k * C return dCdt # --- 3. 参数设定与初始条件 --- C0 = 100.0 # 初始药物浓度 (mg/L) k = 0.2 # 消除速率常数 (h^-1) # 定义时间范围 (从 0 到 24 小时,共 100 个点) t = np.linspace(0, 24, 100) # --- 4. 求解微分方程 (数值求解) --- # 使用 scipy.integrate.odeint 求解 # 传入: (微分方程函数, 初始值, 时间点, 额外参数k) solution = odeint(drug_decay_model, C0, t, args=(k,)) # 提取浓度 C(t) C_t = solution[:, 0] # --- 5. 计算理论值(用于参考) --- # 解析解: C(t) = C0 * exp(-k*t) C_t_analytical = C0 * np.exp(-k * t) # 标记药物半衰期 (理论上 t_half = ln(2)/k) t_half = np.log(2) / k C_half = C0 / 2 # --- 6. 可视化结果 --- FIGSIZE = (10, 6) plt.close('all') fig, ax = plt.subplots(figsize=FIGSIZE) # 绘制数值解曲线 ax.plot(t, C_t, label=f'数值解 C(t) ($k={k}\, h^{{-1}}$)', color='mediumblue', linewidth=3, alpha=0.8) # 绘制理论解析解曲线(用于验证数值解的准确性) ax.plot(t, C_t_analytical, label='解析解 ($C_0 e^{{-kt}}$)', color='orange', linestyle='--', linewidth=1.5) # 绘制初始浓度点 ax.plot(0, C0, 'o', color='red', label=f'初始浓度 $C_0 = {C0}$ mg/L') # 标记药物半衰期 ax.plot(t_half, C_half, 'x', color='green', markersize=10, markeredgewidth=2, label=f'半衰期 $t_{{1/2}} \\approx {t_half:.2f}$ h') ax.hlines(C_half, 0, t_half, linestyle=':', color='gray', alpha=0.7) ax.vlines(t_half, 0, C_half, linestyle=':', color='gray', alpha=0.7) ax.set_title('药物浓度衰减模型 (常微分方程应用)', fontsize=16) ax.set_xlabel('时间 $t$ (小时)', fontsize=12) ax.set_ylabel('浓度 $C(t)$ (mg/L)', fontsize=12) ax.legend(fontsize=10) ax.set_ylim(bottom=0) plt.tight_layout() plt.show()
编辑
多元函数微分学
多变量函数
编辑
编辑
偏导数
编辑
编辑
编辑
编辑
多变量函数的极值
编辑
编辑
编辑
编辑
误差反向传播法必需的链式法则
编辑
编辑
编辑
编辑
编辑
编辑
编辑 编辑
编辑
编辑
编辑
二重积分
编辑
编辑
编辑