二维重采样算法

5

我有一个12*50的数组需要重新划分。该数组表示一个双变量概率分布,p(a,b),其中ab是非笛卡尔坐标。然而,我想重新划分它,以便在笛卡尔坐标中得到一个分布,p(x,y)

abxy(稍微)非线性相关,但我作出了简化的假设,即(a,b)箱子在(x,y)空间内看起来像凸四边形(弯曲的方格!)。我可以制作查找表,在所有箱子角落将(a,b)映射到(x,y)

有人知道能够做到这种重新划分的算法,以免让我重复造轮子吗?

我特别寻找解析解,但会接受涉及将(a,b)箱子分成许多小箱子并按其中心位置正确地排序,以使其对应于适当的(x,y)箱子的解决方案。

请注意,这是一个重新划分任务,不仅仅是插值(这将是小菜一碟)。


你是否有x和y的反函数[X[a,b] = x,Y[a,b]=y]? - Dr. belisarius
不幸的是,这些函数无法通过解析方式表达。这就是我使用优化算法来建立(a,b)到(x,y)的查找表的原因。 - Jean-François Corbett
1个回答

2
有两种解决方案可以尝试。一种是精确分析方法:找出重叠于bin (x,y)的所有重叠a,b的确切分数区域f,然后只需对该bin的所有重叠a,bf*p(a,b)进行总和以得到p(x,y)。(如果a,b bin不是同样大小,则应找到实际面积并将其除以(x,y) bin的面积。)如果bin边界的方程足够简单,这应该相对简单,但有点繁琐。
另一类是反锯齿技术,即计算机图形学中使用的方法。基本上,您会用一堆等间距点替换在(a,b)处的整个bin,并将这些点放入x,y平面并添加到包含该值的bin中。因此,例如,使用4倍反锯齿,您会想象一个点数组(a+3/8,b+3/8)(a+1/8,b+3/8)(a-1/8,b+3/8),...每个都包含(a,b) bin值的1/16;然后,您将找到每个16个位置在x,y平面上的位置,并将该1/16值添加到每个bin中。
(随机解决方案也存在,但对于您的问题,它们将引入更大的误差并需要更长时间计算。)

@JF - 针对哪种类型的算法?分析方法可能是特定于您的问题的,因此您可能需要自己进行数学计算。抗锯齿解决方案只需对于所有(a,b),对于(i=1到k,j=1到k):将p(a,b)/k^2添加到与位置(a+i/k-1/2k-1/2,b+j/k-1/2k-1/2)相对应的p(x,y)中即可。 - Rex Kerr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接