在n维中绘制等值面

时间:2014-04-08 03:02:00

标签: algorithm discrete-mathematics random-sample

这更多是与代码无关的问题。

在离散空间中,我需要沿任意隐式多项式绘制随机点,任意维度和任意度。

我使用C ++进行处理,并且我有可用的特征库(但我怀疑任何类型的求解器都可以在任何程度上使用?)。因此,更高级别的函数和语言不是解决方案(例如MATLAB甚至是Python)。

无论如何,我目前天真的方式是:

  • 在空间中绘制一个随机点
  • 确定此点的isofunction的值
  • 创建该点的邻接球
  • 所有邻居,确定最接近表面
  • 移动考虑点代替这个邻居。如果该点超出我的范围,只需删除它
  • 重复直到isofunction为空

现在,我可以看到几种改进方法。不要每次都产生一个完整的邻接球,而只是画一条线并沿着这条线进行一种二元搜索。

无论如何,这种方法的核心仍然非常相似。

(在旁注中,isofunction是连续的,但是我使用某种数字化来评估我的观点是否实际上是否在它上面)

我的问题在于它对于大n(3+)而言相当低,更重要的是,这些点往往集中在等值面的某些部分。我用这个来生成数据集来评估一些算法,所以即使分布不是最重要的问题,我控制数据集质量的能力也会很有趣。

有没有更好的方法在等值面上分布随机点?

0 个答案:

没有答案