如何从自定义分布编写采样算法?

2024-09-27 21:28:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我在生成随机星系,视线速度来自于正态分布,随机位置也来自于二维高斯分布。从一个NFW剖面图绘制这些位置要更为实际一些:

rho(r) = rho_0/(r/R_s*(1+r/R_s)^2

其中rho_0和{}是常量参数。在

如何编写一个算法来从这个分布中取样?在

基本上,我试图扑通几百个遵循这个密度分布的星系。在

我刚刚用numpy.random.normal高斯分布中取样,但我想从NFW剖面中取样,而不是高斯分布。我相信一些统计训练可能是一个很好的开始,但在正确的方向上的一点将是有益的和非常感谢。在


Tags: numpy算法参数绘制random速度密度常量
1条回答
网友
1楼 · 发布于 2024-09-27 21:28:45

假设您有一个函数rho(r),它从[0..1]获取值,从[0..1]返回值,那么就很简单了:

def getRhoSample():
  #get uniform random number
  value = numpy.random.random()

  #sample my custom function
  return rho(value)

相关问题 更多 >

    热门问题