If you're seeing this message, it means we're having trouble loading external resources on our website.

如果你被网页过滤器挡住,请确保域名*.kastatic.org*.kasandbox.org 没有被阻止.

主要内容

多变量链式法则, 简单版本

导数的链规则可以扩展到更高的维度. 在这里我们看到了在相对简单的情况下, 复合函数是一个单变量函数的样子。

我们要做什么

  • 已知一个多变量函数 f(x,y), 和两个单变量函数 x(t)y(t), 则多变量链式法则是:
ddtf(x(t),y(t))复合函数的导数=fxdxdt+fydydt
  • 写为向量形式,令 v(t)=[x(t)y(t)], 利用f梯度v(t)向量导数 为术语, 此法则具有非常简练的形式.
ddtf(v(t))复合函数的导数=fv(t)向量的点乘

更常规的链式法则

正如大家可能想象的那样, 多变量链式法则是单变量微积分链式法则的推论. 单变量链式法则, 说明了如何求两个函数组合的导数:
ddtf(g(t))=dfdgdgdt=f(g(t))g(t)
如果函数 f 有两个输入变量(x,y), 而不是一个输入变量t会怎样?
f(x,y)=一些关于 x 和y的表达式
在这种情况下, 用标量函数g(t)来组合它是没有意义的. 相反, 假设有两个独立的标量值函数 x(t)y(t), 将它们作为f的坐标代入. 总体的组合式子将是一个单变量函数, 这个函数只有一个输入值 t,也只有一个输出值 f(x(t),y(t)), 如这个图表所示:
最后的输出f(x(t),y(t))两个中间的输出x(t)y(t)一个输入t
关于这个新的单变量函数f(x(t),y(t))的计算,也有一个链式法则, 并且涉及到f的偏导数:
 f 怎样变化 x 怎样变化因为因为 xtddtf(x(t),y(t))=fxdxdt+fydydt这是一个普通的导数f f不是偏导数t由于由于因为总体的组成t 对 xt 对y有一个输入值和一个输出值
需要注意, fxdxdt 是如下式子的简写
fx(x(t),y(t))dxdt(t)
也就是说, 两者都是 t的函数, 但 fx 是由中间函数 x(t)y(t)表示的.

写为向量形式

与把 x(t)y(t) 视为单独的函数相比, 我们更经常的,会将它们一同写成一个单变量向量值函数:
v(t)=[x(t)y(t)]
然后就可以将 f(x(t),y(t))组合, 用f(v(t))替代.
在这种形式下, 多变量链式法则可以更为紧凑的写为在 f梯度v(t)向量导数之间的点乘的形式:
ddtf(v(t))=fx(v(t))dxdt+fy(v(t))dydt将这个和重写成点式=[fx(v(t))fy(v(t))]f(v(t))[dxdtdydt]v(t)=f(v(t))v(t)
这样写, 与单变量导数的类比就更加清晰了.
ddtf(g(t))=f(g(t))g(t)=dfdgdgdt
梯度 f 扮演了 f导数的角色, 向量导数 v(t) 扮演了 g普通导数的角色.

有关链式法则的直觉

一开始, 可以将单变量链式法则看做诸如f(g(t))一样的组合. 可以这样理解这个组合:
  • 首先, g 将数轴上的点 t映射到数轴上的另一个点 g(t) .
  • 然后 f 将点 g(t) 映射到数轴上的另一个点 f(g(t))
为了理解 f(g(t)) 的导数, 就需要理解一个关于 t的微小变动, 对最终输出的影响.
fg的组成
让我们深入研究下链式法则, 到底是怎么说的.
ddxf(g(t))=dfdgdgdt
  • 表达式 dgdt 代表了, 一个关于t的微小变化,是如何影响中间输出量 g(t)的。
  • 表达式 dfdg 代表了一个 g的微小变化, 是如何影响到最终输出 f(g(t))的。
  • 由于t的小变化而造成的f的总变化, 是这两个影响因素的乘积。

将此直觉扩展到多维度

直觉对于多变量链规则是相似的. 可以把 v想成将数轴上的一点对应到 xy-平面上的一点的映射, 把 f(v(t))想成将该点对应回到数轴上某个位置的映射. 问题是, 一个关于初始输入 t 的小的变化, 是怎样改变总输出 f(v(t))的?
ftextbfv的组成
我们分解一下多变量链式法则的意思, 将它分解为复合函数 x(t)y(t)的形式:
ddtf(v(t))=ddtf(x(t),y(t))=fxdxdt+fydydt
  • 表达式 dxdt代表了 t的一个微小变化, 是如何影响中间变量 x(t)的。
  • 同样的, 表达式 dydt代表了 t的微小变化是如何影响第二个中间变量 y(t)的。
  • 表达式 fx代表了对于 x-组成部分 关于f的一个微小的变化, 是如何影响输出的,类似的, 表达式 fy记录了 对于 y-组成部分 关于 f的一个微小变化,是如何影响输出的。
  • t 的微小变化影响 f(x(t),y(t)) 的一种方式是, 先改变x(t), 然后跟着影响 f. 这个效应由乘积 fxdxdt表示。
  • t的变化影响 f(x(t),y(t))的另一种方式是, 先改变第二个中间变量 y(t), 这个中间变量跟着影响输出 f. 这种效应由乘积 fydydt表示.
  • 将这两个乘积加起来, 就能得到 f的总变化.

与方向导数的联系

可以注意到, 多变量链式法则的点乘表达式, 看上去与 方向导数很像:
f(v(t))v(t)
导数是轨迹的速度切线向量
事实上, 就是这样的! v(t0) 在特殊值 t0 处的导数, 就是 f自变量域的向量:
v(t0)=[x(t0)y(t0)]
如果 v(t) 被解释为这个空间内的一个参数路径, 比如可以想成是一个例子的运动轨迹, 那么在特定时间点t0的导数, 就是该粒子在此时刻的速度向量.
在这种解释下, 链式法则告诉我们, 复合函数 f(v(t)) f沿 v(t)导数方向的向量导数.
这样就有意义了, 因为根据导数的定义, 对 t的一个微小变化 "dt" ,会产生一个对输出量 v(t)的一个微小变化 dv. 然后方向导数的要点是对输入量f的一个微小变化 dv会产生一个微小变化 df , 正如公式 fv=vf定义的那样.

例1: 使用或不适用新的链式法则

定义 f(x,y) 如下:
f(x,y)=x2y
定义 v(t) 如下:
v(t)=[cos(t)sin(t)]
ddtf(v(t))的导数.
不用链式法则的解法:
在使用我们新奇工具解决这个问题之前,值得指出的是, 是可以先将该组合, 写成单变量函数 t的形式的:
f(v(t))=f(cos(t),sin(t))=cos(t)2sin(t)
现在可以求普通导数:
=ddtcos(t)2sin(t)=cos(t)2(cos(t))+2cos(t)(sin(t))sin(t)=cos3(t)2cos(t)sin2(t)
但是当然,这个例子的目的, 是让我们了解一下链式法则的感觉.
使用链式法则的解法:
首先, 明确的写出 v(t)的组成函数:
x(t)=cos(t)y(t)=sin(t)
根据链式法则,
ddtf(v(t))=fxdxdt+fydydt
代入偏导数 f(x,y)=x2y 以及普通导数 x(t)=cos(t), y(t)=sin(t), 可以得到
x(x2y)ddt(cos(t))+y(x2y)ddt(sin(t))=(2xy)(sin(t))+(x2)(cos(t))
为了让所有的式子都用 t表示, 代入 x=cos(t)y=sin(t).
(2xy)(sin(t))+(x2)(cos(t))(2cos(t)sin(t))(sin(t))+(cos(t)2)cos(t)=2cos(t)sin2(t)+cos3(t)
令人欣慰的是,这与不使用链式法则的答案相同。有人会认为, 这种新的链式规则使事情变得不必要地复杂,并且,对于像这样的具体计算,它常常是不需要的。
然而,正如下一个例题所示,这种方法, 对写出未知函数形式的方程是有用的。

例2: 未知函数

假设一个二维区域的温度, 随函数 T(x,y)变化, 并且该函数未知. 你漫步在此区域, 对所到之处的温度采样,并且你的 xy坐标, 是时间的函数, 如下
x(t)=30cos(2t)y(t)=40sin(3t)
在测量时, 你发现自己路径上的温度, 从未改变过. 那关于 T的偏导数,你能得出什么结论?

总结

  • 已知一个多变量函数 f(x,y), 和两个单变量函数 x(t)y(t), 则多变量链式法则是:
ddtf(x(t),y(t))复合函数的导数=fxdxdt+fydydt
  • 写为向量形式,令 v(t)=[x(t)y(t)], 利用f梯度v(t)向量导数 为术语, 此法则具有非常简练的形式.
ddtf(v(t))复合函数的导数=fv(t)向量的点乘

想加入讨论吗?

尚无帖子。
你会英语吗?单击此处查看更多可汗学院英文版的讨论.