如何使用Python从三维椭球体生成随机点样本?

2024-09-21 14:11:13 发布

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

我试着从一个3-D椭球体上均匀地取样大约1000个点。有没有什么方法可以对它进行编码,这样我们就可以从椭球体的方程中得到点?在

我想要椭球面上的点。在


Tags: 方法编码方程椭球椭球面
2条回答

考虑使用蒙特卡罗模拟:生成一个随机的三维点;检查该点是否在椭球体内;如果在,则保留它。重复,直到你得到1000分。在

p.S.由于OP改变了他们的问题,这个答案不再有效。

J.F.Williamson,“随机选择分布在曲面上的点”,医学和生物学物理32(10),1987,描述了在参数曲面上选择均匀随机点的一般方法。这是一种接受/拒绝方法,根据每个候选点的拉伸因子(梯度范数)来接受或拒绝每个候选点。要将此方法用于参数化曲面,必须了解曲面的一些事情,即-

  • 两个{cd3>

  • u和{}的范围,

  • g(point),曲面上每个点的梯度的范数(“拉伸因子”),以及
  • gmax,整个曲面的g的最大值。在

算法是:

  • 在曲面上生成一个点,xyz。在
  • 如果g(xyz) >= RNDU01()*gmax,其中RNDU01()是[0,1]中的一个随机数,则接受该点。否则,重复此过程。在

Chen和Glotzer(2007)在“拉长病毒衣壳形成现象学模型的模拟研究”中将该方法应用于长椭球体(椭球体的一种形式)的表面,arXiv:cond mat/0701125[cond-软垫子]. 在

相关问题 更多 >

    热门问题