二维重组算法

时间:2010-08-31 12:36:56

标签: algorithm probability discrete-mathematics

我有一个需要重组的12乘50阵列。数组表示双变量概率分布p(a,b),其中ab是非笛卡尔坐标。但是,我想重新绑定它,以便我在笛卡尔坐标p(x,y)中进行分布。

ab(温和地)与xy非常相关,但我做出了(a,b)二进制文件看起来像凸四边形的简化假设(弯曲的盒子!)在(x,y)空间。我可以在所有bin角处制作与(a,b)(x,y)相关的查找表。

任何人都知道这种重组的算法,以免我重新发明轮子?

我特别寻找分析解决方案,但是我会寻求解决方案,包括将(a,b)箱子切割成许多小型垃圾箱,并根据它们的中心位置在适当的(x,y)垃圾箱中进行分类。

请注意,这是一个重组任务,不仅仅是一个插值(这将是一块蛋糕)。

1 个答案:

答案 0 :(得分:2)

您可以尝试两种常见的解决方案类别。一个是精确的分析方法:找出与f重叠的bin (a,b)的确切分数区(x,y),然后只为所有重叠{{1}总结f*p(a,b)并且a为该bin获取b。 (如果p(x,y)箱的大小不同,则应找到实际区域并除以a,b箱柜的面积。)如果箱柜边界的方程式足够简单,如果有点乏味,这应该是相对简单的。

另一类是抗锯齿,与计算机图形中使用的方法相同。基本上,您使用一堆等间距的点替换(x,y)处的整个bin,并将这些点放入(a,b)平面并将它们添加到包含该值的bin中。因此,例如,使用4的抗锯齿,您可以想象一个点x,y(a+3/8,b+3/8)(a+1/8,b+3/8),......的数组,每个点包含1/16的值(a-1/8,b+3/8) bin;然后,您将找到这16个位置中的每一个位于(a,b)平面上的位置,并将1/16值添加到每个区域。

(也存在随机解决方案,但对于您的问题,它们会引入更大的错误并需要更长的时间来计算。)