流形上的微积分和微分形式的可视化导论(一)
前言
这是 A visual Introduction to Differential Forms and Calculus on Manifolds这本书的读书笔记(和一些碎碎念),这本书真的写得很好,只要你有微积分和线性代数的基础就可以读,虽然内容有点少(相比起Tu的那本书而言)但是对于我这样的入门汉足够了。这个系列我尽量一个星期更新一章吧。。。本来笔记是只留在本地的,但是用来做笔记的软件(语雀)突然收费了,好慌张,还是在CSDN留个备份比较安心,还有这狗屎一般的Markdown我真的无力吐槽。。。
Chapter1 背景知识 Background Material
对偶空间 Dual Space
本书若无特殊说明,大多数时间只讨论nnn维欧氏空间。
我们在线性空间里可以用矩阵表示一个线性映射,即把一个线性空间里的元素映射到另一个线性空间里去(例如从R3→R2R^3\to R^2R3→R2或者反过来R2→R3R^2\to R^3R2→R3)。特别的,我们现在关注那些可以把向量映射到实数域上的线性映射TTT,即T:Rn→RT: R^n\to RT:Rn→R,我们把这种映射称为线性函数 (Linear Function),或者称作向量空间VVV上的线性泛函。
我们从以上的分析可以知道,一个线性泛函如果用矩阵来表示,那么它一定是一个n×1n\times 1n×1的矩阵,或者说是一个行向量(因为只有一个n×1n\times 1n×1的行向量乘上一个1×n1\times n1×n的列向量才能得到一个实数)。
定义:线性空间VVV上所有的线性泛函所构成的空间,称为对偶空间,记作V∗V^*V∗
容易验证,对偶空间也是一个线性空间(这里略过证明),那么下一个问题就是:对偶空间的基(Basis)是什么?
以R2R^2R2为例,将R2R^2R2的一组标准正交基(就是e1,e2)e_1,e_2)e1,e2)为基底,设TTT是一个线性泛函,则
T([xy])=T(x[10]+y[01])=xT([10])+yT([01])=xc1+yc2T ( \begin{bmatrix} x \\ y \end{bmatrix} )=T\left( x\begin{bmatrix} 1 \\ 0\end{bmatrix}+ y\begin{bmatrix} 0 \\ 1\end{bmatrix} \right)=xT\left( \begin{bmatrix} 1 \\ 0\end{bmatrix} \right) + yT\left( \begin{bmatrix} 0 \\ 1\end{bmatrix} \right) =xc_1+yc_2 T([xy])=T(x[10]+y[01])=xT([10])+yT([01])=xc1+yc2
其中
T([10])=c1T\left(\begin{bmatrix} 1 \\ 0\end{bmatrix} \right)=c_1T([10])=c1
T([01])=c2T\left(\begin{bmatrix} 0 \\ 1\end{bmatrix} \right)=c_2T([01])=c2
可以看到,TTT作为线性泛函,当作用于一个具体的向量[xy]\begin{bmatrix} x\\y \end{bmatrix}[xy]时,其结果只依赖于c1c_1c1和c2c_2c2(选取其他基底时会有不同,但初学时只关注这种特殊情况),所以只要确定了c1c_1c1和c2c_2c2这个函数TTT也就被确定了。
对偶空间的基:设VVV的一组基为e1,e2,...,en{e_1,e_2,...,e_n}e1,e2,...,en,则α1,α2,...,αn{\alpha ^1,\alpha ^2,...,\alpha ^n}α1,α2,...,αn是V∗V^*V∗的一组基,其中αi(ej)=δij={1,i=j0,i≠j\alpha^i(e_j)=\delta_{ij}= \begin{cases} 1, & i=j \\ 0, & i\neq j \end{cases}αi(ej)=δij={1,0,i=ji=j
还是以R2R^2R2举例,[10]\begin{bmatrix} 1 \\ 0\end{bmatrix}[10]和[01]\begin{bmatrix} 0 \\ 1\end{bmatrix}[01]作VVV的基,设T1T_1T1和T2T_2T2为两个线性泛函定义如下
T1([10])=1T_1(\begin{bmatrix} 1 \\ 0\end{bmatrix} )= 1T1([10])=1
T1([01])=0T_1 \left(\begin{bmatrix} 0 \\ 1\end{bmatrix} \right)= 0T1([01])=0
T2([01])=1T_2 \left(\begin{bmatrix} 0 \\ 1\end{bmatrix} \right)= 1T2([01])=1
T2([10])=0T_2 \left(\begin{bmatrix} 1 \\ 0\end{bmatrix} \right)= 0T2([10])=0
我们可以验证以下结果(不写过程了)
- T1([xy])=xT_1 \left(\begin{bmatrix} x \\ y\end{bmatrix} \right) = xT1([xy])=x 且 T2([xy])=yT_2 \left(\begin{bmatrix} x \\ y\end{bmatrix} \right) = yT2([xy])=y
- ∀T∈V∗[T([10])=c1T([01])=c2]⇒T=c1T1+c2T2\forall T\in V^* \left[ T\left(\begin{bmatrix} 1 \\ 0\end{bmatrix} \right)=c_1 \quad T\left(\begin{bmatrix} 0 \\ 1\end{bmatrix} \right)=c_2 \right] \Rightarrow T=c_1T_1+c_2T_2∀T∈V∗[T([10])=c1T([01])=c2]⇒T=c1T1+c2T2
- {T1,T2}\{T_1, T_2\}{T1,T2}是V=R2V=R^2V=R2的一组基
符号约定:如果Ti(ej)=δijT_i(e_j)=\delta_{ij}Ti(ej)=δij那么我们称T1T_1T1是向量e1e_1e1的对偶,T2T_2T2是向量e2e_2e2的对偶,并以此类推;同时称{T1,T2}\{ T_1, T_2\}{T1,T2}是{e1,e2}\{e_1,e_2\}{e1,e2}的对偶基;我们通常将对偶基T1,T2T_1,T_2T1,T2记作e1,e2e^1,e^2e1,e2,即ei(ej)=δjie^i (e_j) = \delta^i_jei(ej)=δji,其中δji\delta^i_jδji也被称为Kronecker delta function.
容易观察到对偶基依赖于向量空间的基的选择,倘若我们始终以下面这组标准正交基
[100...0],[010...0],[001...0],...,[000...1]\begin{bmatrix} 1 \\0 \\0 \\... \\0 \end{bmatrix} , \begin{bmatrix} 0 \\1 \\0 \\...\\0 \end{bmatrix} , \begin{bmatrix} 0 \\0 \\1 \\...\\0 \end{bmatrix} , ..., \begin{bmatrix} 0 \\0 \\0 \\...\\1 \end{bmatrix} 100...0,010...0,001...0,...,000...1
作为RnR^nRn的基,那么很容易得到其对偶基为
[100...0],[010...0],[001...0],...,[000...1]\begin{bmatrix} 1 & 0 & 0 & ... & 0\end{bmatrix} , \begin{bmatrix} 0 & 1 & 0 & ... & 0\end{bmatrix} , \begin{bmatrix} 0 & 0 & 1 & ... & 0\end{bmatrix} , ... , \begin{bmatrix} 0 & 0 & 0 & ... & 1\end{bmatrix}[100...0],[010...0],[001...0],...,[000...1]
只要将上面那组基转置一下即可。
水平集
水平集简单来说,就是我们希望在V=RnV=R^nV=Rn里画出V∗=(Rn)∗V^*=(R^n)^*V∗=(Rn)∗的图像,具体做法如下
由上面对对偶基的讨论可知(未加说明,对偶基均指标准正交基导出的那组基),eie^iei实际上就是只“保留”了向量v=(a1,a2,...,an)v=(a_1,a_2,...,a_n)v=(a1,a2,...,an)的第iii个元素,即ei(v)=aie_i(v)=a_iei(v)=ai。
以二维为例,e1e^1e1对于
A=[3.51.5],B=[−3.51.5],C=[1.9−1],D=[−1.5−1.5]A=\begin{bmatrix} 3.5 & 1.5\end{bmatrix}, B=\begin{bmatrix} -3.5 & 1.5\end{bmatrix}, C=\begin{bmatrix} 1.9 & -1\end{bmatrix}, D=\begin{bmatrix} -1.5 & -1.5\end{bmatrix}A=[3.51.5],B=[−3.51.5],C=[1.9−1],D=[−1.5−1.5]
的图像大概就是
可以看到,AAA恰好穿过了三条线,因此e1(A)≈3e^1(A)\approx3e1(A)≈3同理有e1(B)≈−3e_1(B)\approx-3e1(B)≈−3以此类推。
而e2e^2e2的图像也类似,如下
更重要的是,画出了对偶基的图像,我们实际上就知道了任何一个线性泛函的图像,例如f=2e1+e2f=2e^1+e^2f=2e1+e2的图像,我们首先找到
v∈Vs.t.f(v)=1v\in V \quad s.t. \quad f(v)=1v∈Vs.t.f(v)=1即
2x+y=1⇒y=−2x+12x+y=1\Rightarrow y = -2x+12x+y=1⇒y=−2x+1
就可以得到一条直线,接着令f(v)=2f(v)=2f(v)=2,f(v)=3f(v)=3f(v)=3,f(v)=4f(v)=4f(v)=4…得到如下的图
其中A=[1/21],B=[1−3]A=\begin{bmatrix} 1/2 \\ 1 \end{bmatrix}, B=\begin{bmatrix} 1 \\ -3 \end{bmatrix}A=[1/21],B=[1−3],明显A,BA,BA,B分别穿过了2条和-1条线,于是可以大概估计到f(A)=2,f(B)=−1f(A)=2, f(B)=-1f(A)=2,f(B)=−1,实际计算后也是如此,这就是水平集(或者叫等值面)的意义。
体积与行列式 Volume and Determinants
在一个nnn维的向量空间中,我们定义一个由nnn个向量组成的“平行六面体”的体积是一个函数D:Rn→RD:R^n \rightarrow RD:Rn→R,从直觉上我们希望它满足如下的要求:
- D(I)=1D(I)=1D(I)=1,其中III是单位矩阵;这意味着每条边都是单位长度的“平行六面体”的体积应该是111
- vi=vj(i≠j)⇒D(v1,v2,...,vn)=0v_i=v_j( i\neq j)\Rightarrow D(v_1,v_2,...,v_n)=0vi=vj(i=j)⇒D(v1,v2,...,vn)=0;这是想让某一条边viv_ivi跟另一条边vjv_jvj重合时,体积为零
- DDD是线性的;即
D(v1,...,vj−1,v+cw,vj+1,...,vn)=D(v1,...,vj−1,v,vj+1,...,vn)+cD(v1,...,vj−1,w,vj+1,...,vn)D(v_1,...,v_{j-1},v+cw,v_{j+1},...,v_n) =D(v_1,...,v_{j-1},v,v_{j+1},...,v_n) +cD(v_1,...,v_{j-1},w,v_{j+1},...,v_n) D(v1,...,vj−1,v+cw,vj+1,...,vn)=D(v1,...,vj−1,v,vj+1,...,vn)+cD(v1,...,vj−1,w,vj+1,...,vn)
而根据以上性质推出来的映射DDD就是我们所熟知的行列式的计算法则与性质,且可以证明这样的DDD存在且唯一。
多元函数的微分 Derivatives of Multivariable Functions
设f:Rn→Rmf:R^n\to R^mf:Rn→Rm,即
f(x1,x2,...,xn)=(f1(x1,x2,...,xn),f2(x1,x2,...,xn),...,fm(x1,x2,...,xn))f(x_1,x_2,...,x_n)=( f_1(x_1,x_2,...,x_n), f_2(x_1,x_2,...,x_n), ..., f_m(x_1,x_2,...,x_n) ) f(x1,x2,...,xn)=(f1(x1,x2,...,xn),f2(x1,x2,...,xn),...,fm(x1,x2,...,xn))
若fff可微,即
limx→x0∥f(x)−f(x0)−Df(x0)(x−x0)∥∥x−x0∥=0\lim_{x\to x_0} \frac {\Vert f(x)-f(x_0)-Df(x_0)(x-x_0)\Vert} {\Vert x-x_0\Vert} =0x→x0lim∥x−x0∥∥f(x)−f(x0)−Df(x0)(x−x0)∥=0
其中
v=[x1...xn]v = \begin{bmatrix} x_1\\.\\.\\.\\x_n\end{bmatrix}v=x1...xn
∥v∥=∑i=1nxi2\quad \Vert v\Vert=\sqrt{\sum_{i=1}^{n}x_i^2}∥v∥=i=1∑nxi2
设DfDfDf是fff的微分,容易验证其具有线性性,可以作为线性主部来近似于某一点的函数值。
Df(x)Df(x)Df(x)的矩阵表示形式称为Jacobian矩阵,如下
Df(x)=[∂f1∂x1,∂f1∂x2,...,∂f1∂xn∂f2∂x1,∂f2∂x2,...,∂f2∂xn...∂f3∂x1,∂f3∂x2,...,∂f3∂xn]=[∂fi∂xj]i=row,j=clumnDf(x)= \begin{bmatrix} \frac {\partial f_1}{\partial x_1} , \frac {\partial f_1}{\partial x_2} , ... , \frac {\partial f_1}{\partial x_n} \\ \frac {\partial f_2}{\partial x_1} , \frac {\partial f_2}{\partial x_2} , ... , \frac {\partial f_2}{\partial x_n} \\ ... \\ \frac {\partial f_3}{\partial x_1} , \frac {\partial f_3}{\partial x_2} , ... , \frac {\partial f_3}{\partial x_n} \end{bmatrix}= \begin{bmatrix} \frac {\partial f_i} {\partial x_j} \end{bmatrix}_{i=row,\quad j=clumn} Df(x)=∂x1∂f1,∂x2∂f1,...,∂xn∂f1∂x1∂f2,∂x2∂f2,...,∂xn∂f2...∂x1∂f3,∂x2∂f3,...,∂xn∂f3=[∂xj∂fi]i=row,j=clumn
流形上的微积分和微分形式的可视化导论(一)相关推荐
- 流形上的微积分和微分形式的可视化导论(三)
前言 请看前面的一二章.最近事儿多,还正好碰到春节,更新慢了,而且后面的内容会比较难,估计一星期是不够的了-所以先做到日拱一卒!这一章的内容跟代数有点关系,证明过程比较trivial我就不写了,总的来 ...
- 其他算法-建立在流形上的降维UMAP
目录 前置内容 UMAP步骤 学习流形结构 寻找流形的低维表示 过去流行使用t-SNE,但其存在问题: tSNE不能适用大的样本量.如果使用t-SNE加速计算,也会导致内存消耗大,从而只能在计算机集群 ...
- 多个模型在测试集上的Accuracy以及AUC指标可视化对比实战
多个模型在测试集上的Accuracy以及AUC指标可视化对比实战 目录 多个模型在测试集上的Accuracy以及AUC指标可视化对比实战 #仿真数据
- 计算图上的微积分:Backpropagation 微积分 SOTON数据分析 · 2015-09-06 08:52 [译] 计算图上的微积分:Backpropagation 引言 Backprop
计算图上的微积分:Backpropagation 微积分 SOTON数据分析 · 2015-09-06 08:52 引言 Backpropagation (BP) 是使得训练深度模型在计算上可行的关 ...
- python 计算流形上两点之间的测地距离
在分析数据时,有时要计算流形上两点之间的测地距离.本着有现成轮子绝对不自己写的观点,发现可以通过以下方式计算流形上任意两点之间的测地距离. ISOMAP是一种保持测地距离不变的高维空间中低维流形的降维 ...
- 流形上的预积分(上)
预积分和流形 论文:IMU Preintegration on Manifold for Effificient Visual-Inertial Maximum-a-Posteriori Estima ...
- 流形上从环境空间到隐层空间是压缩的一个过程,香农极限是否是流形表示的另一个方面?
问题记录: 流形上从环境空间到隐层空间是压缩的一个过程,香农极限是否是流形表示的另一个方面?
- 三轴桁架机械手控制系统 用于数控车床自动上下料 信捷触摸屏程序 可视化运动仿真
三轴桁架机械手控制系统 用于数控车床自动上下料 信捷触摸屏程序 可视化运动仿真 运行状态全程监控 支持电子手轮,方便调机. 本链接包含屏和PLC全套程序 程序已调试 ID:69499654333414 ...
- 3D全景建模VR线上房产展厅商迪3D可视化展示
现如今传统的平面房产展示已经难以满足客户的需求了,疫情当下VR线上虚拟展厅无疑是当下最受关注的一项技术,VR全景线上展示是基于虚拟现实3D可视化技术结合3D全景建模去还原真实场景.可在Web端720° ...
最新文章
- github pages_使用GitHub Pages和Lighthouse增强您的开发人员产品组合
- 前端一HTML:三: 浏览器页面的本质-html,html语言规则
- MybatisPlus中@TableField注解的使用
- 数组洗牌算法-shuffle
- 美国量子计算机能编程吗,世界首台可编程通用量子计算机美国问世
- R语言安装;Rstudio安装
- JAVA实现onvif的ptz控制_使用Onvif协议进行设备PTZ云台控制
- xshell利用linux rz sz 命令上传、下载文件
- Bootstrap开篇理解:
- 如何修改html中字号大小,css怎么设置字体大小?
- Python学习-2.安装IDE
- 阶段3 1.Mybatis_12.Mybatis注解开发_6 mybatis注解开发一对一的查询配置
- 在myeclipse上设置 SVN过滤上传的文件类型
- 计算机网络基础大学教材,计算机网络基础(高等院校信息技术应用型规划教材)...
- NoSuchMethodError: No virtual method centerCrop()/glide
- 腕能助手android9,腕间应用助手(com.gmf.watchapkassistant) - 1.7 - 应用 - 酷安
- ArcGIS网络分析扩展模块
- 全国计算机软件专业二本大学排名,2017全国二本大学专业排名
- 如何将bmp转化为jpg?
- 石墨文档网页视频链接批量保存到百度网盘