本文共 4012 字,大约阅读时间需要 13 分钟。
复习一下我的数学知识T_T
1. 回顾高等数学:多元数量函数的梯度
回想高等数学中常见的多元数量函数$f:\mathbb{R}^{n}\rightarrow \mathbb{R}^{1}$,我们可以把他的输入当作一个向量 $\bf{x}\in \mathbb{R}^{n}$,输出$y=f(\bf{x})\in \mathbb{R}^{1}$是一个数字。那么由高数的知识我们知道$f$的梯度定义为
$$
\nabla f_{\boldsymbol{x}} \overset{\underset{\mathrm{def}}{}}{=} \left[ \frac{\partial f }{\partial x_1}, \frac{\partial f }{\partial x_2},\cdots,\frac{\partial f }{\partial x_n} \right]=\frac{\partial f }{\partial \boldsymbol{x}}
$$
有了上式,我们还可以写出全微分的向量化表示
\[
\begin{aligned}
df &= \frac{\partial f}{\partial x_1}dx_1+\frac{\partial f}{\partial x_2}dx_2+\cdots+\frac{\partial f}{\partial x_n}dx_n \\
&=\left[ \frac{\partial f }{\partial x_1}, \frac{\partial f }{\partial x_2},\cdots,\frac{\partial f }{\partial x_n} \right] \left[dx_1, dx_2,\cdots,dx_n \right]^T \\
&=\frac{\partial f }{\partial \boldsymbol{x}} d\boldsymbol{x}
\end{aligned}
\]
接下来我们将其推广到向量函数。向量函数的“梯度”其实就是雅可比矩阵。
2. 向量函数求导:雅可比矩阵
设$f:\mathbb{R}^{n}\rightarrow \mathbb{R}^{m}$是一个从映射到的函数,它的输入是一个向量 $\bf{x}\in \mathbb{R}^{n}$,输出是向量$\bf{y}=f(\bf{x})\in \mathbb{R}^{m}$。
如果我们将输出向量$\bf{y}$的每个分量$\bf{y_i}$看作一个独立的多元数量函数,那么我们可以写出每个$\bf{y_i}$对每个$\bf{x_j}$的偏导数(也就是梯度)
$$
\left[ \frac{\partial y_i }{\partial x_1}, \frac{\partial y_i }{\partial x_2},\cdots,\frac{\partial y_i }{\partial x_n} \right]
$$
将每个$\bf{y_i}$的梯度组合起来就得到了雅可比矩阵
\[
\begin{aligned}J=\left(\begin{array}{ccc}
\frac{\partial y_{1}}{\partial x_{1}} & \cdots & \frac{\partial y_{1}}{\partial x_{n}}\\
\vdots & \ddots & \vdots\\
\frac{\partial y_{m}}{\partial x_{1}} & \cdots & \frac{\partial y_{m}}{\partial x_{n}}
\end{array}\right)\end{aligned}
\]
也常写作:
$$
J=\frac{\partial(y_1,…,y_m)}{\partial(x_1,…,x_n)}
$$
雅可比矩阵表示了函数 $\bf{f}$ 在每一处可导点的导数。具体地说,设 $\Delta \bf{x}$ 为一在 $\bf{x}$ 处的位移向量(假设为列向量),则 $J(\bf{x}) \cdot \Delta \bf{x}$ 就是函数值的位移向量(类似一元数值函数里 $\Delta y=y'(x)*\Delta x$),该函数值的位移向量即为 $\bf{x}$ 处的$\bf{f}(\bf{x})$增量的最佳线性逼近(更熟悉点的词叫全微分)。类似于导数,雅可比矩阵是函数局部的线性化,使用矩阵形式来表示微分(线性逼近)这个线性变换。
提一点雅可比行列式有关的:当上述$m=n$时,$\bf{f}$是一个从$\mathbb{R}^n$到$\mathbb{R}^n$的映射,因此雅可比矩阵是一个方阵,我们可以求出来这个方阵的行列式,常称雅可比行列式。对高等数学(下)有印象的人应该可以记得起这个名字,雅可比行列式常用在多元微积分中,尤其是在在换元积分时,需要用它作为乘子。为什么要作为乘子出现?感性的理解,这还是因为在积分中空间转换带来的面积/体积变化,而众所周知行列式就是体积/面积,雅可比矩阵作为导数就表现了局部的线性变化比例。
3. 向量函数求导:链式法则
一般来说我们最常见的是标量函数的链式法则,类似这样:
设$f$和$g$为两个关于$x$可导函数,则复合函数$(f\circ g)(x)$的导数$(f\circ g)'(x)$为:$(f\circ g)'(x)=f'(g(x))g'(x)$.
那么向量函数的链式法则又是什么样的?
考虑可微函数 $f:\mathbb{R}^m \rightarrow \mathbb{R}^k$ 和 $g:\mathbb{R}^n \rightarrow \mathbb{R}^m$,以及$\mathbb{R}^n$上一点 $\bf{x}$。令 $D_{\bf{x}}g$ 表示$g$在$\bf{x}$处的全微分,$D_{g(\bf{x})}f$ 表示$f$在$g(\bf{x})$处的全微分,则复合函数$(f\circ g)(\bf{x})$的全微分可表示为:
$$
D_{\bf{x}}(f\circ g)(\bf{x})=D_{g(\bf{x})}f\circ D_{\bf{x}}g
$$
相应的,用雅可比矩阵表示的形式为:
$$
J_{f \circ g}=(J_f \circ g)J_{g}
$$
或者用变量名表示的话写成
$$
\frac{\partial(y_1,…,y_k)}{\partial(x_1,…,x_n)}=\frac{\partial(y_1,…,y_k)}{\partial(u_1,…,u_m)}\frac{\partial(u_1,…,u_m)}{\partial(x_1,…,x_n)}
$$
上式中右边意为两个矩阵相乘。
严谨的数学证明是比较技术性的,本文不予讨论(wobuhui)。我们来从直观上理解一下这个等式。首先,我们知道雅可比矩阵的“成因”是用矩阵来表示一阶微分的,也就是把一阶微分的算子当成一个线性变换,而复合函数等于是一个嵌套,也就是函数的函数,对应到线性变换里,也就是线性变换的线性变换,而我们又知道用矩阵表示线性变换时这种“线性变换的线性变换”,就是相当于两个矩阵的乘积。到这里。我们把微积分和线性代数两种工具结合到了一起,就得到了这个结果。
4. 例子
举一个具体的算例来说明今天所讲的内容吧。
设有函数 $g:\mathbb{R} \rightarrow \mathbb{R}^3$为
$$
g(t)=
\left(
\begin{array}{c}
t \
t^2\
t^3
\end{array}
\right)
$$
和 $f:\mathbb{R}^3 \rightarrow \mathbb{R}$为
$$
f
\left(
\begin{array}{c}
x \
y\
z
\end{array}
\right)=x^2+xyz+5y
$$
现在要求求出$(f \circ g)'(t)$
首先我们使用暴力算的方法,全部带入之后计算一下看看
\[
\begin{aligned}
(f \circ g)'(t)&=f(g(t))=f(t,t^2,t^3)\\
&=t^2+t^6+5t^2\\
&=6t^2+t^6
\end{aligned}
\]
这个函数就很简单了,我们可以直接求导得到
$$
(f \circ g)'(t)=12t+6t^5 \qquad (1)
$$
然后我们再用雅可比矩阵和链式法则来求一下
由上可知,
$$
J_{f}(x,y,z)=\left[2x+yz,xz+5,xy \right]
$$
代入$g(t)$可得
$$
J_{f}(g(t))=\left[2t+t^5,t^4+5,t^3 \right]
$$
对于$g$,有
$$
J_{g}(t)=\left[\begin{array}{c}
1\
2t\
3t^2
\end{array}\right]
$$
运用链式法则我们可以得到
\[
\begin{aligned}
(f \circ g)'(t)&=J_{f}(g(t))\cdot J_{g}(t)\\
&=\left[2t+t^5,t^4+5,t^3 \right]
\left[\begin{array}{c}
1\\
2t\\
3t^2
\end{array}\right]\\
&=2t+t^5+2t^5+10t+3t^5\\
&=12t+6t^2
\end{aligned} \qquad (2)
\]
这与(1)的结果一致,说明我们使用链式法则
计算的正确性是有保证的。
转载地址:http://ngeav.baihongyu.com/