共变导数(Covariant Derivative)
导数是指某一点的导数表示了某点上指定函数的变化率。
比如,要确定某物体的速度在某时刻的加速度,就取时间轴上下一时刻的一个微小增量,然后考察速度的增量和时间增量的比值。如果这个比值比较大,说明单位时间内速度的改变量大,反之就小。注意的是,只有当时间轴上的微小增量的极限趋于零时,这个比值才是考察的时刻的加速度(即速度的导数)。
可以看出,导数的定义与极限的概念是分不开的。而极限的表述最早是由法国人费马给出的。
共变导数则是在流体上定义导数的方法。
在基于欧几里得空间的笛卡尔坐标系里,对向量场求导数的方法与上文类似,即取两个空间坐标相近的点,然后考察其向量差与位置改变的比值。如果位置改变量是无穷小量,那么可以得到该点的导数。
但是,在流形的球面上,位置改变量的计算则根本不切实际,因为当移动一个向量的时候,随着路径的不同,结果根本就不一样。一个向量沿着球面转动一圈,因为曲率不为零,可能根本就不是原来那个向量了。换句话说,在曲面上的每个点上没有统一的坐标系,所以要把坐标系的变化考虑在内。或者说是共变导数是不依赖坐标系的求导方法。
联络(Connection)
联络描述了空间中某一点,对应于另外一点的空间转换。此表述隐含了一些假设。
首先曲面上每一点定义一个相互独立的空间,称为切空间(Tangent Space)。切空间是由该点的所有切向量(Tangent Vector)组成的空间, 这些切向量都是垂直于该点法线方向的向量。其次,定义在不同切空间中的切向量是不能相互运算,比如相加和相减的。因为曲率不加以考虑的话,这些运算都没有意义。
但是,这些不同点的切空间之间是有联系的,这些联系就叫联络。联络可以把无穷接近的两个切空间中的向量,转换到同一个切空间中。联络实际上是反映了切空间的弯曲程度。
有很多种实现联络的方法。但前提是,这些不同切空间中相应的向量的分量是需要可以相互对应的。
如何使用联络定义共变导数? 使用倒三角加上两个位于同一点的向量(比如v,u)来表示。可以写作Dvu,读作向量u沿着向量v的共变导数。定义参考向量v的意义在于,移动后的u向量要额外考虑它原本参考系中的变化(联络,即跟空间的结构变化有关),这是它与普通导数的最大区别。
共变导数(Covariant Derivative)的更多相关文章
- <<Differential Geometry of Curves and Surfaces>>笔记
<Differential Geometry of Curves and Surfaces> by Manfredo P. do Carmo real line Rinterval I== ...
- <Differential Geometry of Curves and Surfaces>(by Manfredo P. do Carmo) Notes
<Differential Geometry of Curves and Surfaces> by Manfredo P. do Carmo real line Rinterval I== ...
- Derivative of the softmax loss function
Back-propagation in a nerual network with a Softmax classifier, which uses the Softmax function: \[\ ...
- 泛型类型的协变(covariant)和逆变
官网:http://msdn.microsoft.com/zh-cn/library/dd799517.aspx 原文链接:http://book.51cto.com/art/201112/30857 ...
- Co-variant array conversion from x to y may cause run-time exception
http://stackoverflow.com/questions/8704332/co-variant-array-conversion-from-x-to-y-may-cause-run-tim ...
- Derivative of Softmax Loss Function
Derivative of Softmax Loss Function A softmax classifier: \[ p_j = \frac{\exp{o_j}}{\sum_{k}\exp{o_k ...
- 逆变(contravariant)与协变(covariant):只能用在接口和委托上面
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- 协变(covariant)和逆变(contravariant)
我们知道子类转换到父类,在C#中是能够隐式转换的.这种子类到父类的转换就是协变. 而另外一种类似于父类转向子类的变换,可以简单的理解为“逆变”. 上面对逆变的简单理解有些牵强,因为协变和逆变只能针对接 ...
- 逆变(contravariant)与协变(covariant)
逆变(contravariant)与协变(covariant)是C#4新增的概念,许多书籍和博客都有讲解,我觉得都没有把它们讲清楚,搞明白了它们,可以更准确地去定义泛型委托和接口,这里我尝试画图详细解 ...
随机推荐
- Vue.js-----轻量高效的MVVM框架(九、组件利用Props传递数据)
#使用props传递数据 html:传递普通的字符串 <h3>#使用props传递数据</h3> <div id="dr01"> <div ...
- c++ 封装线程库 0
1.互斥锁简介 互斥锁主要用于互斥,互斥是一种竞争关系,用来保护临界资源一次只被一个线程访问. POSIX Pthread提供下面函数用来操作互斥锁. int pthread_mutex_init(p ...
- 《我在谷歌大脑见习机器学习的一年:Node.js创始人的尝试笔记》阅读笔记
文章来源:https://www.toutiao.com/i6539751003690893828/?tt_from=weixin_moments&utm_campaign=client_sh ...
- Murano Weekly Meeting 2016.08.09
Meeting time: 2016.August.09 1:00~2:00 Chairperson: Kirill Zaitsev, from Mirantis Meeting summary: ...
- java多线程优先级问题
java 中的线程优先级的范围是1-10,默认的优先级是5.“高优先级线程”会优先于“低优先级线程”执行. 例子: package com.ming.thread.threadpriority; pu ...
- C#中 计时器用法 运行时间
有时候我们会需要计算某段代码运行的时间 比如一个sql查询,记录一段代码所花费的时间等等代码如下: System.Diagnostics.Stopwatch watch = new System.Di ...
- 二维码项目实例为二维码添加logo
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- MVC在页面View上获取当前控制器名称、Action名称以及路由参数
有时候在封装MVC通用控件时需要在页面上获取这些数据. 用以下方法即可: //获取控制器名称: ViewContext.RouteData.Values["controller"] ...
- Vue之组件间传值
标签: Vue Vue之父子组件传值 父向子传递通过props 子向父传递通过$emit 演示地址 代码示例如下: <!DOCTYPE html> <html lang=" ...
- foxmail6.5 不能收取电子邮件,反复提示输入密码?
使用foxmail时候报错:-err system resource error,system close connect,code=<1014>,id=<1>重新输入密码吗? ...