重读微积分(一):极限

重读微积分(二):三个极限常数的来源

重读微积分(三):洛必达法则

重读微积分(四):连续性和导数

重读微积分(五):数值导数

重读微积分(六):差商与牛顿插值

重读微积分(七):方向导数
本系列所有代码皆用R语言完成。

文章目录

  • 6 全微分
  • 7 法线

6 全微分

对于任意函数f(x0,x1,⋯,xn)f(x_0,x_1,\cdots,x_n)f(x0​,x1​,⋯,xn​),其梯度为

∇f=(∂f∂x0,∂f∂x0,⋯,∂f∂x0)\nabla f=(\frac{\partial f}{\partial x_0}, \frac{\partial f}{\partial x_0},\cdots, \frac{\partial f}{\partial x_0}) ∇f=(∂x0​∂f​,∂x0​∂f​,⋯,∂x0​∂f​)

由于在求导过程中,常数项被置零,所以∇f\nabla f∇f必然反映出f=0f=0f=0的某些几何特征。

z=1−x2−y2z=1-x^2-y^2z=1−x2−y2对应的方程是x2+y2=0x^2+y^2=0x2+y2=0,是一个圆形,其梯度为(−2x,−2y)(-2x,-2y)(−2x,−2y),做图如下

theta = seq(-pi,pi,0.1)
x = cos(theta)
y = sin(theta)
plot(x,y,type='l',col='red')
x1 = x*0
y1 = (x1-x)/(-2*x)*(-2*y)+y
for(i in 1:length(theta))lines(c(x[i],x1[i]),c(y[i],y1[i]),col='green')

可见,梯度方向对应的是图形的法线方向。对于二维平面内的曲线而言,其法线方向与切线方向垂直。

关于切线方向,我们仅知道y=f(x)y=f(x)y=f(x)的切线的斜率为k=f′(x)k=f'(x)k=f′(x),对应的方向为(1,f′(x))(1,f'(x))(1,f′(x))。或者更直观地写为dydx\frac{\text dy}{\text dx}dxdy​。

而今却只知道x,yx,yx,y的隐函数表达式f(x,y)=0f(x,y)=0f(x,y)=0,对此可以先写出x,yx,yx,y的偏导数fx′=∂f∂x,fy′=∂f∂yf'_x=\frac{\partial f}{\partial x},f'_y=\frac{\partial f}{\partial y}fx′​=∂x∂f​,fy′​=∂y∂f​。

回顾偏导数的定义

fx′(x0,y0)=lim⁡Δx→0f(x0+Δx,y0)−f(x0,y0)Δxf'_x(x_0,y_0)=\lim_{\Delta x\to0}\frac{f(x_0+\Delta x,y_0)-f(x_0,y_0)}{\Delta x} fx′​(x0​,y0​)=Δx→0lim​Δxf(x0​+Δx,y0​)−f(x0​,y0​)​

这里出现一个很吊诡的问题,既然满足f(x,y)=0f(x,y)=0f(x,y)=0,那么f(x,y)=0f(x,y)=0f(x,y)=0上的任意两点的差必为0,但显然在计算fx′f'_xfx′​的过程中,并没有遵守f(x,y)=0f(x,y)=0f(x,y)=0这个条件,即(x+Δx,y)(x+\Delta x,y)(x+Δx,y)可能并不在曲线f(x,y)=0f(x,y)=0f(x,y)=0上。

若想制造出一个完全位于f(x,y)=0f(x,y)=0f(x,y)=0上的变化关系,则可令

Δf=f(x0+Δx,y0+Δy)−f(x0,y0)=f(x0+Δx,y0+Δy)−f(x0,y0+Δy)+f(x0,y0+Δy)−f(x0,y0)\begin{aligned} \Delta f&=f(x_0+\Delta x,y_0+\Delta y)-f(x_0,y_0)\\ &=f(x_0+\Delta x,y_0+\Delta y)-f(x_0,y_0+\Delta y)+f(x_0,y_0+\Delta y)-f(x_0,y_0) \end{aligned} Δf​=f(x0​+Δx,y0​+Δy)−f(x0​,y0​)=f(x0​+Δx,y0​+Δy)−f(x0​,y0​+Δy)+f(x0​,y0​+Δy)−f(x0​,y0​)​

回顾偏导数的定义

fx′(x0,y0)=lim⁡Δx→0f(x0+Δx,y0)−f(x0,y0)Δxf'_x(x_0,y_0)=\lim_{\Delta x\to0}\frac{f(x_0+\Delta x,y_0)-f(x_0,y_0)}{\Delta x} fx′​(x0​,y0​)=Δx→0lim​Δxf(x0​+Δx,y0​)−f(x0​,y0​)​

则当Δx→0,Δy→0\Delta x\to0,\Delta y\to0Δx→0,Δy→0时,

Δf=fx′(x0,y0+Δy)Δx+fy′(x0,y0)Δy=fx′(x0,y0)Δx+fy′(x0,y0)Δy\begin{aligned} \Delta f&=f'_x(x_0,y_0+\Delta y)\Delta x+f'_y(x_0,y_0)\Delta y\\ &=f'_x(x_0,y_0)\Delta x+f'_y(x_0,y_0)\Delta y \end{aligned} Δf​=fx′​(x0​,y0​+Δy)Δx+fy′​(x0​,y0​)Δy=fx′​(x0​,y0​)Δx+fy′​(x0​,y0​)Δy​

由于满足f(x,y)=0f(x,y)=0f(x,y)=0,所以Δf=0\Delta f=0Δf=0,且Δx,Δy\Delta x,\Delta yΔx,Δy也会受到约束,二者同时趋近于0也可以表述为Δy\Delta yΔy在满足约束fff的情况下,随着Δ→0\Delta\to0Δ→0而趋近于0。故上式可写为

fx′(x0,y0)Δx=−fy′(x0,y0)Δy↓lim⁡Δx→0ΔyΔx=−fx′fy′↓dydx=−fx′fy′f'_x(x_0,y_0)\Delta x=-f'_y(x_0,y_0)\Delta y\\ \downarrow\\ \lim_{\Delta x\to0}\frac{\Delta y}{\Delta x}=-\frac{f'_x}{f'_y}\\ \downarrow\\ \frac{\text dy}{\text dx}=-\frac{f'_x}{f'_y} fx′​(x0​,y0​)Δx=−fy′​(x0​,y0​)Δy↓Δx→0lim​ΔxΔy​=−fy′​fx′​​↓dxdy​=−fy′​fx′​​

故对于f(x,y)=0f(x,y)=0f(x,y)=0,其切线方向为(1,−fx′fy′)(1,-\frac{f'_x}{f'_y})(1,−fy′​fx′​​)。

其法线方向为(fx′,fy′)(f'_x,f'_y)(fx′​,fy′​)。

二者内积(1,−fx′fy′)⋅(fx′,fy′)≡0(1,-\frac{f'_x}{f'_y})\cdot(f'_x,f'_y)\equiv0(1,−fy′​fx′​​)⋅(fx′​,fy′​)≡0。从而我们证明了f(x,y)f(x,y)f(x,y)的梯度为f(x,y)=0f(x,y)=0f(x,y)=0这个曲线的法线。

而这个过程中,则得到了一种新的变化关系,即全微分,定义为

df=fx′dx+fy′dy\text df=f'_x\text dx+f'_y\text dy df=fx′​dx+fy′​dy

7 法线

为了书写方便,记xi=x1,x2,...,xnx_i=x_1,x_2,...,x_nxi​=x1​,x2​,...,xn​,∂f∂xi=∂f∂x1,∂f∂x2,⋯∂f∂xn\frac{\partial f}{\partial x_i}=\frac{\partial f}{\partial x_1},\frac{\partial f}{\partial x_2},\cdots\frac{\partial f}{\partial x_n}∂xi​∂f​=∂x1​∂f​,∂x2​∂f​,⋯∂xn​∂f​。

对于函数f(xi)=0f(x_i)=0f(xi​)=0而言,其梯度为(∂f∂xi)(\frac{\partial f}{\partial x_i})(∂xi​∂f​)。而xn+1=f(xi)x_{n+1}=f(x_i)xn+1​=f(xi​)可以写为F(xi,xn+1)=f(xi)−xn+1=0F(x_i,x_{n+1})=f(x_i)-x_{n+1}=0F(xi​,xn+1​)=f(xi​)−xn+1​=0,其梯度为

(∂F∂f∂f∂xi,−∂F∂xn+1)=∂F∂f(∂f∂xi,−∂f∂F∂F∂xn+1)(\frac{\partial F}{\partial f}\frac{\partial f}{\partial x_i}, -\frac{\partial F}{\partial x_{n+1}})=\frac{\partial F}{\partial f}(\frac{\partial f}{\partial x_i},-\frac{\partial f}{\partial F} \frac{\partial F}{\partial x_{n+1}}) (∂f∂F​∂xi​∂f​,−∂xn+1​∂F​)=∂f∂F​(∂xi​∂f​,−∂F∂f​∂xn+1​∂F​)

如果只关注方向的话,那么矢量的数乘是没有意义的,所以可以把括号外的值消去;另外,fff和xn+1x_{n+1}xn+1​是相同的值,所以xn+1=f(xi)x_{n+1}=f(x_i)xn+1​=f(xi​)的法向量可以写为

(∂f∂xi,−1)(\frac{\partial f}{\partial x_i},-1) (∂xi​∂f​,−1)

用几何的观点来看待nnn变量函数xn+1=f(xi)x_{n+1}=f(x_i)xn+1​=f(xi​),实际上是n+1n+1n+1维空间中嵌入的一个n维曲面。∇f\nabla f∇f代表的是这个n+1n+1n+1维超曲面在以第n+1n+1n+1个轴方向进行投影得到的nnn维曲面的法向量。(∂f∂xi,1)(\frac{\partial f}{\partial x_i},1)(∂xi​∂f​,1)表示这个n维曲面的法向量。

相应地最大方向导数的方向即为梯度的归一化

(∂f∂xi)∑j=0n(∂f∂xj)2\frac{(\frac{\partial f}{\partial x_i})}{\sqrt{\sum^n_{j=0}(\frac{\partial f}{\partial x_j})^2}} ∑j=0n​(∂xj​∂f​)2​(∂xi​∂f​)​

由此得到的方向导数为

∑j=0n(∂f∂xj)2\sqrt{\sum^n_{j=0}(\frac{\partial f}{\partial x_j})^2} j=0∑n​(∂xj​∂f​)2​

相应地,空间中根据曲面的方向导数得到一个切向量

((∂f∂xi)∑j=0n(∂f∂xj)2,∑j=0n(∂f∂xj)2)(\frac{(\frac{\partial f}{\partial x_i})}{\sqrt{\sum^n_{j=0}(\frac{\partial f}{\partial x_j})^2}} ,\sqrt{\sum^n_{j=0}(\frac{\partial f}{\partial x_j})^2}) (∑j=0n​(∂xj​∂f​)2​(∂xi​∂f​)​,j=0∑n​(∂xj​∂f​)2​)

切、法相乘,结果为0。但是,对于任何一个不小于3维的向量而言,总是有无穷多个与之相乘为0且方向不同的向量。

例如,随机抽选出一个序号不大于nnn的第jjj坐标轴,沿该坐标轴方向做其切线,则其切线方向为

(0,⋯,1,⋯,0,∂f∂xj)(0,\cdots,1,\cdots,0,\frac{\partial f}{\partial x_j}) (0,⋯,1,⋯,0,∂xj​∂f​)

该矢量与法矢量的点乘仍然为0。

对于z=1−x2−y2z=1-x^2-y^2z=1−x2−y2,其法向量为(−2x,−2y,−1)(-2x,-2y,-1)(−2x,−2y,−1),其最大方向导数处的切向量为(−xx2+y2,−yx2+y2,2x2+y2)=(−x,−y,2−2z)(\frac{-x}{\sqrt{x^2+y^2}},\frac{-y}{\sqrt{x^2+y^2}},2\sqrt{x^2+y^2})=(-x,-y,2-2z)(x2+y2​−x​,x2+y2​−y​,2x2+y2​)=(−x,−y,2−2z),xxx轴方向的切向量为(1,0,−2x)(1,0,-2x)(1,0,−2x),yyy轴方向处的切向量为(0,1,−2y)(0,1,-2y)(0,1,−2y)。

现随机选择一些点,来绘制一下这四个方向的向量

library(rgl)
N = 1500
x<-rnorm(N)
y<-rnorm(N)
z<-1-x^2-y^2
for(i in 1:N){lines3d(c(x[i],3*x[i]),c(y[i],3*y[i]),c(z[i],z[i]+1),col='red')if(y[i]>0.1)lines3d(c(x[i],x[i]),c(y[i],y[i]-1/y[i]/2),c(z[i],z[i]+1),col='green')if(x[i]>0.1)lines3d(c(x[i],x[i]-1/x[i]/2),c(y[i],y[i]),c(z[i],z[i]+1),col='green')lines3d(c(x[i],x[i]*(1-2*z[i])/(2-2*z[i])),c(y[i],y[i]*(1-2*z[i])/(2-2*z[i])),c(z[i],z[i]+1),col='green')
}

可以看到,绿线几乎重新编织了一遍原函数,而红线则刺破了曲面。

重读微积分(八):全微分和法线相关推荐

  1. R语言重读微积分(一):极限

    文章目录 极限 1 状态变化 2 极限语言 3 序列与函数 极限 1 状态变化 若将数学整体划分为三类,则可概括为代数.几何与分析.对于前两者,我们很早就建立了直观的理性概念,对于空间结构及其性质的研 ...

  2. 重读微积分(六):差商与牛顿插值

    一 理解极限 二 微分学 本系列所有代码皆用R语言完成. 4 差商与牛顿插值 如果采取间隔不等的采样,差商会变得稍显复杂,对于x0,x1,-,xnx_0,x_1,\ldots,x_nx0​,x1​,- ...

  3. 重读微积分:图像的边缘检测

    8 偏导数和边缘检测 一 理解极限 二 微分学 基于偏导数的边缘检测 灰度图像是天然的z=f(x,y)z=f(x,y)z=f(x,y)函数,尽管以一种差分化的形式存在.其中,x,yx,yx,y分别代表 ...

  4. 模型怎么样_次世代PBR游戏模型流程到底是怎么样?

    目前市面上游戏模型主要的制作流程有:传统的手绘模型制作,次世代和次世代PBR制作.手绘模型的特点就是所有的颜色,光影关系和材质表现都是通过手绘的方式去实现.次世代的模型是基于物理渲染技术标志性就是法线 ...

  5. R语言(The R Programming Language)

    R是用于统计分析.绘图的语言和操作环境.R是属于GNU系统的一个自由.免费.源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具. R是统计领域广泛使用的诞生于1980年左右的S语言的一个分支. ...

  6. 次世代游戏建模学习之PBR游戏模型流程到底是怎么样?

    目前市面上游戏模型主要的制作流程有:传统的手绘模型制作,次世代和次世代PBR制作.手绘模型的特点就是所有的颜色,光影关系和材质表现都是通过手绘的方式去实现.次世代的模型是基于物理渲染技术标志性就是法线 ...

  7. 次世代PBR游戏模型流程到底是怎么样?

    目前市面上游戏模型主要的制作流程有:传统的手绘模型制作,次世代和次世代PBR制作.手绘模型的特点就是所有的颜色,光影关系和材质表现都是通过手绘的方式去实现.次世代的模型是基于物理渲染技术标志性就是法线 ...

  8. RNAseq基础(项目设计,方法原理)

    一.项目设计 测多少数据量? 几个生物学重复? 混池测序是否性价比很高? 参考序列怎么选? 二.分析方法 转录本拼接 比对的两种模式 表达定量 FPKM,RPKM,TPM,TMM 差异表达分析 1. ...

  9. 如何成为一名游戏建模师?这几点希望能帮到你

    现在游戏行业越来越火,薪水越来越高,很多人都想要乘机进入这一行,想要分一杯羹.但是想要入行是这么容易的吗? 游戏行业是一个门槛很清晰的行业,没达到要求是不存在能够混进行业的.所有想要入行,成为一名游戏 ...

  10. 次世代游戏场景间谍屋制作图文教程

    这次带来的是我们组的一个小场景的完整制作流程.希望大家喜欢.以下是我们最后完成的效果: 接下来我就分享一下我们组整体的制作过程: 一.目标设立 首先 ,这个项目我选择的是用标准的PBR流程来完成.使用 ...

最新文章

  1. linux secureCRT 显示中文乱码
  2. php中的构造函数和析构函数,php 中构造函数和析构函数
  3. 定位相关论文-A Novel Pedestrian Dead Reckoning Algorithm for Multi-Mode Recognition Based on Smartphones
  4. Python初学者之ImportError: No module named moviepy.editor 的解决办法
  5. jmeter之调度器配置
  6. mybatis的工作原理
  7. 军营中重重打击之后,我变了一个人(上)--我成为程序员所经历的(四)
  8. 如何用命令行给mySQL添加用户
  9. [react] 你是如何划分React组件的?
  10. 关于数据准备时,自动棌番的主键,这一字段数据的注意(IT总结之五)
  11. antd-vue中的form表单label标签for导致点击文字触发输入框解决方案
  12. Strip iPhone6
  13. 错误变惊喜,10个有趣的404页面设计(转)
  14. linux主机motd和命令审计
  15. 对待事物,乐观积极。
  16. 真正理解mybatis拦截器以及Interceptor和Plugin作用
  17. 我的世界java防火墙_我的世界Java版更新:烟花和自由堡垒!
  18. 《学术小白的实战之路》01 LDA-Word2Vec-TF-IDF组合特征的机器学习情感分类模型研究
  19. python制作神经网络_MicroPython动手做(10)——零基础学MaixPy之神经网络KPU
  20. python高频交易策略_VNPY中 Tick级别准高频交易简单策略

热门文章

  1. ​LeetCode刷题实战518:零钱兑换 II
  2. 课程体系包括哪些要素_课程建设包括哪些内容_以课程建设为抓手,促进专业团队的发展...
  3. wbincms v1.5 综合门户管理系统发布 thinkphp3.2.3+amazui-2.5.2
  4. 电脑怎么压缩jpg图片?如何压缩照片并保持清晰?
  5. 随机森林+python代码实现
  6. 微信小程序开发(7)---协同工作篇
  7. 命令行工具抓取trace
  8. 丰巢人工智能刷脸取件被小学生破解
  9. 官网Tomcat下载方法
  10. Excel---饼图美化与ppt图表