导数、偏导数与全微分:多元函数变化率与可微性解析
导数、偏导数、全微分这三个词我最早是在高数课上被一起砸过来的当时的感觉就是明明每个字都认识凑在一起就不知道在说什么。后来做数值计算、看机器学习的资料绕了一大圈才发现这三者根本不是三个并列的知识点而是同一条主线上三个不同问题的答案。真正把它们各自在回答什么问题想明白很多原来靠背公式硬撑的地方会一下子通掉。下面这份梳理核心就是把导数、偏导数、全微分这几个高频混淆概念拆开再顺手把方向导数、梯度、全导数、雅可比这几个常来串门的亲戚一起摆到桌面上对照。它不假设你有很强的数学底子一元微积分学过就够了也不假设你是纯数学方向工程、计算机、经济、物理这些需要用到多元函数的地方都能对上号。读完之后你至少能做到两件事看到一道题知道它在问哪种变化率看到一段公式知道它为什么能这么写、什么条件下不能这么写。1. 先捋清楚变化率这条主线1.1 从一元到多元语言先错位了一元函数 y f(x) 的世界里一切都特别顺只有一个自变量你问这点的导数是多少答案唯一就是一个数 f(x₀)。它既能理解成切线斜率也能理解成瞬时速度还能理解成x 每动一点点y 大概动多少的放大倍数。三种解释指向同一个数谁也不会打架。到了多元函数 z f(x, y)麻烦立刻出现自变量变成了两个。这时候你问这点的导数是多少这句话本身信息量是不够的因为你没说清楚让谁动。是只让 x 动、y 不动还是只让 y 动还是两个一起按某个比例动三种问法对应三个完全不同的答案而且它们互相之间不能随便换算。这就是所有混淆的源头不是概念变难了而是我们习惯的提问方式失效了。多元函数在一点没有唯一的导数只有沿各个方向的导数。偏导数、方向导数、全微分这些名词本质上都是在给这个含糊的问题补上方向这个缺失的条件。谁能把沿哪个方向变这件事说清楚谁就能选对工具。我后来给学生讲这块的时候常用一个比喻一元函数像是在一条笔直的马路上开车你只要问速度多少答案唯一。多元函数像是在一片开阔的草原上开车你得先问朝哪个方向开才谈得上速度。草原上的速度是个随方向变化的量它不是没有答案而是答案太多必须先做选择。1.2 三个概念各自在回答什么问题把提问方式列出来一切就清楚了。下面这张表是我自己复习时画的建议你也在纸上抄一遍概念它回答的问题自变量的变化方式结果长什么样导数 f′(x₀)一元函数在这点的瞬时变化率是多少只有一个自变量没得选一个数偏导数 ∂z/∂x只让 x 动、其他变量冻住时变化率是多少单变量沿坐标轴方向动一个数全微分 dz所有自变量同时做微小变化时函数增量的线性主部是多少多变量按任意微小方向一起动一个线性表达式看出规律了吗偏导数是切片全微分是拼装。偏导数一次只处理一个方向把多维的问题压成一维全微分则是把各个方向的信息汇总起来给出一个能同时应付所有方向的线性近似。它们不是竞争关系而是分工关系——偏导数是全微分的零件全微分的系数就是偏导数。还有一个更粗的区分线导数是一个数微分是一个表达式。很多人在这一步就开始糊涂把求导和求微分当成同一动作的两种叫法。在一元里它们确实很像因为 dy f′(x)dx一个数乘上 dx 就完事但到了多元全微分是一个真正意义上的线性式 fx dx fy dy它装的信息比任何一个偏导数都多。提示判断一道题在考什么最快的办法是先问自己题目让不让其他变量动。只动一个八成是偏导数一起动八成是全微分或者方向导数沿着某条曲线动那是全导数。2. 导数与偏导数一次只动一个变量2.1 一元导数的定义式里藏着什么先把最熟的拿出来对比。一元函数在 x₀ 处的导数定义是f′(x₀) lim(Δx→0) [f(x₀ Δx) − f(x₀)] / Δx这个式子的结构值得拆一下。分子是函数值的增量分母是自变量的增量整个分式是增量之比取极限之后变成变化率。它衡量的是自变量动一点点函数值动多少放大倍数是多少。几何上是曲线在这一点切线的斜率物理上是瞬时速度经济上是边际量。注意这里有一个隐含前提分母只有一个 Δx。整个定义式里能动的只有这一个量。所以导数这个概念天生就是为单变量场景设计的它没有办法直接描述两个东西同时在动。2.2 偏导数把其他变量按住偏导数的做法非常朴素既然多变量不好办那我们一次只放一个变量动其他的全部冻结成常数。z f(x, y) 在 (x₀, y) 处对 x 的偏导数定义为∂z/∂x|₍x₀,y₀ lim(Δx→0) [f(x₀ Δx, y₀) − f(x₀, y₀)] / Δx跟一元导数的定义式对比一下唯一的区别是 f 里面那个 y₀ 一直乖乖待着不动。这就是偏导数的全部秘密把 y 当成常数问题立刻退化成一元的。计算上更是简单到有点粗暴。我平时算偏导数的口诀就一句对谁求导其他全是常数。比如 z x²y sin(xy)对 x 求偏导时把 y 当常数看成 x²·C₁ sin(C₂x)正常求导得 2xy y·cos(xy)对 y 求偏导时反过来把 x 当常数得 x² x·cos(xy)。整个过程和一元求导没有任何技术上的区别只是心里要一直念叨另一个是常数。几何意义上偏导数 ∂z/∂x 描述的是用平面 y y₀ 去切曲面 z f(x, y)切出来的那条曲线在这一点处的切线斜率。换句话说偏导数是曲面上的一条剖切线的斜率你只看到了曲面的一个截面而不是整个曲面的变化趋势。这一点特别重要因为它意味着偏导数天然是片面的它看不到其他方向上的信息。注意偏导数的符号是 ∂读作 round d不是 d。这不是排版强迫症。d 表示整体的微分∂ 表示局部的、部分的导数。写符号的时候把这件事记住比事后靠脑子硬区分要省力得多。2.3 偏导存在能推出什么答案是几乎什么都推不出来这是初学者最容易翻车的地方。很多人心里有一个默认的阶梯连续 ⇒ 可导 ⇒ 可微一元里确实是这样可导必连续连续不一定可导。于是他们顺手把这个阶梯搬到多元以为偏导存在就能推出连续、推出可微。这是错的而且错得很彻底。先看第一个反例。定义f(x, y) xy / (x² y²)当 (x, y) ≠ (0, 0)f(0, 0) 0。在原点处求偏导沿着 x 轴y 0走f(x, 0) 0/(x²) 0所以 ∂f/∂x(0,0) 0。同理沿 y 轴走f(0, y) 0∂f/∂y(0,0) 0。两个偏导数都老老实实存在。但函数在原点根本不连续。沿直线 y x 逼近原点f(x, x) x²/(2x²) 1/2不等于 f(0,0) 0。沿 y −x 逼近得到 −1/2。极限压根不存在。偏导存在连连续都保证不了。再看第二个反例这个更有意思因为它连连续这一关都过了g(x, y) xy / √(x² y²)当 (x, y) ≠ (0, 0)g(0, 0) 0。先看连续性|xy| ≤ (x²y²)/2所以 |g| ≤ √(x²y²)/2 → 0函数在原点连续。再看偏导沿坐标轴走g(x, 0) 0所以两个偏导数在原点都等于 0。连续有了偏导有了可微呢把全微分的定义代进去检验Δg − [fx·Δx fy·Δy] g(Δx, Δy) − 0 ΔxΔy/√(Δx²Δy²)。用 ρ √(Δx²Δy²) 除一下得到 ΔxΔy/(Δx²Δy²)。沿 Δy Δx 这个方向走这个比值恒等于 1/2不会趋于 0。所以函数连续、偏导存在但不可微。这两个反例必须刻在脑子里它们直接决定了后面判断可微性的操作流程。3. 全微分多个变量一起动时的线性主部3.1 从面积增量理解线性主部全微分的定义是这样写的如果函数 z f(x, y) 在点 (x, y₀) 处的全增量可以拆成Δz A·Δx B·Δy o(ρ)其中 ρ √(Δx² Δy²)那么就称 f 在这一点可微并把线性主部A·Δx B·Δy 叫做全微分记作 dz。这里 A、B 是与 Δx、Δy 无关的常数o(ρ) 表示比 ρ 高阶的无穷小。线性主部这四个字很多人背下来了却不理解。我用一个最朴素的例子解释一个矩形长 x、宽 y面积 S xy。现在长和宽各增加 Δx、Δy新的面积是 (xΔx)(yΔy)增量ΔS x·Δy y·Δx Δx·Δy。前面两项是线性的都是一阶的量最后一项 Δx·Δy 是两个小量相乘是二阶的相对 ρ 来说是高阶无穷小。所以当 Δx、Δy 都很小的时候真正起作用的是前两项最后一项可以忽略。这就是线性主部的含义在所有的增量成分里挑出那个线性的一阶部分它就是全微分。把它和 Δz 对比着记Δz 是真实增量dz 是近似增量二者差一个 o(ρ)。所以全微分最直接的用途就是近似计算——后文我会给一个完整算例。3.2 可微的判断从定义出发别从公式出发一个关键结论如果 f 在 (x₀, y) 可微那么它在该点的偏导数一定存在而且 A ∂f/∂xB ∂f/∂y。于是全微分就有了我们最常见的形式dz (∂z/∂x) dx (∂z/∂y) dy但请务必注意这里的方向可微 ⇒ 偏导存在且 dz fx dx fy dy而不是反过来。很多人把公式背得滚瓜烂熟看到多元函数就往上套 fx dx fy dy压根不检查可微性——上面那个 g(x, y) 的例子就是专门用来打脸的它两个偏导都存在公式套上去得到 dz 0可实际上它压根不可微。判断可微性我常用的两条路第一条是定义法也就是老老实实算极限lim(ρ→0) [Δz − (fx·Δx fy·Δy)] / ρ如果这个极限等于 0就可微不等于 0 或者不存在就不可微。这条路最可靠什么情况都能用缺点是算起来费劲。第二条是充分条件法如果偏导数在这一点存在且连续注意是偏导函数连续不只是在这一点的值存在那么函数在这点可微。这条路省事遇到大多数正常函数多项式、指数、三角、对数这些初等函数拼出来的都能直接判定因为这些函数的偏导通常处处连续。实操中的顺序建议是先看函数是不是初等函数拼的、偏导是否连续是的话直接下结论可微公式放心大胆用如果遇到分段函数、绝对值、分式在奇点附近、或者题目专门在原点这种可疑点上做文章那就必须回到定义法去验极限。3.3 全微分形式不变性一个低调但好用的性质还有一个性质教科书上通常一句话带过但用起来特别香叫全微分形式不变性。设 z f(u, v)而 u u(x, y)、v v(x, y)。那么不管 u、v 是自变量还是中间变量全微分永远可以写成dz (∂f/∂u) du (∂f/∂v) dv形式完全一样。这件事的价值在于你不用先去搞清楚谁是自变量、谁是中间变量直接一层一层套公式就行。做复合函数求导、隐函数求导的时候这个性质能省掉大量先展开再合并的机械劳动。一个具体场景设方程 F(x, y, z) 0 确定了隐函数 z z(x, y)求 ∂z/∂x。对 F 两边取全微分Fx dx Fy dy Fz dz 0。解出 dz −(Fx/Fz) dx − (Fy/Fz) dy然后对照 dz zx dx zy dy直接读出 zx −Fx/Fz、zy −Fy/Fz。整个推导不用做任何把 z 看成 x、y 的函数的展开讨论全微分形式不变性把这一步全包了。提示隐函数求导这类题我个人的习惯是一律用全微分法不用链式法则硬展开。系数怎么配、哪一项对哪一项看 dz 的表达式一眼就清楚出错的概率低很多。4. 几个常来串门的亲戚方向导数、梯度、全导数、雅可比4.1 方向导数与梯度全微分在某个方向上的投影偏导数只管沿坐标轴的两个方向可草原上的方向是无穷多的。方向导数就是来补这个洞的它衡量的是函数沿任意给定单位方向的变化率。设单位方向向量 e (cosα, cosβ)α、β 是方向角则沿该方向的方向导数为∂f/∂e fx·cosα fy·cosβ把右边写成内积形式就是 (fx, fy)·(cosα, cosβ)。括号里那个向量 (fx, fy) 就是梯度grad f。于是方向导数其实就是梯度在这个方向上的投影∂f/∂e grad f · e由此立刻得到两个经典结论方向导数取最大值的方向就是梯度方向最大值就是梯度的模 |grad f|垂直于梯度的方向上方向导数为 0也就是沿等高线走函数值不变。再回头看全微分dz fx dx fy dy grad f · (dx, dy)。所以全微分和方向导数是一回事的两种写法——全微分是沿任意微小位移的线性主部方向导数是沿单位方向的变化率两者共用同一个梯度向量。理解到这一层梯度下降为什么沿负梯度方向走就顺理成章了那是函数下降最快的方向。4.2 全导数沿一条曲线走出来的导数这是最容易被名字骗到的概念。全导数听着像是全微分的导数其实完全不是一回事。设 z f(x, y)而 x x(t)、y y(t) 都是参数 t 的函数。那么复合之后 z 实际上只依赖 t它对 t 的导数记作 dz/dt叫做全导数dz/dt fx · (dx/dt) fy · (dy/dt)为什么必须两项都写因为现在 x 和 y 都是 t 的函数t 一变x 和 y 会同时变两条路径的影响都要算进去。这跟偏导数 ∂z/∂x 完全不同——偏导数里 y 是被冻死的而全导数里 y 会跟着 t 一起动。漏掉一项答案铁定错。一个能说明问题的例子z x² y²x cos ty sin t。按全导数算dz/dt 2x·(−sin t) 2y·(cos t) −2cos t·sin t 2sin t·cos t 0。结果是 0因为 z ≡ cos²t sin²t ≡ 1本来就是个常数导数为 0 天经地义。但如果你只写一项 2x·(−sin t) −2cos t sin t就会得到一个随 t 变化的导数跟事实完全对不上。这个例子我特别喜欢因为它用最直白的方式证明了全导数里每一项都有实际贡献一项都不能省。还有一种常见变体z f(x, y) 而 y y(x)这时候 z 变成 x 的一元函数沿曲线求导得dz/dx fx fy · (dy/dx)注意这个 dz/dx 和偏导数 ∂z/∂x 长得像但完全不是一回事前者是沿曲线 y y(x) 走的变化率后者是沿水平方向走的变化率。写作业的时候把这两个符号搞混是扣分重灾区。4.3 雅可比矩阵把多元导数打包成一个整体再往上抽象一层就是雅可比。设有一组函数 F (F₁, F₂, …, Fm)每个 Fi 都是 n 个变量 x₁, …, xn 的函数。把所有一阶偏导排成一个 m×n 的矩阵第 i 行第 j 列的元素是 ∂Fi/∂xj这个矩阵就叫雅可比矩阵 J。有了它全微分可以写成极其干净的向量形式dF J·dx。这时候回看一元的情形m n 1 时雅可比矩阵退化成 1×1 的矩阵里面就一个数 f′(x)也就是我们说的导数。所以导数是雅可比的一维特例偏导数是雅可比的单个元素全微分是雅可比作用在自变量增量上的线性映射。整个体系其实就是同一个东西在不同维度上的呈现。搞优化、做机器学习的人对这种表示应该很熟损失函数对参数的梯度、神经网络的反向传播本质上都是在跟雅可比打交道只是到了实践里我们很少显式写出整个矩阵而是用链式法则一层层往回传。4.4 一张表把所有关系钉死概念变量怎么动数学形式一句话理解导数单变量动f′(x)一个数一维世界的变化率偏导数只动一个其余冻住∂f/∂x一个数曲面某个截面的切线斜率全微分所有变量一起微动fx dx fy dy线性式增量的线性主部方向导数沿指定单位方向动grad f · e一个数梯度在该方向的投影梯度——(fx, fy)一个向量变化最快的方向与速率全导数沿一条参数曲线动fx·dx/dt fy·dy/dt一个数所有影响路径都算上雅可比多变量映射整体m×n 矩阵 J高维导数的矩阵封装这张表建议你打印出来贴桌上。真正的考试或者工程推导里出错往往不是算错而是拿错了工具。5. 实操三道题把概念钉死5.1 例一完整判断一个函数在原点是否可微题目设 g(x, y) xy/√(x²y²)(x,y) ≠ (0,0)g(0,0) 0判断它在原点是否可微。第一步求偏导。沿 x 轴走g(h, 0) 0所以 fx(0,0) lim(h→0) (0 − 0)/h 0。同理 fy(0,0) 0。两个偏导都存在都是 0。第二步套定义式验极限。全增量 Δg g(Δx, Δy) − g(0,0) ΔxΔy/√(Δx²Δy²)。线性主部是 fx·Δx fy·Δy 0。于是[Δg − 0] / ρ [ΔxΔy/√(Δx²Δy²)] / √(Δx²Δy²) ΔxΔy/(Δx²Δy²)第三步看这个量在 ρ → 0 时的行为。沿路径 Δy Δx它恒等于 1/2沿 Δy 2Δx它等于 2/5沿 x 轴走Δy 0它是 0。极限不存在当然也不等于 0。结论不可微。偏导存在、函数连续但不可微。这道题是检验你有没有真正理解可微定义的标准题一定要自己完整写一遍。5.2 例二复合函数里的链式法则与全导数题目z ln(x² y²)而 x eᵗy e^(−t)求 dz/dt。先求两个偏导zx 2x/(x²y²)zy 2y/(x²y²)。再求全导数两项都写dz/dt zx·(dx/dt) zy·(dy/dt) [2x/(x²y²)]·eᵗ [2y/(x²y²)]·(−e^(−t))代入 x eᵗ、y e^(−t)x² y² e^(2t) e^(−2t)2x·eᵗ 2e^(2t)2y·(−e^(−t)) −2e^(−2t)。合并得dz/dt [2e^(2t) − 2e^(−2t)] / [e^(2t) e^(−2t)]这个结果没法再化简成常数因为 t 变的时候 x、y 各自的变化对 z 的贡献并不抵消。想验证的话直接把 x、y 代进去得到 z ln(e^(2t) e^(−2t))再对 t 求导得到的正是同一个式子。用这种先代入再求导的方式验算是检查链式法则有没有漏项最省事的办法我考试的时候几乎每题都这么对一遍。5.3 例三用全微分做近似计算题目估算 √(1.02² 1.97²) 的值。取 f(x, y) √(x² y²)基点选 (x₀, y₀) (1, 2)因为 f(1, 2) √5 是知道准确值的√5 ≈ 2.2360679。增量是 Δx 0.02Δy −0.03。两个偏导fx x/√(x²y²) 1/√5 ≈ 0.4472136fy y/√(x²y²) 2/√5 ≈ 0.8944272。全微分dz 0.4472136 × 0.02 0.8944272 × (−0.03) 0.0089443 − 0.0268328 −0.0178885。于是近似值 2.2360679 − 0.0178885 2.2181794。真实值是 √(1.0404 3.8809) √4.9213 ≈ 2.2184003。误差约 0.00022相对误差万分之一量级。对一个只用一次乘加的计算来说这个精度相当能接受。顺便说一下误差来源这个函数的偏导在 (1,2) 附近变化不大所以线性近似效果很好。如果一个函数的二阶导数在基点附近很大比如曲率很高的地方全微分的近似就会明显变差那就得补上二阶项也就是泰勒展开到二阶。5.4 用 Python 亲眼验证一遍纸面推导再熟也架不住感觉上对。我习惯写几行代码把残差随 ρ 的变化趋势打出来看一眼是不是真的趋于 0。这个习惯帮我识破过好几次公式形式对但前提不满足的隐性错误。import numpy as np def f(x, y): return np.sqrt(x**2 y**2) def fx(x, y): return x / np.sqrt(x**2 y**2) def fy(x, y): return y / np.sqrt(x**2 y**2) x0, y0 1.0, 2.0 print(可微情形残差/rho 应随 rho 线性下降) for h in [1e-1, 1e-2, 1e-3, 1e-4, 1e-5]: dx, dy h, -1.5 * h # 固定一个方向保证只改变步长 rho np.hypot(dx, dy) dz_true f(x0 dx, y0 dy) - f(x0, y0) dz_lin fx(x0, y0) * dx fy(x0, y0) * dy print(fh{h:g} rho{rho:.2e} 残差/rho{(dz_true - dz_lin) / rho:.6e})跑出来你会看到残差除以 ρ 这个量随 h 减小而线性变小量级大致跟着 h 走。这正是残差是 O(ρ²)、除以 ρ 后是 O(ρ)的数值体现也就是可微定义里那个极限等于 0 的直接证据。再把不可微的例子跑一遍对比会非常刺眼def g(x, y): r np.hypot(x, y) return np.where(r 0.0, 0.0, x * y / r) print(不可微情形沿 y x 方向残差/rho 应恒为 1/2) for h in [1e-1, 1e-2, 1e-3, 1e-4, 1e-5]: dx, dy h, h # 固定沿对角线方向 rho np.hypot(dx, dy) dz_true g(dx, dy) - g(0.0, 0.0) dz_lin 0.0 * dx 0.0 * dy # 两个偏导都是 0 print(fh{h:g} rho{rho:.2e} 残差/rho{(dz_true - dz_lin) / rho:.6f})不管 h 取多小输出都是 0.500000。h 减到 1e-5 也没用因为它压根不收敛。这两段代码加起来不到二十行却是把可微性从嘴上概念变成手上感觉的最快方式。实操心得写这类验证代码时步长 h 一定要沿固定方向等比缩小。如果每一轮都把方向也随机换掉残差的变化里会混进方向带来的差异你就分不清是收敛慢还是根本没收敛。这个坑我踩过不止一次。6. 常见问题与排查技巧实录6.1 高频误区速查表常见误区为什么错正确的认识偏导数就是多元函数的导数多元函数在一点没有唯一的导数偏导数只是沿坐标轴方向的变化率偏导数存在就能推出连续有现成反例 xy/(x²y²)偏导存在与连续之间没有蕴含关系偏导存在就能推出可微有反例 xy/√(x²y²)可微比偏导存在强得多需要验定义式全微分公式 dz fx dx fy dy 可以直接套公式的前提是可微先用定义或偏导连续判定可微再套公式Δz 和 dz 是一回事Δz 是真实增量dz 是线性主部二者相差一个 o(ρ)全导数就是全微分的导数名字相似含义完全不搭全导数是对参数 t 求导全微分是线性主部dz/dx 和 ∂z/∂x 可以互换一个是沿曲线求导一个是沿坐标轴求导只有当 y 与 x 无关时二者才相等链式法则只写一项多条影响路径会同时起作用有几个中间变量就写几项一项都不能省方向导数等于梯度一个是数一个是向量方向导数 梯度 · 单位方向向量偏导连续是必要条件它只是可微的充分条件不连续也可能可微只是判定变麻烦这张表建议对着自己的错题本一条条核。我统计过身边人的错误分布前三行占了绝大多数。6.2 遇到题目该走哪条路的排查流程第一步看自变量个数。只有一个老老实实求导数不用管后面这些。有两个及以上进入下一步。第二步看题目让不让你选方向。只沿坐标轴、明确说求对 x 的偏导那就是偏导数。说的是求在点 P 沿方向 e 的变化率用方向导数。说的是求全微分求近似值判断是否可微用全微分。说的是其中 x、y 都是 t 的函数求 dz/dt那是全导数。第三步判断合法性。凡是要用到全微分公式 fx dx fy dy 的场合先花十秒钟确认可微。判定顺序是函数是不是初等函数拼出来的、偏导是否连续是就放心用不是尤其是分段函数、绝对值、带分母在可疑点附近的情况退回定义式验极限。第四步验算。复合函数的题把中间变量全部代回变成一元函数直接对参数求导跟链式法则的结果对一遍。这一步只要几十秒能拦下九成以上的漏项错误。第五步数值抽查。如果不确定某个点的偏导算得对不对随手代两个具体数进去跟有限差分的结果比一下。我自己写代码验证的时候经常就是靠这个发现符号写反了。6.3 我踩过的坑和一些个人体会最开始学这块的时候我犯的最大的错误是把偏导数当成导数。做题时看到 z f(x, y)脑子里自动冒出求导然后手就写下去了压根没意识到自己应该先看问的是哪个方向。这种错误不是算错而是没搞清问题。后来我强制自己养成一个习惯动笔之前先在草稿纸角上写一句谁在动。就这四个字让我的正确率肉眼可见地涨上去。第二个坑是对可微的轻视。因为公式太好用很多人包括我自己会跳过可微性判定直接套公式。但你要知道多元函数里正常的函数确实占大多数平时十道题有九道都能蒙对剩下那一道专门考分段函数在原点附近的题就是你被扣分的地方。我后来干脆把可微性判定当成一个固定动作遇到分段、带绝对值、或题目明确提到原点的题一律走定义法。第三个坑是符号。dz/dx 和 ∂z/∂x、Δz 和 dz、f 和 F这几组符号在看书的时候很容易扫过去但落到笔下就是错。我的解决办法是抄写时把每个符号的含义在旁边标一句坚持一段时间之后就形成条件反射了。最后一点体会是关于学习顺序的。这三个概念最好的学习方式不是并列着背而是沿着问题—工具这条线走一元只有一个变量所以有唯一的导数多元变量多所以要降维处理于是有了偏导数但偏导数各管一段、信息不全所以需要把各方向的信息汇总于是有了全微分如果要求沿任意方向的变化率就有了方向导数和梯度如果变量之间还有依赖关系形成链条就有了全导数和链式法则再往上打包成矩阵就是雅可比。每一步都是被上一步的不足逼出来的不是凭空冒出来的定义。顺着这条线捋一遍比硬背十遍定义有用得多。如果你手头正好在学这块内容我的建议是先别急着刷题先把 xy/(x²y²) 和 xy/√(x²y²) 这两个反例自己推一遍再把全微分的近似算例和 Python 验证跑一遍。这三件事加起来大概一个小时但它给你建立的是手感而不是一堆等着遗忘的公式。手感有了后面不管是在优化算法里看梯度、在误差分析里用线性近似还是在弹性力学、经济学里处理多变量关系都能自己找到对应。
上一篇/下一篇内容由系统自动关联
返回资讯列表 →