標籤:

求球面上隨機均勻分布的三點所圍的球面三角形的面積的期望?

如題。


我想想,我們把三角形的三條邊延長變成大圓,這樣我們就是三刀把一個球面切成了八部分,這八部分是對稱的,我們的球面三角形只是八部分中的一個,因為八部分加起來是球面總面積4 pi r^2,所以球面三角形面積的期望是frac{pi r^2}{2},只要利用對稱性就可以了

=========================================================

稍微論證的嚴密一點,任取一個球面三角形ABC,我們通過上述方法可以得到另外7個球面三角形;而當我們取這另外7個球面三角形中任意一個的時候,通過相同的方法,仍然可以得到相同的8個球面三角形,所以這8個球面三角形是對稱的,所以這8個球面三角形的面積期望值相等,所以每個的面積期望值等於總和的1/8,這裡面不涉及「任取三個大圓是否與任取三個點等效」的問題

=========================================================

還真的有張現成的圖

感謝評論區 @料理小達人 ,感謝原圖作者,這圖應該沒有版權問題吧……


因為面積是內角和減π,所以只需要計算單個內角的期望就好了。而一個內角大小的期望是π/2,所以面積期望應該是π/2。


我把 @果凍 的解法詳細解釋一下。

如上圖所示,我們假設研究的球面為單位球面,球面三角形中每個角的大小為A,B,C(如果沒有特別說明,我們所有的角度單位均為弧度)。

則球面三角形的面積S=A+B+C-pi

這點在Spherical trigonometry 中有過解釋。

由於是均勻取點,所以A,B,Csim U[0,pi],所以E(A) = E(B)=E(C)=pi/2.

所以E(S)=E(A+B+C-pi) = E(A)+E(B)+E(C)-pi=pi/2.

若球的半徑為r,則球面三角形面積期望為pi r^2/2.


找到一篇疑似有關的paper,逃

http://arxiv.org/abs/1009.5329


我算得frac{pi r^2}{2}

沒找到matlab球面三角形面積的數值解函數,所以還沒做模擬驗證....誰知道如何模擬也請教一下謝謝~

-----------------------

字丑,圖不清楚,畫得也就將就……各位湊和著看吧hhhh

主要就是球面坐標系的選取和概率密度的對稱

----------

搶答也好,算出結果也好,明明是我先來的,為什麼高票算得這麼熟練啊

果然有大佬(


拋磚引玉,小試一下。

首先三個點共線或重合構成的集合在球面上的測度是零,不影響討論。

我們關注三點不共線的情況。

為簡化模型,只關注單位球{S : {x,y,z}|x^2+y^2+z^2=1}.

我們可以任選一個點P_1,作為球坐標系的北極點,即{0,0,1},且不失一般性。

從直角坐標轉到球坐標去,即{ P_{1}={r_{1},phi_{1},	heta_{1}}|r_1=1, phi_{1} = 0,  	heta_{1}  =0   }

並可以在球坐標內通過坐標轉換使得第二個點P_2在圓弧{ P_{2}={r_{2},phi_{2},	heta_{2}}|r_{2} =1, phi_{2} = 0, 0< 	heta_{2} < pi   }上,並不失一般性。

對第三個點,則有{ P_{3} = {r_{3},phi_{3},	heta_{3}}|r_{3} =1, 0<phi_{3}<pi  , 0< 	heta_{3} < pi   }

phi_3定義域理論上是[0,2pi),考慮到題目所要求的三角形更可能是劣弧所對應的那個,在此就不考慮[pi,2pi)這一範圍。

angle P_1OP_2 = alpha;\
angle P_1OP_3 = eta;\
angle P_2OP_3 = gamma.

則有

alpha = 	heta_{2};\
eta = 	heta_{3};\
gamma = arccos[cos	heta_2cos	heta_3cosphi_3+sin	heta_2sin	heta_3].

記球面三角形、 P_1P_2P_3對應的立體角為Omega,面積為A

有:

egin{eqnarray}
sigma = (alpha+eta+gamma)/2 ; \
Omega = 4 arctan sqrt{	an{frac{sigma}{2}}	an{frac{sigma-alpha}{2}}	an{frac{sigma-eta}{2}}	an{frac{sigma-gamma}{2}}};\
A = 4pi 	imes Omega
end{eqnarray}

接下來就是積分了。

恩,我積分學得不好……

有空搞個數值解貼上來

T.T


我想了半天,不懂。

決定寫個程序試驗一下。

想了半天,發現連用程序在球面上隨機取點都很難。

終於想到辦法(先隨機經度值,得到一個圓環,再在圓環上隨機一個點),

仔細一想發現這樣隨機是錯的,取的點不均勻。

然後我崩潰了…

寫了個簡單的程序模擬,基本與各位大神的計算相符。先吃飯,遲點貼代碼。

吃完回來,代碼如下(引擎Unity,語言C#):

int n = 100000;

float sum = 0;

for (int i = 0; i &< n; i++)

{

Vector3 p1 = UnityEngine.Random.insideUnitSphere;

Vector3 p2 = UnityEngine.Random.insideUnitSphere;

Vector3 p3 = UnityEngine.Random.insideUnitSphere;

float D12 = Vector3.Angle(p1, p2) / 180f * Mathf.PI;

float D23 = Vector3.Angle(p3, p2) / 180f * Mathf.PI;

float D13 = Vector3.Angle(p1, p3) / 180f * Mathf.PI;

float s = D12 + D23 + D13 - Mathf.PI;

sum += s;

}

Debug.LogError("結果:" + (sum / n).ToString() + " PI/2:" + (Mathf.PI / 2).ToString());

Unity就是這點好,球面上取點有現成函數。

運行結果: 結果:1.569207 PI/2:1.570796


拋磚引玉ヽ(*≧ω≦)?

單位球面。

感覺可以通過三個隨機歐拉角來實現均勻分布,然後曲面三角形面積可以通過高斯博內公式來計算。

下次有時間算算,感覺工程量浩大。。(ˉε(#ˉ)


球面積 對uniform spherical distribution 求積分


來提供一個自稱數學渣的基友提供的直覺解法吧,和@果凍 和@靈劍 類似,不過用到的思路更簡單。以及我不確定其嚴格性。

首先隨機在球面上取一個點 A。然後過點 A 隨機做一條周長線 l,則此線二分球體面積。假設點 B 在 l 上,則其期待為 A 的 antonode. 做一條正交於 l 的周長線 l",如 C 在 l" 上其期待為到 l 的距離為球體周長 1/2 的某點。那麼 ABC 的面積是球體總面積的 1/8。 也就是pi r^2 over 2. 對於每一個點 B 都有一個 周長線 l 與之對應(將其歸類),對每一個點 C 都有一個周長線 l』 與之對應(將其歸類)。所以以上論述對球面上均勻分布的三個點成立。


總感覺三個點在球面上可以圍成四個三角形……


推薦閱讀:

三國殺遊戲中,輸了就不再玩,會不會提高勝率?
兩個任意正態分布隨機變數的平方和服從何種分布?
如何看待已經發生的事件,應該認為期望還是看作概率最高的事件?如何根據隨機抽樣的結果推算整體的情況?
一個1000人的營地,每天都有人過生日的概率?
猜拳中如果不出石頭,平局兩次算我贏,獲勝的概率有多大?

TAG:數學 | 概率 |