zoukankan      html  css  js  c++  java
  • 鬼斧神工:求n维球的体积

    原文地址:http://spaces.ac.cn/archives/3154/
    原文作者:苏剑林


    标准思路
    简单来说,(n)维球体积就是如下(n)重积分

    [V_n(r)=int_{x_1^2+x_2^2+dots+x_n^2leq r^2}mathrm{d}x_1 mathrm{d}x_2dots mathrm{d}x_n ]

    用更加几何的思路,我们通过一组平行面((n−1)维的平行面)分割,使得n维球分解为一系列近似小柱体,因此,可以得到递推公式

    [V_n (r)=int_{-r}^r V_{n-1} left(sqrt{r^2-t^2} ight)mathrm{d}t ]

    (t=rsin heta_1),就有

    [V_n (r)=rint_{-frac{pi}{2}}^{frac{pi}{2}} V_{n-1} left(rcos heta_1 ight)cos heta_1 mathrm{d} heta_1 ]

    迭代一次就有

    [V_n (r)=r^2int_{-frac{pi}{2}}^{frac{pi}{2}}int_{-frac{pi}{2}}^{frac{pi}{2}} V_{n-2} left(rcos heta_1cos heta_2 ight)cos heta_1cos^2 heta_2 mathrm{d} heta_1 mathrm{d} heta_2 ]

    迭代(n−1)

    [egin{align*}V_n (r)=&r^{n-1}int_{-frac{pi}{2}}^{frac{pi}{2}}dotsint_{-frac{pi}{2}}^{frac{pi}{2}}int_{-frac{pi}{2}}^{frac{pi}{2}} V_1left(rcos heta_1cos heta_2dots cos heta_{n-1} ight) imes\ &cos heta_1cos^2 heta_2dotscos^{n-1} heta_{n-1} mathrm{d} heta_1 mathrm{d} heta_2dots mathrm{d} heta_{n-1}end{align*}]

    其中(V_1(r)=2r),即两倍半径长的线段。从而

    [V_n (r)=2r^{n}int_{-frac{pi}{2}}^{frac{pi}{2}}dotsint_{-frac{pi}{2}}^{frac{pi}{2}}int_{-frac{pi}{2}}^{frac{pi}{2}} cos^2 heta_1cos^3 heta_2dotscos^{n} heta_{n-1} mathrm{d} heta_1 mathrm{d} heta_2dots mathrm{d} heta_{n-1} ]

    完成这个积分,最终就得到n维球体积的公式,这个积分自然是可以求出来的(只是(n−1)个一维积分的乘积)。但是这样的步骤太不容易了,为了将其跟伽马函数联系起来,还要做很多工作。总的来说,这是一个不容易记忆、也不怎么漂亮的标准方法。


    绝妙思路
    有一个利用高斯积分的绝妙技巧,能够帮助我们直接将球体积跟伽马函数联系起来,整个过程堪称鬼斧神工,而且给人“仅此一家,别无分号”的感觉。据说这个技巧为物理系学生所知晓,我是从百读文库看到的,原始来源则是《热力学与统计力学》顾莱纳(德),例5.2 理想气体的熵的统计计算。

    这一绝妙的思路,始于我们用两种不同的思路计算高斯积分

    [egin{align*} G(n)=int_{-infty}^{+infty}dotsint_{-infty}^{+infty}int_{-infty}^{+infty} expleft(-x_1^2-x_2^2-dots-x_n^2 ight)mathrm{d}x_1 mathrm{d}x_2 dots mathrm{d}x_n ag{1} end{align*}]

    一方面,将((1))当作(n)次累次积分,因为我们已经算得

    [int_{-infty}^{+infty}exp(-t^2)mathrm{d}t=sqrt{pi} ]

    ((1))只不过是这样的(n)个积分的乘积,因此

    [egin{align*} G(n)=pi^{n/2} ag{2} end{align*}]

    另一方面,将((1))当作(n)重积分,由于积分变量只是跟径向长度(r=sqrt{x_1^2+x_2^2+dots+x_n^2})有关的变量,因此很容易联想到球坐标,在(n)维空间中,可以称为“超球坐标”,不需要将超球坐标完整写出来,只需要注意到,球内的积分,可以化为先对“球壳”进行积分,然后再对球半径进行积分。

    [egin{align*} G(n)=int_{0}^{+infty}mathrm{d}rint_{S_n(r)}expleft(-r^2 ight)mathrm{d}S_n ag{3} end{align*}]

    这里的(S_n(r))是半径为(r)(n)维球体表面(以及表面积,在不至于混淆的情况下,这里不作区分)。但是注意到,被积函数只跟(r)有关,因此对球表面进行积分,等价于原函数乘以球的表面积而已,因此((2))式的结果为

    [egin{align*} G(n)=int_{0}^{+infty}mathrm{d}rexpleft(-r^2 ight)S_n(r) ag{4} end{align*}]

    虽然我们不知道(n)维球的体积和表面积公式,但是我们可以肯定,(n)维球的体积一定正比于(r^n),即有

    [V_n (r)=V_n(1)r^n ]

    球的表面积,就是球体积的一阶导数(考虑球壳分割),那么

    [S_n (r)=n V_n(1)r^{n-1} ]

    代入((4)),得到

    [egin{align*}G(n)=&n V_n(1)int_{0}^{+infty}r^{n-1}expleft(-r^2 ight)mathrm{d}r\ =&frac{1}{2}n V_n(1)int_{0}^{+infty}(r^2)^{n/2-1}expleft(-r^2 ight)mathrm{d}(r^2)\ =&frac{1}{2}n V_n(1)int_{0}^{+infty}z^{n/2-1}expleft(-z ight)mathrm{d}zquadleft(z=r^2 ight)\ =&frac{1}{2}n V_n(1)Gammaleft(frac{n}{2} ight) ag{5}end{align*}]

    结合((2))

    [pi^{n/2}=G(n)=frac{1}{2}n V_n(1)Gammaleft(frac{n}{2} ight) ]

    从而

    [V_n(1)=frac{pi^{n/2}}{frac{1}{2}nGammaleft(dfrac{n}{2} ight)}=frac{pi^{n/2}}{Gammaleft(dfrac{n}{2}+1 ight)} ]

    最后

    [Largeoxed{displaystyle V_n(r)=frac{pi^{n/2}}{Gammaleft(dfrac{n}{2}+1 ight)}r^n} ]

    就这样得到了(n)维球体积公式!!对(r)求导得到(n)维球表面积公式

    [Largeoxed{displaystyle S_n(r)=frac{2pi^{n/2}}{Gammaleft(dfrac{n}{2} ight)}r^{n-1}} ]

    结合前后两个方法,就得到

    [largeoxed{displaystyle color{red}{frac{pi^{n/2}}{Gammaleft(dfrac{n}{2}+1 ight)}=2int_{-frac{pi}{2}}^{frac{pi}{2}}dotsint_{-frac{pi}{2}}^{frac{pi}{2}}int_{-frac{pi}{2}}^{frac{pi}{2}} cos^2 heta_1cos^3 heta_2dotscos^{n} heta_{n-1} mathrm{d} heta_1 mathrm{d} heta_2dots mathrm{d} heta_{n-1}}} ]

  • 相关阅读:
    Golang初学者的资源整理
    Mesos和kubernetes
    Go by Example
    dbus 和 policykit 实例篇(python) ()转
    CentOS7卸载KDE桌面(转)
    Please read “Security” section of the manual to find out how to run mysqld as root!错误解决(转)
    yum使用总结(转)
    Linux rpm 命令参数使用详解[介绍和应用](转)
    nginx+lua+redis高并发应用建设
    python网络爬虫进入(一)——简单的博客爬行动物
  • 原文地址:https://www.cnblogs.com/Renascence-5/p/5533431.html
Copyright © 2011-2022 走看看