news 2026/2/16 20:04:54

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

作者头像

张小明

前端开发工程师

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/2/14 1:44:53

亲测高中自习室:一流企业级体验复盘分享

亲测高中自习室:一流企业级体验复盘分享在高中学业压力日益增大的背景下,“自习室”早已不再是传统“安静自习”的代名词,而是逐渐演变为一种融合学习、管理、科技与服务的新型教育空间。作为一名长期关注教育科技发展的观察者,我…

作者头像 李华
网站建设 2026/2/11 18:15:50

django+Python微信小程序的食堂预约点餐系统的设计与实现

文章目录摘要系统设计与实现的思路主要技术与实现手段源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!摘要 该系统基于Django框架和Python语言开发,旨在为校园或企业食堂提供一套高效的微信小程序预约点餐解决方案。通过整合微…

作者头像 李华
网站建设 2026/2/11 15:00:52

飞机订票系统(11843)

有需要的同学,源代码和配套文档领取,加文章最下方的名片哦 一、项目演示 项目演示视频 二、资料介绍 完整源代码(前后端源代码SQL脚本)配套文档(LWPPT开题报告)远程调试控屏包运行 三、技术介绍 Java…

作者头像 李华
网站建设 2026/2/14 12:25:30

基于python的登录网站验证码的生成与识别系统(源码+文档)

项目简介 登录网站验证码的生成与识别系统实现了以下功能: 用python实现登录网站验证码功能: 设计两种验证码: 1 图形验证码,用python web框架Django能够实现动态刷新。 2 滑动验证码: 1.服务端随机生成小拼块和带有…

作者头像 李华
网站建设 2026/2/12 10:35:18

大数据领域数据预处理的前沿趋势分析

大数据领域数据预处理的前沿趋势分析 关键词:数据预处理、大数据、自动化清洗、实时流处理、隐私增强、AI驱动、图数据处理 摘要:在大数据时代,“数据质量决定决策质量"已成为行业共识。数据预处理作为数据分析的"第一公里”,直接影响后续建模、挖掘的效果。本文…

作者头像 李华
网站建设 2026/2/15 13:39:06

uniapp+python安卓的房屋租赁系统app小程序

文章目录技术架构核心功能模块技术亮点数据交互示例安全与性能扩展性设计系统设计与实现的思路主要技术与实现手段源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!技术架构 采用UniApp框架开发跨平台移动应用(Android/iOS/小程…

作者头像 李华