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

a1f1f2f04d5422875c6d62a678584f24.png

  现实生活中,我们只要掌握圆的周长和面积公式,了解球的表面积和体积公式就够用了,没有什么可以深究的。本篇将带你走进高维度球的表面积和体积公式[1]
  我们生活在三维空间,对更高维度的空间难以构想。笛卡尔说:我思故我在。借助一点点想象力,我们来推导一下n维球的体积公式。

  以下都假设球的半径为r,表面积为S,体积为V。球心为坐标原点O,具有n个维度的点X坐标为

,球内任意一点X,都满足距离条件

  对于向量空间,距离测度分多种:
1范式 曼哈顿距离(Manhattan distance)  


2范式 欧几里德距离(Euclidean distance) 

n范式                    

范式 切比雪夫距离( Chebyshev distance) 

超立方体

  无穷大范式最简单,我们先作讨论。所有维度上的坐标的绝对值不超过r,这样的形状是一个边长为2r的超立方体(hyper,不是super)是一个泛化的概念,用以延伸到所有的维度上。

  超立方体的各个轴都是正交的,所以体积

上的积分等于在各个轴上的长度的乘积,即

  每个轴都有左右两个超平面限定,于是n维体有2n个面。在向高维扩展时,n维球的“体”就会沦落为n+1维球的“面”。我们有

,然后连同上面的式子,我们得到
。可以对着正方形和正方体检查一下,是符合的。对于一维情况,“体”就是线长
无疑。但是根据公式,“面”
,与半径无关,没有量纲。有点奇怪,相当于零维空间点的左右两个面?

超锥体

  在曼哈顿距离下,

构成什么形状呢?可以从低维度入手。一维情况下是一条直线,二维情况下是一个围住
正四边形,或者倾斜的正方体。三维情况下是正八面体,与各轴的交点是
。同理,n维情况下的交点是
构成
超多面体,每个轴上有左右两个交点,每个轴上选一个交点,张成一个超平面。仅考虑正半轴,则形状分别是三角形,三角锥,四角锥,……超角锥。超角锥的体积公式是
[2],注意超角锥的体积对二维(三角形)而言是面积,对三维(三角锥)而言是体积。再忘掉正半轴,一维有二仪,二维有四象,三维有八卦,超多面体则有
个超角锥,每个超角锥的体积为
,于是体积公式就是

超球体

  最后,我们来看一下常用的欧几里德距离——平方和后再开方。
先回忆一下公式:
圆的周长、面积公式 


球的表面积、体积公式

  根据上面的结论,一维球的“体”是二维球的“面”,对于一维球而言,其体积就是直线长度(类比二维球,即圆的周长),

  关于圆的公式都涉及到
,结合上面超体的结论,再从量纲上分析,我们可以先大胆地推测
,其中 C, K为待求的常数。

  我们可以选取笛卡尔坐标系或极坐标系,笛卡尔坐标系下的式子比较繁琐。

转化成极坐标系,就是

从一个空间映射到另一个空间,或者从一个坐标系变换到另一个坐标系,需要乘以雅可比矩阵( Jacobi matrix )。
  球是中心对称的,由n维球

移项得
,如果固定
(切片操作),就得到n-1维半径为
的球,我们根据这个思想
n维球的任意切片都是n-1维球,在
轴上平行切片,体积累加起来
对于3维球,每个切片薄得可以看成一个个半径为
圆柱体,
,换成积分得到体积递推公式:

这个结论可以通过
数学归纳法来证明。

基于被积函数是偶函数,缩小积分范围为

然后令

,则
,换元得

整理一下 

积分是Beta函数形式,Beta函数的定义为

于是,


Beta函数与Gamma函数存在关系

Gamma函数的定义

,性质


到这里就是常见的一类积分了,同济大学高等数学教材有讲过高斯分布。平方后转换成平面直角坐标系二重积分,然后转换成极坐标系求解,用这样巧妙的方法得到

带入常数

通过一系列的迭代,Gamma函数分子分母相消,

带入

很显然有

三角函数积分


由于
是相对x而言是常量,可以移到积分式子外面去。加上被积的函数是偶函数,我们有

换元,设
,则

你也可以
,则

好了,这一节的主角登场了。求积分
或者

n取1或2时容易求解,这引导着我们用分部积分法(integration by parts )
达到降次的效果。


带入
,然后化简

得到递推公式

接着,限定下上限分别为0和

,在边界,因为
总有一个为0,导致第一项的结果总是为0,于是得到更简单的递推形式
,然后分奇数、偶数迭代求解。


如何体面

  球可以由半径逐渐递增的壳来填充,类似俄罗斯套娃。当填充的壳的厚度趋近于0时,我们就得到球的体积。由于球、球面的各向同性,球面上任何一个微元(facet)都可以近似看成平面,其体积为

,球面的体积为
,积分得
,反之
对n维球的体积求导得n维球的表面积,这样也解释了对圆面积
求导得圆周长
,对球体积
求导得球表面积

通过求导,我们很体面地从“体”计算出“面”。(no pun intended)
其实,体积与面积之间还存在这样一个比例关系

公式细究

Γ函数有很多的性质,是符合整数点阶乘运算的最佳连续函数。

为偶数时,令
,则

为奇数时,令
,则

时,
,这个系数很是熟悉, 根据 Taylor 级数展开式
凑一下,有
。看!我们就这样构造到了一个神奇的数字
半径取1的所有偶数维度球的体积之和为
是个
超越数(Transcendental Number)。

  有了公式之后,任意维度的体积[3]就可以轻松计算了。

  对于n维单位球,我们用matplotlib画一下体积V关于维度n的函数图。

#!/usr/bin/env python3
import matplotlib
import numpy as np
import scipyimport matplotlib.pyplot as pltfrom scipy.special import gamma# For unit sphere of dimension n, the volume is
# V_n = frac {pi^{frac n 2}} {Gamma(frac n 2 + 1)}
t0 = -5.0
t1 = 20.0
t = np.arange(t0, t1, 0.1)
V = np.pi ** (t / 2.0) / gamma(t / 2.0 + 1.0)n = np.arange(t0, t1, 1.0)
V_n = np.pi ** (n / 2.0) / gamma(n / 2.0 + 1.0)figure, ax = plt.subplots()
ax.plot(t, V)
ax.plot(n, V_n, color='green', marker='o', linestyle='')ax.set_xlabel('n (dimensionality)')
ax.set_ylabel('C_n m^n')
ax.set_title('volume of n dimensional unit sphere')
ax.grid()figure.savefig("volume.png")
plt.show()

  需要安装numpy, scipy, matplotlib这三个Python库,没安装的可以安装一下,以后科学计算和作图用得到的。控制台下输入命令 pip3 install numpy, scipy, matplotlib。代码运行无误后,得到图:

1345b3ca11e22a4f11f6678319b812b3.png

  上面顺带也画出了负维空间的情况。从正整数维度到分数维度,再到负数维度,一直扩充到了实数范围。从图中看到,对于单位球,五维空间的体积最大。五维空间是什么概念?不清楚。克里斯托弗·诺兰是一个商业和艺术结合最好的导演,他在电影《星际穿越》中向我们描述了一个五维空间的存在。
  固定半径r,我们可以看到,随着n的增长,分母以越来越大的正整数增加,分子以系数

稳定增长,
不敌增长的最终结果是,体积趋近于0。分析是没错,但这是一个反直觉(counter-intuitive)的结论。下面的图可以帮忙纠正错觉。

fea39675166b972e618ee7ea3bb7c71a.png

  维度越高,越靠近坐标轴。很形象的一个比喻就是海胆,核越来越小,刺突越来越长,也越来越尖。想看动画效果?可以观察

在平面直角坐标新中,p从无穷大到0,图形的变化。顺便,
维度灾难[4]也了解一下。

参考

  1. ^Volume of an n-ball https://en.wikipedia.org/wiki/Volume_of_an_n-ball
  2. ^The Volume of a Hyperpyramid http://physicsinsights.org/pyramids-1.html
  3. ^Gamma Function and the Volumes of High Dimensional Spheres http://www.cs.nthu.edu.tw/~cchen/ISA5230/2017/sphere.pdf
  4. ^curse of dimensionality http://en.wikipedia.org/wiki/Curse_of_dimensionality

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/552438.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ftp 服务器 性能,FTP 服务器性能 测试点

使用ffmpeg转换webm格式安装ffmpeg brew install ffmpeg --with-libvpx --with-libvorbis 如果已经装过 brew reinstall ffmpeg --with-libv ...对于多个列的转行(一个值均匀分布在两个列中),对于个别字段通过取别名,join方式解决。例如,这个表的结构: s…

jsp项目放入宝塔windows环境_商业裂变,之项目技术实战(第八节:宝塔面板介绍)...

一、宝塔简介:宝塔面板是一款服务器管理软件,支持windows和linux系统,可以通过Web端轻松管理服务器,提升运维效率。例如:创建管理网站、FTP、数据库,拥有可视化文件管理器,可视化软件管理器&…

es文件浏览器smb服务器,ES文件浏览器怎么连接电脑SMB,可以参考这篇文章

ES文件浏览器是一款多功能的手机文件/程序/进程管理器,可以在手机、电脑、远程和蓝牙间浏览管理文件。是一个功能强大的免费的本地和网络文件管理器和应用程序管理器。ES文件浏览器与电脑进行局域网链接后可以管理电脑的文件,不只是复制,还可…

arm ida 伪代码 安卓 符号表_使用IDA动态调试及ARM指令学习笔记

本文介绍如何用IDA进行动态调试及部分ARM指令的学习。环境:已root的安卓手机一部,IDA pro 6.8,win7系统。下载样本app,并已确认可调试(debuggable true),下文不表:http://pan.baidu.com/s/1jG22HMY一 手机…

糖豆人显示此服务器正在进行游戏,糖豆人服务器频繁崩溃,west滚石教技巧,蓝哥踢球做内鬼...

原标题:糖豆人服务器频繁崩溃,west滚石教技巧,蓝哥踢球做内鬼自从糖豆人游戏开放以来,大批玩家涌入,造成糖豆人服务器拥堵,一度出现崩溃。隔三差五就会来一次。玩家正玩得兴起,突然的崩溃让玩家…

js中立即执行函数会预编译吗_面试官:聊聊对Vue.js框架的理解

作者:yacan8https://github.com/yacan8/blog/issues/26本文为一次前端技术分享的演讲稿,所以尽力不贴 Vue.js 的源码,因为贴代码在实际分享中,比较枯燥,效果不佳,而更多的是以图片和文字的形式进行表达。分…

如何卸载服务器的系统,卸载服务器的操作系统

卸载服务器的操作系统 内容精选换一换弹性云服务器卸载磁盘。弹性云服务器状态为stopped时支持系统盘(也就是/dev/sda挂载点)和用户盘的卸载,没有操作系统限制,也不需要在弹性云服务器内部安装vmtools。弹性云服务器状态为active态时有如下约束限制&…

修改了模板文件tpl如何立即生效_Views视图与模板

一、概述用户请求到视图流程:当有人访问我们django项目的时候 例如127.0.0.1:8000/polls/23,django首先到加载mysite.urls模块在mysite.urls中发现有urlpatterns变量,于是在其内按顺序进行匹配。当它匹配上了polls,就到匹配到的po…

vue本地没事放到服务器上无限循环,解决vue中的无限循环问题

项目中遇到了这样一个问题:每一种产品有对应的服务费,每一个商家有多种商品要单独计算每一家的服务费,最后汇总总的服务费用。我直接写了一个方法来计算出每个商家和总的服务费用并return出来。如果不看控制台的话运行是没问题的。但是控制台…

壁式框架内力计算_4种类型剪力墙的计算要点

剪力墙又称抗风墙、抗震墙或结构墙。房屋或构筑物中主要承受风荷载或地震作用引起的水平荷载和竖向荷载(重力)的墙体,防止结构剪切(受剪)破坏。又称抗震墙,一般用钢筋混凝土做成。它分平面剪力墙和筒体剪力墙。平面剪力墙用于钢筋混凝土框架结构、升板结…

片源系统服务器,OUO NAS10主控界面评测

OUO NAS10主控界面评测■OUO NAS10主控界面评测OUO NAS10采用了高集成度的芯片,功耗比较低,整机满载情况下也不会超过9W。不过他的主控界面看起来还是比较简单易懂的,由于本身自带了linux的操作系统,还是比较容易上手的。附送光盘…

解锁设备_无师自通解锁新设备抗击疫情

随着春节假期接近尾声,一线企业复工复产,春运迎来全面返程客流高峰,为应对返程客流,做好疫情防控工作,哈车管内各站全面组织积极应对,做好进出站旅客测温,加强对进出站旅客体温筛查,…

GPS无线视频服务器,宏电环卫车无线视频监控与GPS定位系统设计方案.docx

Connecting Things环卫车3G/4G视频监控及GPS定位系统解决方案市宏电技术股份Shenzhen Hongdian Technologies Corporation.2015年7月目录 TOC \o "1-3" \h \z \uHYPERLINK \l "_Toc2914" 第一章 系统概述 PAGEREF _Toc2914 4HYPERLINK \l "_Toc5154&q…

css选择器权重排序_css选择器优先级高低排列_css样式权重计算和!important属性

首先我们需要知道选择器的类型有这些:选择器栗子ID#idclass.class标签p属性[typetext]伪类:hover伪元素::first-line相邻选择器、子代选择器>而这些css的选择器是有权重(即优先级)的,在不同选择器的样式出现冲突时候,会采用权重高的选择器…

python webdriver save_Python + Selenium +Chrome 批量下载网页代码修改【新手必学】

Python Selenium Chrome 批量下载网页代码修改主要修改以下代码可以调用 本地的 user-agent.txt 和 cookie.txt来达到在登陆状态下 批量打开并下载网页,以网页 ID 来保存为网页文件名PS:很多人在学习Python的过程中,往往因为遇问题解决不了或者没好的教…

sql盲注特点_SQL注入的特点及危害详解

http://www.maiziedu.com/SQL注入的特点及危害详解在网站安全性方面,我们经常会遇到各种各样的安全性问题,SQL注入就是其中最常见的一种,那SQL注入到底有哪些特点呢?一起来看看吧。SQL注入攻击的主要特点1、变种极多有经验的攻击者…

主从式网络的优点_贸泽电子原创开发板大赛【创意奖作品】物联网开发板做成主从机形式,是创意还是多此一举?...

没有创意,竞赛还有什么意义?作为汇集了国内工程师中的一批顶尖高手的设计大赛,本届贸泽电子原创开发板大赛自然少不了“最佳创意奖”,今天,就让我们来看看工程师大开脑洞的获奖作品有何稀奇?奖创意奖《基于…

es 吗 查询必须有sort_ElasticSearch DSL之From/Size,Sort

从这篇文章开始,我们要进入DSL的学习。使用url搜索仅仅是个开始,ES还提供带有查询DSL的请求体用于更高级的搜索。在这些类型的搜索中有大量可选项,可以混合和匹配不同的选项以获得所需的结果。DSL还能根据查询子句的过滤和查询上下文&#xf…

docker mysql配置 丢失_Ubuntu16.04服务器环境配置 – Docker、MySQL、Redis

Ubuntu16.04 服务器环境配置 – Docker、MySQL、Redis安装Docker1. 卸载旧版本sudo apt-get remove docker docker-engine docker.io2. 安装 https 相关的软件包sudo apt-get update # 先更新一下软件源库信息sudo apt-get install apt-transport-https ca-certificates cur…

mysql主从配置_MySQL主从配置详解

主服务器数据库的每次操作都会记录在其二进制文件mysql-bin.xxx(该文件可以在mysql目录下的data目录中看到)中,从服务器的I/O线程使用专用账号登录到主服务器中读取该二进制文件,并将文件内容写入到自己本地的中继日志relay-log文件中,然后从…