日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

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

發布時間:2025/3/11 python 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python求圆柱体的体积_漫谈超球体的体积公式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  現實生活中,我們只要掌握圓的周長和面積公式,了解球的表面積和體積公式就夠用了,沒有什么可以深究的。本篇將帶你走進高維度球的表面積和體積公式[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。代碼運行無誤后,得到圖:

  上面順帶也畫出了負維空間的情況。從正整數維度到分數維度,再到負數維度,一直擴充到了實數范圍。從圖中看到,對于單位球,五維空間的體積最大。五維空間是什么概念?不清楚。克里斯托弗·諾蘭是一個商業和藝術結合最好的導演,他在電影《星際穿越》中向我們描述了一個五維空間的存在。
  固定半徑r,我們可以看到,隨著n的增長,分母以越來越大的正整數增加,分子以系數

穩定增長,不敵增長的最終結果是,體積趨近于0。分析是沒錯,但這是一個反直覺(counter-intuitive)的結論。下面的圖可以幫忙糾正錯覺。

  維度越高,越靠近坐標軸。很形象的一個比喻就是海膽,核越來越小,刺突越來越長,也越來越尖。想看動畫效果?可以觀察

在平面直角坐標新中,p從無窮大到0,圖形的變化。順便,維度災難[4]也了解一下。

參考

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

    以上是生活随笔為你收集整理的python求圆柱体的体积_漫谈超球体的体积公式的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。