news 2026/4/19 14:07:50

乘积法则:当两个变化的世界相遇

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
乘积法则:当两个变化的世界相遇

乘积法则:当两个变化的世界相遇

在微积分的学习中,导数描述的是“变化”。我们很容易理解加法的导数(两个变量各自变化的累加),但当两个变量相乘时,事情变得有趣了。为什么( f ⋅ g ) ′ (f \cdot g)'(fg)不是简单的f ′ ⋅ g ′ f' \cdot g'fg,而是那串看起来有点啰嗦的f ′ g + f g ′ f'g + fg'fg+fg

本文将通过直观的几何图形和现代计算科学的视角,为你揭开这个法则的奥秘。

1. 几何直觉:不断扩张的矩形

理解乘积法则最简单的方法,就是观察一个面积正在变大的矩形 。

想象一个矩形,它的两条边长分别为u uuv vv。显然,矩形的面积A = u ⋅ v A = u \cdot vA=uv

现在,如果这两条边都在随时间增长,分别增加了极小的长度d u dudud v dvdv

  1. 原面积:u ⋅ v u \cdot vuv

  2. 新面积:( u + d u ) ⋅ ( v + d v ) (u + du) \cdot (v + dv)(u+du)(v+dv)

展开这个乘法公式:

( u + d u ) ( v + d v ) = u v + u ⋅ d v + v ⋅ d u + d u ⋅ d v (u + du)(v + dv) = uv + u \cdot dv + v \cdot du + du \cdot dv(u+du)(v+dv)=uv+udv+vdu+dudv

现在,我们来看看面积增加了多少(d A dAdA):

d A = 新面积 − 原面积 = u ⋅ d v + v ⋅ d u + d u ⋅ d v dA = \text{新面积} - \text{原面积} = u \cdot dv + v \cdot du + du \cdot dvdA=新面积原面积=udv+vdu+dudv

在微积分中,当d u dudud v dvdv趋近于无穷小时,它们相乘产生的那个微小矩形d u ⋅ d v du \cdot dvdudv实在太小了,相对于其他项可以忽略不计 。于是:

d A ≈ u ⋅ d v + v ⋅ d u dA \approx u \cdot dv + v \cdot dudAudv+vdu

这就是乘积法则的本质:总的变化等于“第一部分的固定值乘以第二部分的变化”加上“第二部分的固定值乘以第一部分的变化” 。

2. 为什么f ′ ⋅ g ′ f' \cdot g'fg是错的?

初学者经常直觉地认为乘积的导数就是导数的乘积。我们举个简单的例子:

f ( x ) = x f(x) = xf(x)=xg ( x ) = x g(x) = xg(x)=x

  • 那么f ⋅ g = x 2 f \cdot g = x^2fg=x2,其导数(坡度)应该是2 x 2x2x

  • 如果按照错误的逻辑f ′ ⋅ g ′ f' \cdot g'fg,那么1 ⋅ 1 = 1 1 \cdot 1 = 111=1

显然,2 x 2x2x不等于1 11。错误的逻辑忽略了两个变量之间协同增长产生的额外面积。只有通过f ′ g + f g ′ = 1 ⋅ x + x ⋅ 1 = 2 x f'g + fg' = 1 \cdot x + x \cdot 1 = 2xfg+fg=1x+x1=2x,我们才能得到完美的答案。

3. 计算机的视角:自动微分中的“背包”

在上一篇博文中我们提到,自动微分(AD)通过“对偶数”(Dual Numbers)来计算导数。对偶数的形式是a + b ϵ a + b\epsilona+bϵ,其中ϵ 2 = 0 \epsilon^2 = 0ϵ2=0

当我们用对偶数做乘法时,计算机实际上在执行一个数学炼金术 :

( u + u ′ ϵ ) × ( v + v ′ ϵ ) = u v + ( u v ′ + u ′ v ) ϵ + u ′ v ′ ϵ 2 (u + u'\epsilon) \times (v + v'\epsilon) = uv + (uv' + u'v)\epsilon + u'v'\epsilon^2(u+uϵ)×(v+vϵ)=uv+(uv+uv)ϵ+uvϵ2

因为ϵ 2 = 0 \epsilon^2 = 0ϵ2=0,最后一项消失了,结果变为:

u v + ( u v ′ + u ′ v ) ϵ uv + (uv' + u'v)\epsilonuv+(uv+uv)ϵ

看!那个“对偶部”(ϵ \epsilonϵ后面的部分)自动计算出了乘积法则的结果:u v ′ + u ′ v uv' + u'vuv+uv

这就是为什么在 Julia 语言(如使用 ForwardDiff.jl)中,你只需要写出普通的乘法逻辑 x * y,计算机就能在后台精准地追踪导数 。它并不是在背公式,而是利用对偶数的代数性质,让乘积法则在运算过程中自然浮现。

4. 现实世界的应用:投篮机器人

回到我们的投篮机器人例子。计算球的落地位置y ( T ) y(T)y(T)时,公式中包含类似v 2 cos ⁡ 2 θ v^2 \cos^2 \thetav2cos2θ的项 。

这是一个复杂的乘积:速度的平方乘以角度余弦的平方。

  • 如果机器人想要微调角度θ \thetaθ,角度的变化不仅影响cos ⁡ θ \cos\thetacosθ,还会通过乘积关系影响整个轨迹的落点。

  • 乘积法则告诉机器人:角度的变化是如何通过余弦函数,进而影响到最终位移的。

如果没有乘积法则,梯度下降算法就无法告诉神经网络:“如果你把速度提高 5%,由于速度是平方项且与角度耦合,最终落点会偏离这么多。” 。

总结

乘积法则不是一个枯燥的公式,它是变化耦合的体现。它告诉我们,在一个由多个因素共同决定的系统中(比如v vvθ \thetaθ共同决定落点),总的变化是由各个因素交替“发力”并相互叠加的结果。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 15:55:25

Python+django基于安卓的小餐饮餐桌包厢预订管理系统的设计与实现-小程序

文章目录 系统概述核心功能模块技术实现要点创新点与优势应用场景 系统设计与实现的思路主要技术与实现手段源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式! 系统概述 该系统基于PythonDjango框架开发,结合安卓小程序端&#…

作者头像 李华
网站建设 2026/4/14 16:33:18

Linux docker安装达梦数据库

安装数据库 达梦8镜像下载 官方镜像地址 https://download.dameng.com/eco/dm8/dm8_20241022_x86_rh6_64_single.tar CSDN地址(需要解压后再使用) https://download.csdn.net/download/qq_35794202/92607559?spm1001.2014.3001.5503 下载后放到li…

作者头像 李华
网站建设 2026/3/31 12:41:27

Python+django 博物馆文物科普知识普及系统微信小程序-

文章目录系统概述核心功能技术实现特色亮点应用场景系统设计与实现的思路主要技术与实现手段源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!系统概述 PythonDjango 博物馆文物科普知识普及系统微信小程序是一个结合后端框架与移动端应用…

作者头像 李华
网站建设 2026/4/13 2:51:50

一库平替,融合致胜:国产数据库的“统型”范式革命

在数字化转型步入深水区的今天,我们正见证一场发生在数据基础设施底层的静默革命。当企业面对Oracle、MySQL、SQL Server、GIS数据库、时序数据库、文档数据库乃至向量数据库组成的复杂“数据库动物园”时,技术栈的割裂、成本的飙升与数据孤岛的固化已成…

作者头像 李华
网站建设 2026/4/18 16:16:11

GitExtension下载、安装

一、GitExtension下载 官网下载 根据自己环境选择,我这里选择的x64 二、安装 三、配置 或者

作者头像 李华
网站建设 2026/4/16 19:34:02

【阿里云】—— 云服务器 ECS搭建与使用

阿里云ECS主机从零配置指南:新手友好,避坑必看(含完整实操) 对于新手开发者、个人站长或初级运维来说,阿里云ECS主机的配置绝对是入门路上的“第一道坎”——买了ECS不知道怎么登录、初始化配置混乱、安全组没开导致无…

作者头像 李华