多元微积分(三)--链式法则

多元微积分(三)–链式法则

  在上节多元微积分(二)–方向导数与梯度我们以一个不同于高数书上的方式讲了方向导数公式的由来,我们还在推导公式时使用了一个很重要的思想:将自变量的微小变化分解为x方向的微小变化dx和y方向的微小变化dy,然后对x和y方向分别求出他们的因变量的变化,然后相加求和,进而求出他们因变量的变化。我么在本节中,也会使用相同的思想来理解链式法则。

一、单变量函数的链式法则

  我么先以单变量函数的链式法则开场,假设我们有一个函数 f ( x ) f(x) f(x),其中 x = g ( t ) x=g(t) x=g(t),也就是函数 f ( x ) f(x) f(x)可以表示为 f ( g ( t ) ) f(g(t)) f(g(t)),我们现在探究 f ( x ) f(x) f(x) t t t的导数,也就是研究当 t t t有一个微小的变化 d t dt dt时,函数 f f f的值变化多少。
  我们开始,还是我在多元微积分(一)–导数与偏导数一文中提到的公式:
导 数 = l i m d ( 自 变 量 ) − > 0 d ( 因 变 量 ) d ( 自 变 量 ) 导数=lim_{d(自变量)->0}\frac{d(因变量)}{d(自变量)} =limd()>0d()d()

1.1 d(自变量)

  很显然这里的d(自变量)就是 d t dt dt

1.2 d(因变量)

  因变量的变化怎么求呢,我们可以分为两步,首先思考 t t t的变化对 g g g影响了多少,然后再算对 f f f影响了多少。
  我们先来回顾一个知识点,函数 f ( x ) f(x) f(x)在点 x 0 x_0 x0处的导数为 f ′ ( x 0 ) f'(x_0) f(x0),那么当 x 0 x_0 x0出现微小变化 d x dx dx时, f ( x ) f(x) f(x)变化多少?这个我们可以用导数近似,结果就是 f ′ ( x 0 ) d x f'(x_0)dx f(x0)dx,毕竟有:
f ′ ( x 0 ) = l i m d x 0 − > 0 d f d x 0 f'(x_0) = lim_{dx_0->0}\frac{df}{dx_0} f(x0)=limdx0>0dx0df
所以当 d x 0 dx_0 dx0充分小的时候,这个结果 f ′ ( x 0 ) d x f'(x_0)dx f(x0)dx就非常准确。
  好啦,我们根据以上回顾,当 t t t变化 d t dt dt时, g g g变化了多少呢?当然是 g ′ ( t ) d t g'(t)dt g(t)dt啦!由于函数 f f f的自变量是函数 g g g,那么函数 g g g变化了 g ′ ( t ) ⋅ d t g'(t)\cdot dt g(t)dt,那么 f f f变化了多少呢?当然是 f ′ ( g ( t ) ) ⋅ g ′ ( t ) d t f'(g(t))\cdot g'(t)dt f(g(t))g(t)dt

1.3 导数是多少呢?

  根据我们的公式,有以下等式:
d ( 因 变 量 ) d ( 自 变 量 ) = f ′ ( g ( t ) ) ⋅ g ′ ( t ) d t d t = f ′ ( g ( t ) ) ⋅ g ′ ( t ) \frac{d(因变量)}{d(自变量)} = \frac{f'(g(t))\cdot g'(t)dt}{dt} = f'(g(t))\cdot g'(t) d()d()=dtf(g(t))g(t)dt=f(g(t))g(t)
啊哈!这不是我们高数书上的链式法则公式嘛!

二、多变量函数的链式法则

  当函数变成多变量时,情况和单变量差不多,也是我们分别求出来d(自变量)d(因变量),我们就以函数 z ( x , y ) z(x,y) z(x,y)为例开始讲啦,其中 x = x ( t ) , y = y ( t ) x=x(t),y=y(t) x=x(t),y=y(t)

2.1 d(自变量)

  我们假设 t t t变化了 d t dt dt,那么很显然, d ( 自 变 量 ) = d t d(自变量)=dt d()=dt啦。

2.2 d(因变量)

  我们在上一篇文章多元微积分(二)–方向导数与梯度中讲到了一个重要思想:将自变量的微小变化分解为x方向的微小变化dx和y方向的微小变化dy,然后对x和y方向分别求出他们的因变量的变化,然后相加求和,进而求出他们因变量的变化。我们求 d ( 因 变 量 ) d(因变量) d()就完全基于这个思想。
  因为 t t t变化了 d t dt dt,那么在函数 z ( x , y ) z(x,y) z(x,y)中, x x x y y y分别变化了多少呢?根据在单变量函数的链式法则中我们的回顾可知, x x x变化了 x ′ ( t ) d t x'(t)dt x(t)dt y y y变化了 y ′ ( t ) d t y'(t)dt y(t)dt。那么 z z z x x x方向变化了多少呢?道理一样:
d z x = ∂ z ∂ x ⋅ x ′ ( t ) d t dz_x = \frac{\partial z}{\partial x} \cdot x'(t)dt dzx=xzx(t)dt
那么 z z z y y y方向的变化也一模一样啦:
d z y = ∂ z ∂ y ⋅ y ′ ( t ) d t dz_y = \frac{\partial z}{\partial y} \cdot y'(t)dt dzy=yzy(t)dt
那么 z z z的总变化就是二者之和啦:
d z = d z x + d z y = ∂ z ∂ x ⋅ x ′ ( t ) d t + ∂ z ∂ y ⋅ y ′ ( t ) d t dz = dz_x + dz_y = \frac{\partial z}{\partial x} \cdot x'(t)dt+\frac{\partial z}{\partial y} \cdot y'(t)dt dz=dzx+dzy=xzx(t)dt+yzy(t)dt

2.3 导数是多少呢?

  同样是根据我们的公式,有以下等式:
d ( 因 变 量 ) d ( 自 变 量 ) = ∂ z ∂ x ⋅ x ′ ( t ) d t + ∂ z ∂ y ⋅ y ′ ( t ) d t d t = ∂ z ∂ x ⋅ x ′ ( t ) + ∂ z ∂ y ⋅ y ′ ( t ) \frac{d(因变量)}{d(自变量)} = \frac{\frac{\partial z}{\partial x} \cdot x'(t)dt+\frac{\partial z}{\partial y} \cdot y'(t)dt}{dt} = \frac{\partial z}{\partial x} \cdot x'(t)+\frac{\partial z}{\partial y} \cdot y'(t) d()d()=dtxzx(t)dt+yzy(t)dt=xzx(t)+yzy(t)
啊哈!这不是又是我们高数书上的多元函数的链式法则公式嘛!

三、总结

  是不是恍然大悟呢?链式法则就是这么简单啦!不过还要把握住我们求导数的公式啦:
导 数 = l i m d ( 自 变 量 ) − > 0 d ( 因 变 量 ) d ( 自 变 量 ) 导数=lim_{d(自变量)->0}\frac{d(因变量)}{d(自变量)} =limd()>0d()d()

你可能感兴趣的:(高等数学,概率论,深度学习,机器学习)