多面体的欧拉公式

原文链接

在数学历史上有很多公式都是欧拉(Leonhard Euler)发现的,它们都叫做欧拉公式,分散在各个数学分支之中。

欧拉13岁进入瑞士巴塞尔大学读书,15岁获得学士学位,16岁又获得巴塞尔大学哲学硕士学位,轰动了当时的科学界。但是,他的父亲却希望他去学神学。直到小欧拉19岁时获得了巴黎科学院的奖学金之后,父亲才不再反对他读数学。欧拉是一位创作性超群的数学家,后来从瑞士转赴俄国和德国工作,因此三个国家都声称他是本国的科学家。

有许多关于欧拉的传说。比如,欧拉心算微积分就像呼吸一样简单。有一次他的两个学生把一个复杂的收敛级数的17项加起来,算到第50位数字,两人相差一个单位,欧拉为了确定究竟谁对,用心算进行全部运算,最后把错误找了出来。 欧拉创作文章的速度极快,通常上一本书还没有印刷完,新的手稿就写好了,导致他的写作顺序与出版顺序常常相反,让读者们很郁闷。而且,收集这些数量庞大的手稿也是一件困难的事情。瑞士自然科学会计划出一部欧拉全集,这本全集编了将近100年,终于在上个世纪90年代基本完成,没想到圣彼得堡突然又发掘出一批他的手稿,使得这本全集至今仍未完成。欧拉28岁时一只眼睛失明了,后来另一只眼睛也看不见了,据说是因为操劳过度,也有一说是因为观察太阳所致。尽管如此,他仍然靠心算完成了大量论文。

下面来看看欧拉公式中最著名和优美的一个。

拓扑学的欧拉公式描述了多面体顶点(Vertex),边(Edge)和面(Face)之间的关系:

V - E + F = X

其中,V是多面体的顶点个数,E是多面体的棱的条数,F是多面体的面数, X是多面体的欧拉示性数(Euler characteristic)。

X是拓扑不变量,就是无论再怎么经过拓扑变形也不会改变的量,是拓扑学研究的范围。X的值依赖于几何物体的形态和曲面的取向。

可定向性——大部分我们在物理世界中遇到的曲面是可定向的。例如平面,球面与环面是可定向的。但是莫比乌斯带(Möbius strip)不可定向,它在三维空间中看起来都只有一“侧”。假设一只蚂蚁在莫比乌斯带上爬行,它可以在不穿过边界的情况下爬到曲面的另一侧。

亏格(Genus)——可定向曲面的亏格是一个整数。如果沿一个几何曲面的任意一条简单闭合曲线切开,都能把曲面切断,那么这个曲线的亏格就是0。如果存在一条简单闭合曲线在切开后,曲面没有分成两个部分,那么亏格就是1。进一步的在亏格为1的曲面上切开一条曲线后,还能再找到一条这样的曲线,那么亏格为2。依次类推。

闭可定向曲面的欧拉示性数可以通过它们的亏格 g 来计算

X = 2 - 2 * g

例如,长方体的亏格是0,顶点为8个,边为12个,面为6个,它的欧拉公式为

8 - 12 + 6 = 2

对于四面体,亏格为0,顶点为4个,边为6g个,面为4个,它的欧拉公式为

4 - 6 + 4 = 2

第一个欧拉公式的严格证明,由20岁的法国科学家柯西( Augustin Louis Cauchy ) 给出,大致如下:

从多面体去掉一面,通过把去掉的面的边互相拉远,把所有剩下的面变成点和曲线的平面网络。不失一般性,可以假设变形的边继续保持为直线段。正常的面不再是正常的多边形即使开始的时候它们是正常的。但是,点,边和面的个数保持不变,和给定多面体的一样(移去的面对应网络的外部。)

重复一系列可以简化网络却不改变其欧拉数(也是欧拉示性数) F − E + V 的额外变换。

1.若有一个多边形面有3条边以上,我们划一个对角线。这增加一条边和一个面。继续增加边直到所有面都是三角型。
2. (逐个)除去所有和网络外部共享两条边的三角形。这会减少一个顶点、两条边和一个面。
3. 除掉只有一条边和外部相邻的三角形。这把边和面的个数各减一而保持定点数不变。

重复使用第2步和第3步直到只剩一个三角形。对于一个三角形F = 2 (把外部数在内), E = 3, V = 3。所以F − E + V = 2。证毕。

时间: 2024-11-05 12:14:17

多面体的欧拉公式的相关文章

uva 10213 How Many Pieces of Land (欧拉公式计算多面体)

题意:在一个圆上取n个点,求最多能将圆分为多少块: 思路:欧拉公式计算多面体: 欧拉公式:简单多面体的顶点数V.面数F及棱数E之间的关系为V+F-E=2; 首先考虑点数v,有n个在圆上的点,任取一点x,考虑与x相连的每条对角线,假设对角线左边有i个顶点,则右边应有(n-2-i)个顶点,这些顶点相互连接可以产生i*(n-i-2)个顶点,再将所有的x与所有的对角线l求和.每个交点分别算了4次(一个交点由两条线产生,有4个圆上的点会计算到),除以4: V=n+n/4*(西格玛i=1到n-3) i*(n

poj2284 That Nice Euler Circuit(欧拉公式)

题目链接:poj2284 That Nice Euler Circuit 欧拉公式:如果G是一个阶为n,边数为m且含有r个区域的连通平面图,则有恒等式:n-m+r=2. 欧拉公式的推广: 对于具有k(k≥2)个连通分支的平面图G,有:n-m+r=k+1. 题意:给出连通平面图的各顶点,求这个欧拉回路将平面分成多少区域. 题解:根据平面图的欧拉定理“n-m+r=2”来求解区域数r. 顶点个数n:两两线段求交点,每个交点都是图中的顶点. 边数m:在求交点时判断每个交点落在第几条边上,如果一个交点落在

POJ 2225 / ZOJ 1438 / UVA 1438 Asteroids --三维凸包,求多面体重心

题意: 两个凸多面体,可以任意摆放,最多贴着,问他们重心的最短距离. 解法: 由于给出的是凸多面体,先构出两个三维凸包,再求其重心,求重心仿照求三角形重心的方式,然后再求两个多面体的重心到每个多面体的各个面的最短距离,然后最短距离相加即为答案,因为显然贴着最优. 求三角形重心见此: http://www.cnblogs.com/whatbeg/p/4234518.html 代码:(模板借鉴网上模板) #include <iostream> #include <cstdio> #in

世界的本质是旋转(1)复平面与欧拉公式

最近闲来无事,翻看起旧课本<信号与系统>,不经意间对一些基础问题有了新的理解角度.在上学的时候,我搞不清楚,这傅里叶变换是毛?明明一个时域波形,非要搞出个频率出来,虽然很好用,但是看不见摸不着的,实在让人头大. 1.欧拉公式 ejθ=cosθ+jsinθ 复平面上对角度取复指数,被定义为单位圆上角度为θ的向量,亦可理解为单位向量"1"沿逆时针从X+轴旋转θ度后的结果. cosθ 是横坐标,sinθ 是纵坐标,通过因子 j 与实坐标组合起来,表示一个确切的位置. 当然,通过一

hdu5047 找规律+欧拉公式

题意:在一个正方形内画n个M,求最多能分成多少个平面 sol:这种求划分成多少个平面的题第一反应肯定是欧拉公式: 二维平面上的欧拉公式:V+F-E=1 (V:Vertices,F:Faces,E:Edges) 然后我们画出三个M的情况看一下:(果然Pad是个画图神器..去年网赛的时候光画图就画了半天...) 最多的情况就是每两个M都相交 先分析vertices:两个M相交共16个交点,再加上每个M和正方形相交又有2个交点. 所以加起来就是V=16*C(n,2)+2*n=8*n*n-6n 再来看e

UVa 10213 (欧拉公式+Java大数) How Many Pieces of Land ?

题意: 一块圆形土地,在圆周上选n个点,然后两两连线,问把这块土地分成多少块? 分析: 首先紫书上的公式是错的,不过根据书上提供的思路很容易稍加修改得到正确答案! 然后推公式吧,这里用到平面图的欧拉公式,V - E + F = 2,其中V表示顶点个数,E表示边的个数,F表示面的块数. 减去最外面的无限大的面,所求ans = E - V + 1 假设n≥4,从圆周上的一个点出发枚举一条对角线,左边有i个点,右边有n-2-i个点,将左右两边的点两两相连,就在这条对角线上得到个交点.每个交点被重复计算

多面体与优化

多面体和优化有很大的关系,很多实际问题都可以形式化成和多面体或多面体函数相关的问题.此外,若一个问题的约束是多面体,则往往可以设计出比一般凸约束问题解法更好的优化算法,之前我们已经碰到过一些: 凹函数f 若在凸集C 上不是常数函数,那么只可能在C 的相对边界上取得最小值(命题1.3.4). 线性函数或凸二次函数f 在多面体C 上有下界,那么f 可在C 上取得最小值(命题1.4.19). 这一节我们更深入地介绍多面体在优化里的应用,尤其是线性规划(线性函数在多面体上的最小化问题).线性规划里有一个

ZOJ--3574--Under Attack II【线段树+欧拉公式】

链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3574 题意:一个坐标系,给出x1.x2限定左右边界,有n条直线,告诉每条直线的k和b,问在x1.x2区间内空间被直线分割成几部分 思路: 这道题是比赛时做的,AC之后发现别人都是用归并排序求逆序对数来解的. 说我的解法吧,首先拿到题的时候发现是划分区域这样的,第一下就想到了欧拉公式,但是n有30000,n^2找交点肯定要超时.土豪在纸上画了一下,一条直线必然在x1和

类球多面体生成——经纬划分法

规则多面体生成算法,算法本身很.开始想百度一份的,结果没百度到.贴出来,希望以后有用得到的同学可在直接拿去用. 算法过程 根据经纬线数目求出多面体表面所有点的坐标: 连接南北极附近的三角形面: 连接中间的四边形(或两个三角形): 算法实现 下面是该算法的C++实现. Convex* SphereGenerator::generate(int longitudes, int latitudes, Float radius) { m_radius = radius; m_longitudes = l