python计算球体体积_漫谈超球体的体积公式

现实生活中,我们只要掌握圆的周长和面积公式,了解球的表面积和体积公式就够用了,没有什么可以深究的。本篇将带你走进高维度球的表面积和体积公式

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

equation?tex=%28x_1%2C+x_2%2C+%5Ccdots%2C+x_n%29 ,球内任意一点X,都满足距离条件

equation?tex=distance%28O%2C+X%29+%5Cle+r

对于向量空间,距离测度分多种:

1范式 曼哈顿距离(Manhattan distance)

equation?tex=%5Csum+_%7Bi+%3D+1%7D+%5En+%7Cx_i+-+y_i%7C

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

equation?tex=%5Csqrt%7B%5Csum+_%7Bi+%3D+1%7D+%5En+%28x_i+-+y_i%29%5E2%7D

n范式

equation?tex=%5Cbig%28%5Csum+_%7Bi+%3D+1%7D+%5En+%7C+x_i+-+y_i%7C%5Ep+%5Cbig%29%5E%7B%5Cfrac+1+p%7D

equation?tex=%5Cinfty 范式 切比雪夫距离( Chebyshev distance) 

equation?tex=%5Cmax+_%7Bi+%3D+1%7D+%5En+%7Cx_i+-+y_i%7C

超立方体

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

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

equation?tex=%5Cint+_%5COmega+dV 上的积分等于在各个轴上的长度的乘积,即

equation?tex=%282r%29%5En

equation?tex=V_n+%3D+%5Cint+_%7B-r%7D+%5E%7Br%7D+%5Ccdots+%5Cint+_%7B-r%7D+%5E%7Br%7D+%5Cint+_%7B-r%7D+%5E%7Br%7D+dx_1+dx_2+%5Ccdots+dx_n+%3D+%5Cbig+%28+%5Cint+_%7B-r%7D+%5Er+dx+%5Cbig%29%5En+%3D+%282r%29%5En

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

equation?tex=S_n+%3D+2n+%5C%2C+V_%7Bn+-1%7D ,然后连同上面的式子,我们得到

equation?tex=S_n+%3D+2n+%282r%29%5E%7Bn+-++1%7D 。可以对着正方形和正方体检查一下,是符合的。对于一维情况,“体”就是线长

equation?tex=V_1+%3D+2r 无疑。但是根据公式,“面”

equation?tex=S_1+%3D+2 ,与半径无关,没有量纲。有点奇怪,相当于零维空间点的左右两个面?

超锥体

在曼哈顿距离下,

equation?tex=%5Csum+_%7Bi+%3D+1%7D+%5En+%7Cx_i%7C+%5Cle+r 构成什么形状呢?可以从低维度入手。一维情况下是一条直线,二维情况下是一个围住

equation?tex=%28%5Cpm+r%2C+0%29%2C+%280%2C+%5Cpm+r%29 的正四边形,或者倾斜的正方体。三维情况下是正八面体,与各轴的交点是

equation?tex=%28%5Cpm+r%2C+0%2C+0%29%2C+%280%2C+%5Cpm+r%2C++0%29%2C+%280%2C+0+%5Cpm+r%29 。同理,n维情况下的交点是

equation?tex=%28%5Cpm+r%2C+0%2C+%5Ccdots%2C+0%29%2C+%280%2C+%5Cpm+r%2C+%5Ccdots%2C+0%29%2C+%5Ccdots%2C+%280%2C+0%2C+%5Ccdots+%5Cpm+r%29构成超多面体,每个轴上有左右两个交点,每个轴上选一个交点,张成一个超平面。仅考虑正半轴,则形状分别是三角形,三角锥,四角锥,……超角锥。超角锥的体积公式是

equation?tex=%5Cfrac+1+n+x_1+x_2+%5Ccdots+x_n

equation?tex=2%5En 个超角锥,每个超角锥的体积为

equation?tex=%5Cfrac+1+n+%7Br%5En%7D ,于是体积公式就是

equation?tex=V_n%28r%29+%3D+%5Cfrac+%7B2%5En%7D+n+r%5En+

超球体

最后,我们来看一下常用的欧几里德距离——平方和后再开方。

先回忆一下公式:

圆的周长、面积公式

equation?tex=S_2+%3D+2+%5Cpi+r%2C+V_2+%3D+%5Cpi+r%5E2

球的表面积、体积公式

equation?tex=S_3+%3D+4+%5Cpi+r%5E2%2C+V_3+%3D+%5Cfrac+4+3+%5Cpi+r%5E3

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

equation?tex=V_1+%3D+2r

关于圆的公式都涉及到

equation?tex=%5Cpi ,结合上面超体的结论,再从量纲上分析,我们可以先大胆地推测

equation?tex=S_n+%3D+C+%5Cpi+r%5E%7Bn+-+1%7D%2C%5C%2C+V_n+%3D+K+%5Cpi+r%5En ,其中 C, K为待求的常数。

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

equation?tex=V%28r%29+%3D+%5Cint+_%7B-r%7D+%5E%7Br%7D+%5Cint+_%7B-%5Csqrt%7Br%5E2+-+x_1%5E2%7D%7D+%5E%7B%5Csqrt%7Br%5E2+-+x_1%5E2%7D%7D+%5Ccdots+%5Cint+_%7B-%5Csqrt%7Br%5E2+-+x_1%5E2+-+%5Ccdots+-+x_%7Bn+-+1%7D%5E2%7D%7D+%5E%7B%5Csqrt%7Br%5E2+-+x_1%5E2+-+%5Ccdots+-+x_%7Bn+-+1%7D%5E2%7D%7D+dx_n+%5Ccdots+dx_2+dx_1

转化成极坐标系,就是

equation?tex=V%28r%29+%3D+%5Cint+_%7B0%7D+%5E%7Br%7D+%5Cint+_%7B0%7D+%5E%7B2%5Cpi%7D+%5Cint+_%7B-%5Cpi%2F2%7D+%5E%7B%5Cpi%2F2%7D%5Ccdots+%5Cint+_%7B-%5Cpi%2F2%7D+%5E%7B%5Cpi%2F2%7D+%5Cint+_%7B-%5Cpi%2F2%7D+%5E%7B%5Cpi%2F2%7D+r%5E%7Bn+-+1%7D+%5Csin%5E%7Bn+-+2%7D+%5Ctheta_1+%5Ccdots+%5Csin+%5Ctheta_1+d%5Ctheta_1+%5Ccdots+d%5Ctheta_%7Bn-2%7D++d%5Ctheta_%7Bn-1%7D+d%5Crho

从一个空间映射到另一个空间,或者从一个坐标系变换到另一个坐标系,需要乘以雅可比矩阵( Jacobi matrix )。

球是中心对称的,由n维球

equation?tex=x_1%5E2+%2B+x_2%5E2+%2B+%5Ccdots+%2B+x_n%5E2+%5Cle+r%5E2 移项得

equation?tex=x_1%5E2+%2B+x_2%5E2+%2B+%5Ccdots+%2B+x_%7Bn+-+1%7D%5E2+%5Cle+r%5E2+-+x_n%5E2 ,如果固定

equation?tex=x_n (切片操作),就得到n-1维半径为

equation?tex=%5Csqrt+%7B+r%5E2+-+x_n%5E2%7D的球,我们根据这个思想n维球的任意切片都是n-1维球,在

equation?tex=X_n 轴上平行切片,体积累加起来。对于3维球,每个切片薄得可以看成一个个半径为

equation?tex=%5Csqrt+%7B+r%5E2+-+x_3%5E2%7D 圆柱体,

equation?tex=V_n%28r%29+%3D+%5Csum+_%7Bx_n+%3D+-r%7D+%5E%7B%2Br%7D+V_%7Bn+-+1%7D%28%5Csqrt+%7B+r%5E2+-+x_n%5E2%7D%29+%5CDelta+x_n ,换成积分得到体积递推公式:

equation?tex=V_n%28r%29+%3D+%5Cint+_%7B-r%7D+%5E%7Br%7D+V_%7Bn+-+1%7D%28%5Csqrt+%7B+r%5E2+-+x%5E2%7D%29+%5Cmathrm%7Bd%7D+x

equation?tex=V_n%28r%29+%5Cpropto+r%5En 这个结论可以通过数学归纳法来证明。

equation?tex=V_%7Bn%7D%28r%29++%3D+V_%7Bn+-+1%7D%28r%29+%5Cint+_%7B-r%7D+%5E%7Br%7D+%5Cbig%28%5Csqrt+%7B+1+-+%28%5Cfrac+x++r%29%5E2%7D+%5Cbig%29%5E%7Bn+-1%7D+%5Cmathrm%7Bd%7D+x

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

equation?tex=V_%7Bn%7D%28r%29++%3D+2+V_%7Bn+-+1%7D%28r%29+%5Cint+_%7B0%7D+%5E%7Br%7D+%5Cbig%28%5Csqrt+%7B+1+-+%28%5Cfrac+x++r%29%5E2%7D+%5Cbig%29%5E%7Bn+-1%7D+%5Cmathrm%7Bd%7D+x

然后令

equation?tex=u+%3D+%28%5Cfrac+x++r%29%5E2 ,则

equation?tex=x+%3D+r%5Csqrt+u%2C%5C%2C+dx+%3D+r+%5Cfrac+%7Bdu%7D+%7B2%5Csqrt%7Bu%7D%7D ,换元得

equation?tex=V_%7Bn%7D%28r%29++%3D+2V_%7Bn+-+1%7D%28r%29+%5Cint+_%7B0%7D+%5E%7B1%7D+%281+-u%29+%5E%7B%5Cfrac+%7Bn+-1%7D+2%7D+r+%5Cfrac+%7Bdu%7D+%7B2%5Csqrt%7Bu%7D%7D

整理一下

equation?tex=V_%7Bn%7D%28r%29++%3D+V_%7Bn+-+1%7D%28r%29+%5Ccdot+r+%5Cint+_%7B0%7D+%5E%7B1%7D+%281+-u%29+%5E%7B%5Cfrac+%7Bn+-1%7D+2%7D+u%5E%7B-%5Cfrac+1+2%7Ddu+

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

equation?tex=B%28p+%2B+1%2C+q+%2B+1%29+%3D+%5Cfrac+%7Bp%21+%5C%2C+q%21%7D+%7B%28p+%2B+q+%2B+1%29%21%7D+%3D+%5Cint+_0+%5E1+x%5Ep+%281+-+x%29%5Eq+dx

于是,

equation?tex=V_%7Bn%7D%28r%29++%3D+V_%7Bn+-+1%7D%28r%29+%5Ccdot+r+%5Ccdot+B%28%5Cfrac+%7Bn+%2B+1%7D+2%2C+%5Cfrac+1+2%29

Beta函数与Gamma函数存在关系

equation?tex=B%28m%2C+n%29+%3D+%5Cfrac+%7B%5CGamma%28m%29+%5CGamma%28n%29%7D+%7B%5CGamma%28m+%2Bn%29%7D

equation?tex=B%28%5Cfrac+%7Bn+%2B+1%7D+2%2C+%5Cfrac+1+2%29+%3D+%5Cfrac+%7B%5CGamma%28%5Cfrac+%7Bn+%2B+1%7D+2%29+%5CGamma%28%5Cfrac+1+2%29%7D+%7B%5CGamma%28%5Cfrac+n+2+%2B+1%29%7D

Gamma函数的定义

equation?tex=%5CGamma%28x%29+%3D+%5Cint+_0+%5E%5Cinfty+e%5E%7B-t%7Dt%5E%7Bx+-+1%7Ddt ,性质

equation?tex=%5CGamma%28x+%2B+1%29+%3D+x+%5CGamma%28x%29

equation?tex=%5CGamma%28%5Cfrac+1+2%29+%3D+%5Cint+_0+%5E%5Cinfty+e%5E%7B-t%7Dt%5E%7B-%5Cfrac+1+2%7Ddt+%5C%2C%5C+%5Cunderrightarrow%7Bt+%3D+x%5E2%7D+%5Cint+_0+%5E%5Cinfty+2e%5E%7B-x%5E2%7Ddx

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

equation?tex=%5Cint+_0+%5E%5Cinfty+e%5E%7B-x%5E2%7Ddx+%3D+%5Cfrac+%7B%5Csqrt+%5Cpi%7D+2

带入常数

equation?tex=%5CGamma%28%5Cfrac+1+2%29+%3D+%5Csqrt+%5Cpi

equation?tex=V_%7Bn%7D%28r%29++%3D+V_%7Bn+-+1%7D%28r%29+%5Ccdot+%5Csqrt+%5Cpi+r+%5Cfrac+%7B%5CGamma%28%5Cfrac+%7Bn+%2B+1%7D+2%29%7D+%7B%5CGamma%28%5Cfrac+%7Bn+%2B+2%7D+2%29%7D

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

equation?tex=V_%7Bn%7D%28r%29++%3D+V_%7B1%7D%28r%29++%28%5Csqrt+%5Cpi+r%29%5E%7Bn+-+1%7D+%5Cfrac+%7B%5CGamma%28%5Cfrac+3+2%29%7D+%7B%5CGamma%28%5Cfrac+%7Bn+%2B+2%7D+2%29%7D

带入

equation?tex=V_1%28r%29+%3D+2r

equation?tex=%5CGamma%28%5Cfrac+3+2%29+%3D+%28%5Cfrac+3+2+-+1%29+%5CGamma%28%5Cfrac+1+2%29+%3D+%5Cfrac+%7B%5Csqrt+%5Cpi%7D+2

equation?tex=V_%7Bn%7D%28r%29++%3D+2r++%28%5Csqrt+%5Cpi+r%29%5E%7Bn+-+1%7D+%5Cfrac+%7B%5Cfrac+1+2+%5Csqrt+%5Cpi%7D+%7B%5CGamma%28%5Cfrac+%7Bn+%2B+2%7D+2%29%7D+%3D+%5Cfrac+%7B%28%5Csqrt+%5Cpi+r%29%5En%7D+%7B%5CGamma%28%5Cfrac+n+2+%2B+1%29%7D

很显然有

equation?tex=V_n%28r%29+%3D+V_n%281%29+%5Ccdot+r%5En+

三角函数积分

equation?tex=V_n%28r%29+%3D+%5Cint+_%7B-r%7D+%5E%7Br%7D+V_%7Bn+-+1%7D%28%5Csqrt+%7B+r%5E2+-+x%5E2%7D%29+%5Cmathrm%7Bd%7D+x+%3D+%5Cint+_%7B-r%7D+%5E%7Br%7D+V_%7Bn+-+1%7D%281%29+%5Ccdot+%28%5Csqrt+%7B+r%5E2+-+x%5E2%7D%29%5E%7Bn+-+1%7D+%5Cmathrm%7Bd%7D+x

由于

equation?tex=V_%7Bn+-+1%7D%281%29 是相对x而言是常量,可以移到积分式子外面去。加上被积的函数是偶函数,我们有

equation?tex=V_n%28r%29+%3D+2V_%7Bn+-+1%7D%281%29+%5Cint+_%7B0%7D+%5E%7Br%7D++%28%5Csqrt+%7B+r%5E2+-+x%5E2%7D%29%5E%7Bn+-+1%7D+%5Cmathrm%7Bd%7D+x

换元,设

equation?tex=x+%3D+r+%5Csin+%5Ctheta ,则

equation?tex=V_n%28r%29+%3D++2V_%7Bn+-+1%7D%281%29+%5Ccdot+r%5En+%5Cint+_%7B0%7D+%5E%7B%5Cpi+%2F+2%7D++%5Ccos%5E%7Bn%7D%5Ctheta+%5Cmathrm%7Bd%7D+%5Ctheta

你也可以

equation?tex=x+%3D+r+%5Ccos+%5Ctheta ,则

equation?tex=V_n%28r%29+%3D++2V_%7Bn+-+1%7D%281%29+%5Ccdot+r%5En+%5Cint+_%7B0%7D+%5E%7B%5Cpi+%2F+2%7D++%5Csin%5E%7Bn%7D%5Ctheta+%5Cmathrm%7Bd%7D+%5Ctheta

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

equation?tex=%5Cint++%5Csin%5E%7Bn%7D%5Ctheta+d+%5Ctheta 或者

equation?tex=%5Cint++%5Ccos%5E%7Bn%7D%5Ctheta+d+%5Ctheta

n取1或2时容易求解,这引导着我们用分部积分法(integration by parts )

equation?tex=%5Cint+udv+%3D+uv+-+%5Cint+vdu 达到降次的效果。

equation?tex=I_n+%3D+%5Cint++%5Csin%5E%7Bn%7D%5Ctheta+d+%5Ctheta+%3D+-%5Cint++%5Csin%5E%7Bn+-+1%7D%5Ctheta+d+%5Ccos+%5Ctheta+%3D+-%5Csin%5E%7Bn+-+1%7D%5Ctheta+%5Ccos+%5Ctheta+%2B+%5Cint+%5Ccos+%5Ctheta+d%28%5Csin%5E%7Bn+-+1%7D%5Ctheta%29

equation?tex=I_n+%3D++-%5Csin%5E%7Bn+-+1%7D%5Ctheta+%5Ccos+%5Ctheta+%2B+%28n+-+1%29+%5Cint+%5Csin%5E%7Bn+-+2%7D%5Ctheta+%5Ccos%5E2+%5Ctheta+d%5Ctheta

带入

equation?tex=%5Ccos%5E2+%5Ctheta+%3D+1+-+%5Csin%5E2+%5Ctheta ,然后化简

equation?tex=I_n+%3D++-%5Csin%5E%7Bn+-+1%7D%5Ctheta+%5Ccos+%5Ctheta+%2B+%28n+-+1%29+%5Cint+%28%5Csin%5E%7Bn+-+2%7D%5Ctheta+-+%5Csin%5En+%5Ctheta%29+d%5Ctheta

equation?tex=I_n+%3D++-%5Csin%5E%7Bn+-+1%7D%5Ctheta+%5Ccos+%5Ctheta+%2B+%28n+-+1%29+%28I_%7Bn+-+2%7D+-+I_n%29

equation?tex=nI_n+%3D++-%5Csin%5E%7Bn+-+1%7D%5Ctheta+%5Ccos+%5Ctheta+%2B+%28n+-+1%29+I_%7Bn+-+2%7D

得到递推公式

equation?tex=I_n+%3D++-%5Cfrac+1+n+%5Csin%5E%7Bn+-+1%7D%5Ctheta+%5Ccos+%5Ctheta+%2B+%5Cfrac+%7Bn+-+1%7D+n+I_%7Bn+-+2%7D

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

equation?tex=%5Cpi+%2F+2 ,在边界,因为

equation?tex=%5Csin+%5Ctheta

equation?tex=%5Ccos+%5Ctheta 总有一个为0,导致第一项的结果总是为0,于是得到更简单的递推形式

equation?tex=I_n+%3D++%5Cfrac+%7Bn+-+1%7D+n+I_%7Bn+-+2%7D ,然后分奇数、偶数迭代求解。

如何体面

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

equation?tex=dS_n+%5Ccdot+dr,球面的体积为

equation?tex=S_n%28r%29+%5Ccdot+dr,积分得

equation?tex=V_n%28r%29+%3D+%5Cint+_0+%5Er+S_n%28t%29+%5Cmathrm%7Bd%7Dt ,反之

equation?tex=S_n%28r%29+%3D+%5Cfrac+%7BdV_n%7D+%7Bdr%7D 。对n维球的体积求导得n维球的表面积,这样也解释了对圆面积

equation?tex=%5Cpi+r%5E2 求导得圆周长

equation?tex=2+%5Cpi+r ,对球体积

equation?tex=%5Cfrac+4+3+%5Cpi+r%5E3 求导得球表面积

equation?tex=4+%5Cpi+r%5E2

equation?tex=V_n%28r%29+%3D+%5Cfrac+%7B%5Cpi%5E%7B%5Cfrac+n+2%7D%7D+%7B%5CGamma%28%5Cfrac+n+2+%2B+1%29%7D+r%5En

equation?tex=S_n%28r%29+%3D+%5Cfrac+%7BdV%7D+%7Bdr%7D+%3D++%5Cfrac+%7B%5Cpi%5E%7B%5Cfrac+n+2%7D%7D+%7B%5CGamma%28%5Cfrac+n+2+%2B+1%29%7D+n+%5Ccdot+r%5E%7Bn+-+1%7D+%3D+%5Cfrac+%7B%5Cpi%5E%7B%5Cfrac+n+2%7D%7D+%7B%5Cfrac+n+2+%5CGamma%28%5Cfrac+n+2%29%7D+n+%5Ccdot+r%5E%7Bn+-+1%7D+%3D++%5Cfrac+%7B2%5Cpi%5E%7B%5Cfrac+n+2%7D%7D+%7B%5CGamma%28%5Cfrac+n+2%29%7D+%5Ccdot+r%5E%7Bn+-+1%7D

通过求导,我们很体面地从“体”计算出“面”。(no pun intended)

其实,体积与面积之间还存在这样一个比例关系

equation?tex=%5Cfrac+%7BV_n%28r%29%7D+%7BS_n%28r%29%7D+%3D+%5Cfrac+%7BC+%5C%2C+r%5En%7D+%7BCn+%5C%2C+r%5E%7Bn+-+1%7D%7D+%3D+%5Cfrac+r+n

公式细究

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

equation?tex=n 为偶数时,令

equation?tex=n+%3D+2m ,则

equation?tex=V_%7B2m%7D%28r%29+%3D+%5Cfrac+%7B%5Cpi%5Em%7D+%7Bm%21%7D+r%5E%7B2m%7D

equation?tex=n 为奇数时,令

equation?tex=n+%3D+2m+%2B+1 ,则

equation?tex=V_%7B2m%2B1%7D%28r%29+%3D+%5Cfrac%7B2+%282+%5Cpi%29%5Em%7D+%7B%282m%2B1%29%21%21%7D+r%5E%7B2m%2B1%7D

equation?tex=r+%3D+1 时,

equation?tex=V_%7B2m%7D+%3D+%5Cfrac+%7B%5Cpi%5Em%7D+%7Bm%21%7D ,这个系数很是熟悉, 根据 Taylor 级数展开式

equation?tex=e%5Ex+%3D+%5Csum+_%7Bi+%3D+0%7D+%5En+%5Cfrac+1+%7Bi%21%7D+x%5Ei+%3D+1+%2B+x+%2B+%5Cfrac+1+%7B2%21%7D+x%5E2+%2B+%5Cfrac+1+%7B3%21%7D+x%5E3+%2B+%5Ccdots+%2B+%5Cfrac+1+%7Bn%21%7D+x%5En 凑一下,有

equation?tex=V_0+%2B+V_2+%2B+%5Ccdots+%2B+V_%7B2m%7D+%3D+%5Csum+_%7Bi+%3D+0%7D+%5E%7Bm%7D+V_%7B2i%7D+%3D+e%5E%5Cpi。看!我们就这样构造到了一个神奇的数字

equation?tex=e%5E%5Cpi 。半径取1的所有偶数维度球的体积之和为

equation?tex=e%5E%5Cpi

equation?tex=e%5E%5Cpi是个超越数(Transcendental Number)。

有了公式之后,任意维度的体积

equation?tex=V_1%28r%29+%3D+2r%2C%5C%2C+V_2%28r%29+%3D+%5Cpi+r%5E2

equation?tex=V_3+%28r%29+%3D+%5Cfrac+4+3+%5Cpi+r%5E3%2C%5C%2C+V_4%28r%29+%3D+%5Cfrac+1+2+%5Cpi%5E2+r%5E4

equation?tex=V_5%28r%29+%3D+%5Cfrac+8+%7B15%7D+%5Cpi%5E2+r%5E5%2C%5C%2C+V_6%28r%29+%3D+%5Cfrac+1+6+%5Cpi%5E3+r%5E6

equation?tex=V_7%28r%29+%3D+%5Cfrac+%7B16%7D+%7B105%7D+%5Cpi%5E3+r%5E7%2C%5C%2C+V_8%28r%29+%3D+%5Cfrac+1+%7B24%7D+%5Cpi%5E4+r%5E8

equation?tex=V_9%28r%29+%3D+%5Cfrac+%7B32%7D+%7B945%7D+%5Cpi%5E4+r%5E9%2C%5C%2C+V_%7B10%7D%28r%29+%3D+%5Cfrac+1+%7B120%7D+%5Cpi%5E5+r%5E%7B10%7D

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

#!/usr/bin/env python3

import matplotlib

import numpy as np

import scipy

import matplotlib.pyplot as plt

from 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。代码运行无误后,得到图:

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

固定半径r,我们可以看到,随着n的增长,分母以越来越大的正整数增加,分子以系数

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

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

equation?tex=%7Cx%7C%5Ep+%2B++%7Cy%7C%5Ep+%3D+1%2C%5C%2C+p+%3E+0 在平面直角坐标新中,p从无穷大到0,图形的变化。顺便,维度灾难

参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值