2010-12-11 76 views
1

在我的研究中,我生成了旨在代表岩石中的裂縫的離散平面。裂縫平面的方向由其傾角和傾角方向確定。知道這一點,我也知道每個平面的法向量的分量。從費舍爾分佈中繪製隨機值

到目前爲止,我一直在繪製傾角和傾角方向,與正態分佈無關。這是好的,但我想添加從費舍爾分佈中繪製的能力。

漁夫分佈被描述 HERE

基本上,我希望能夠以指定的平均傾角和傾向(或平均矢量)和「漁民常數」或分散因子,k及從該方向分佈中隨機抽取值。

附加信息:看起來「馮米塞斯 - 費舍爾分佈」或者是我所說的「費舍爾分佈」或者是某種相關的。關於馮米塞斯 - 費舍爾分佈的一些信息:

正如你所看到的,我已經做了一些研究,但我承認我不完全理解數學。我覺得我很接近,但我不太明白...任何幫助都非常感謝!

如果有幫助,我的編程是在FORTRAN。

+0

許多抽樣問題已在網站上。短簡版:反轉CDF或拒絕。現有問題:[僞隨機數發生器 - 指數分佈](http://stackoverflow.com/q/2106503)[產生冪律分佈的隨機數發生器?](http://stackoverflow.com/q/918736) [概率密度函數問題,來自一篇論文,用C++實現,不能按預期工作](http://stackoverflow.com/q/4103477)[如何生成匹配直方圖的點?](http:// stackoverflow的.com/q/423006)。那些不在Fortran中,但數學總是一樣的。 – dmckee 2010-12-11 07:25:05

+1

查看有關定向數據的這兩個參考。 Fisher,NI。,統計分析的循環數據,劍橋大學出版社,1993年。ISBN 0-521-35018-2 Fisher,NI。,Lewis,T.,Embleton,BJJ。 「球狀數據的統計分析」,劍橋大學出版社,1993年。國際標準書號0-521-45699-1 – Tony 2010-12-11 07:27:57

+0

我猜我有一件事我不明白:在我提供的鏈接中,分佈是用θ表示的。所以基本上這個分佈是一維的,所以我不太明白它在3D中的工作原理。例如,我可以模擬一些θ值,但是它會在平均向量周圍指定一個環,而不是實際的點。 – 2010-12-11 07:43:20

回答

2

的算法是 「球形數據的統計分析」 第59頁的和BJJ Embleton。我強烈推薦這本書 - 它會幫助你理解數學。

以下將生成以北極爲中心的隨機Fisher分佈位置。如果你想讓它們隨機居中,那麼你會在球體上產生更多統一的隨機位置,並將這些位置旋轉到以這些位置爲中心。如果您不確定這些步驟,請參閱上述書。此Fortran代碼片段使用隨機數生成器,可生成從0到1的統一偏差。

lambda = exp (-2.0 * kappa) 
    term1 = get_uniform_random() * (1.0 - lambda) + lambda 
    CoLat = 2.0 * asin (sqrt (-log (term1)/(2.0 * kappa))) 
    Long = 2.0 * PI * get_uniform_random() 
+0

太棒了。謝謝,我將在本週末挑選那本書。 – 2010-12-11 18:01:56

2

我認爲,你可以自己動手完成的數學

  • 整合費舍爾分佈的密度函數來獲取累積分佈函數

    F(THETA)= EXP(K COS(THETA ))/(exp(k)-exp(-k))

  • 下一步是找到反向累積分佈函數函數F ^( - 1)(y)。此功能滿足

    F(THETA)= Y < =>˚F^( - 1)(Y)= THETA

  • 我認爲你會得到如下。

    ˚F^( - 1)(Y)=反餘弦(日誌((EXP(K)-exp(-k))* Y)/ K)

  • 繪圖Y1,Y2,Y3,Y4。 (-1)(y1),F ^( - 1)(y2),F ^( - 1)((1)]在區間[0,1]上的均勻分佈。 Y3),F ^( - 1)(Y4)將按照Fisher分佈由NI費舍爾,T.路易斯分佈..

+0

感謝您的幫助,這實際上是完全意義上的。所以,現在我可以根據漁民分佈繪製theta的值,但這對3D意味着什麼?如果我有一些意思矢量,繪製theta值似乎會定義一個圍繞該矢量的圓。 – 2010-12-11 17:22:24

+0

您必須使用第二個隨機變量來查找圓上的隨機點。你應該從0; 2 * pi上的均勻分佈中繪製這個變量。 – nielsle 2010-12-12 08:15:13