复习一下我的数学知识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)的结果一致,说明我们使用链式法则

计算的正确性是有保证的。

python求向量函数的雅可比矩阵_[数学] 向量函数的雅可比矩阵与链式法则相关推荐

  1. python求两数最大公因数_『用python求俩个数的最大公约数和最小公倍数』

    python:用递归的方法编写一个函数gys(x,y),计算两个数字的最大公约数. (提示,大的 def gys(x,y): a,b=max(x,y),min(x,y) c=a%b if c==0: ...

  2. 统计学和python结合起来打的比赛_数学与Python有机结合及统计学、微积分、线性代数相关资源、图形软件...

    无论是三大数学软件Matlab(通信.控制等工程例外).Maple.Mathematica,还是三大统计软件Spass.Stata.SAS,这些可视化的软件本身就是编程的一个体现,它们在一定程度上降低 ...

  3. python求素数的函数_如何用python求素数

    如何用python求100以内的素数? 质数(primenumber)又称素数,有无限个.质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数的数称为质数,如:2.3.5.7.11.13.1 ...

  4. python求雅可比矩阵_提高自组雅可比矩阵的性能

    从https://github.com/HIPS/autograd/issues/439我发现有一个未记录的函数autograd.make_jvp,它以快速前进模式计算雅可比.在 链接说明:Given ...

  5. python求梅森尼数_谈谈梅森旋转:算法及其爆破

    https://liam.page/https://liam.page/https://liam.page/ 现代编程语言,大都在标准库中包含了随机库.例如,C++ 在 C++11 标准中添加了 ra ...

  6. python 怎么算l2范数_数学推导+纯Python实现机器学习算法13:Lasso回归

    版权说明:本公号转载文章旨在学习交流,不用于任何商业用途,版权归原作者所有,如有异议,敬请后台联络我们,议定合作或删除,我们将第一时间按版权法规定妥善处理,非常感谢! Python机器学习算法实现 A ...

  7. python求圆柱体的体积_漫谈超球体的体积公式

    现实生活中,我们只要掌握圆的周长和面积公式,了解球的表面积和体积公式就够用了,没有什么可以深究的.本篇将带你走进高维度球的表面积和体积公式[1]. 我们生活在三维空间,对更高维度的空间难以构想.笛卡尔 ...

  8. python求两数最大公因数_使用辗转相除法求两个数的最大公因数(python实现)

    数学背景: 整除的定义: 任给两个整数a,b,其中b≠0,如果存在一个整数q使得等式 a = bq 成立,我们就说是b整除a,记做b|a. 性质1:如果c|a,c|b,且对于任意的整数m,n,则有c| ...

  9. python求列表最大值下标_切片,丝滑的字符串 | Python基础连载(三)

    开篇 之前已经提到过,在Python中,一共有六大数据类型 本期就开始学习Python的六个标准数据类型中的字符串. 什么是字符串 在Python中,字符串是用一对引号(单引号/双引号均可)包裹起来的 ...

最新文章

  1. Linux用命令修改dpi,Ubuntu17.10通过dpi更改系统字体大小比例的方法
  2. 【Java】Java_05 标识符与字符集
  3. 实现 Java 本地缓存
  4. C函数加密实现及常用字符串处理函数的使用
  5. git ssh配置完后拉取代码_Git中SSH key配置秘钥生成和如何拉取代码
  6. 数据库对象管理 (表)
  7. DCIC巡游车与网约车运营特征对比分析-数据读取
  8. 事件与委托的一点概念理解
  9. C#如何解决对ListView控件更新以及更新时界面闪烁问题
  10. jenkins 实践
  11. Android 系统性能优化(76)--- 如何抓取traceview?
  12. mysql 数据库的维护,优化
  13. bzoj2463: [中山市选2009]谁能赢呢?(博弈论)
  14. OpenStack Queens 女王新神器 — 卷多重挂载
  15. vue 基于网易云API的短信验证码登录(axios封装)
  16. ASO优化如何做?3个核心要点必须掌握
  17. 普度大学计算机科学博士,Purdue的Computer Sciences「普渡大学西拉法叶分校计算机科学系」...
  18. Steam游戏信息爬取-热销榜价格好评率折扣评论
  19. print的常用写法(python)
  20. uni-app 上传图片到七牛云

热门文章

  1. 关于nginx启用HTTP2后出现ERR_HTTP2_INADEQUATE_TRANSPORT_SECURITY错误的解决方案
  2. 如何用WebView打开pdf链接
  3. 如果面试遇到水货面试官,怎么办?
  4. Redis(周阳老师)
  5. Saiku的基本使用介绍(三)
  6. 基于PHP+MySQL大学生心理健康管理系统的设计与实现
  7. H5 点击链接 加入qq群聊
  8. [Excel] Excel固定任意行或者任意列
  9. JavaScript打印和预览等
  10. [RK3288] [Android 7.1] u-blox GPS调试