• 沒有找到結果。

理論部份

在文檔中 球面上的隨機漫步 (頁 13-23)

2-2 轉軸公式

針方式旋轉所在位置緯度的角度,再繞z軸以順時針方式旋轉所在位置經

2-3 模擬球面上隨機漫步演算法

為模擬出球面上的隨機漫步,首先我們必須找出能使球面上任一點,

符合下列兩條件:

1.每次跨出的步伐等長。

2.下一步所跨的方向服從特定分配(ex:Uniform(0,2π ))。

而產生下一步所在位置的計算方法。在本篇論文中,我們透過轉軸公式及 截面圓性質,來達成此目標。

在此先說明我們如何決定每次跨出的步伐長。由於在球面上點到點移 動的距離並非兩點間的直線距離,而是球面上的圓弧長,所以弧長可為任 意常數;但為了因應2-4節的分析需要,本篇論文中弧長決定的方式是:由 赤道朝正北方向上移一緯度時的弧長。因此,我們利用弧長c與夾角θ的 關係:

圖2.2 弧長c與夾角θ的關係圖

360 2πrθ

c= ,得到當θ=1,r=100,c=1.745329252,所代表的意思也就是當我 們限定球半徑為100,則每一次所跨出的弧長長度皆為1.745329252。此 時,往北移動的垂直距離=s=rsin(1)=1.745240644 ;向內移動的水平距離

=r-d=r− rcos(1)=0.01523047。

決定了每步所跨的步伐長後,接下來我們將說明如何使下一步所跨的

α

0 cos

1″ = ″ + ×

s x

x (2.10) )

0 (

1 y r d

y″ = ″ − −

(2.11) α

0 sin

1″ = ″ + ×

s z

z (2.12) 但必須注意的是,此處的(x1,y1,z1)是在旋轉後的座標系表示法,因此為 得到其在原始座標的位置,必須再將座標軸旋轉回原本的座標系,以得到 下一步所在位置的座標(x1,y1,z1)。

根據上述方法,我們可寫出利用電腦模擬球面上隨機漫步的演算法:

1.起始位置經緯度(θ00),利用式(2.4)、(2.5)、(2.6)可計算出其直角座標 上的位置(x0,y0,z0)。

2.利用轉軸公式(2.9),得到轉軸後的直角座標(x0,y0,z0)=(0,r,0)。

3.隨機選取下一步方向:α角度,α∈指定分配。

4.利用式(2.10)、(2.11)、(2.12)找出下一步所在位置(x1,y1,z1)。

5.再利用轉軸公式,旋轉反方向角度,將座標轉回原直角座標位置,得到 轉軸後的直角座標(x1,y1,z1)。

6.最後利用式(2.7)、(2.8)求出所在位置的經緯度(θ11)。

7.判斷所在緯度φ1是否已觸及停止的範圍:赤道(0)或北極圈(66033′)。

8.若已抵達停止範圍,則計算至停止為止的總步數。

9.若未抵達停止範圍,則視(θ1,φ1)為起始位置重複前述步驟。

2-4 模擬圓周上隨機漫步演算法

為確認此模擬方法是否正確可行,我們套用轉軸的方法於2維的圓 上,並製造特殊情況,使模擬的過程符合賭徒破產定理的條件,並據此將 模擬的結果與賭徒破產公式的理論值做比較。

我們採用的方法是,將球投影到平面上(不考慮經度,只考慮緯度),

則此時球面上點的移動,等同於在球圓周上的移動;另外我們限制每步所 跨出的長度恰等於跨越一緯度,即:當球半徑為100,則每一次所跨出的 弧長長度皆為1.745329252。在此同時,依弧長所截切出的截面圓,將會 因投影效果,而變成一直線,α角度也只會有90度和270度兩種選擇。在 上述這些特殊情況成立下,將使每次皆跨行1緯度長度且下一步不是向上 就是向下的假設成立,則由i緯度出發到達緯度66度時停止的情況,即等 同於2.1的賭徒破產定理中,現有i元欲獲得66元的過程。此時,我們可利 用式(2.1)及(2.2)估計出成功到達的機率和停止的期望步數值,並與模擬出 的結果做比較,以確認此模擬方法的準確度。

而為了控制下一步向上或向下的機率,我們透過隨機選取一值p,p 服從uniform(0,1)分配來加以控制。若p≤0.7,則方向α=90,即:向上一緯 度;若p>0.7,則方向α=270,即:向下一緯度,即:每次出發,增加1緯 度的機率為0.7,減少1緯度的機率為0.3,N=66,則由式(2.1)及(2.2)可知理 論值為:

⎪⎪

⎪⎪

⎟⎠

⎜ ⎞

−⎛

⎟⎠

⎜ ⎞

−⎛

= 66

7 1 3

7 1 3

i

fi

( )

0.4

a. 若向上一緯度(由 ⎜⎝⎛ ′ ′⎟⎠⎞

0 0 , z y

A 移動至A′⎜⎝⎛y1, z1′⎟⎠⎞)

圖2.5 二維座標中向上移動圖示

( )

1) 0.0001523 cos

( 0

0

1′ = ′− − = ′− ×

r y r

r y y

( )

1 0.01745

sin 0

0

1′ = ′+ = ′+ ×

r z r

z z

b. 同理,若向下一緯度

圖2.6 二維座標中向下移動圖示

( )

1) 0.0001523 cos

( 0

0

1′ = ′− − = ′− ×

r y r

r y y

( )

1 0.01745 sin 0

0

1′ = ′− = ′− ×

r z r

z z

接下來,只要再旋轉回原始座標系,則可得到下一步所在位置( )及其 緯度。

1 1, z y

根據上述方法,我們可寫出利用電腦模擬球面上隨機漫步的演算法:

(前提假設:球半徑r=100,每步所跨弧長=1.745329252) 1.起始位置緯度(φ0),計算出其直角座標上的位置(y0, z0)。

2.利用轉軸公式,使點(y0, z0)能旋轉至y軸上做運算,並得到轉軸後的直角 座標(y0, z0)=(r,0)。

3.決定下一步方向:隨機選取ρ∈Uniform(0,1),若ρ ≤0.7,即緯度增加1度;

若ρ >0.7,即緯度減少1度。

4.找出下一步所在位置(y1, z1)。

5.再利用轉軸公式,旋轉反方向角度,將座標轉回原直角座標位置,得到 轉軸後的直角座標(y1, z1)。

6.再利用直角座標(y1, z1),逆推出所在位置的緯度(φ1)。

7.判斷所在緯度φ1是否已觸及停止的範圍:赤道(0)或北極圈(66033′)。

8.若已抵達停止範圍,則計算至停止為止的總步數。

9.若未抵達停止範圍,則視(φ1)為起始位置重複前述步驟。

在文檔中 球面上的隨機漫步 (頁 13-23)

相關文件