2010-12-11 58 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