【问题标题】:inverse interpolation of multidimensional grids多维网格的逆插值
【发布时间】:2014-09-03 23:12:21
【问题描述】:

我正在从事一个插入样本数据{(x_i,y_i)} 的项目,其中x_i 的输入域位于 4D 空间中,而输出 y_i 位于 3D 空间中。我需要为两个方向生成两个查找表。我设法生成了4D -> 3D 表。但是3D -> 4D 是一个棘手的问题。样本数据不在规则的网格点上,也不是一对一的映射。有没有已知的方法来治疗这种情况?我在网上做了一些搜索,但我发现的只是3D -> 3D映射,不适合这种情况。谢谢!


回答Spektre的问题:

X(3D) -> Y(4D)1X -> nY的情况

我想为任何给定的X 生成一个表,我们可以找到Y 的值。样本数据没有占据X的所有域。但没关系,我们只需要样本数据域内的点的准确性。例如,我们有像{(x1,x2,x3) ->(y1,y2,y3,y4)} 这样的样本数据。有可能我们也有一个样本数据{(x1,x2,x3) -> (y1_1,y2_1,y3_1,y4_1)}。但没关系。我们需要一个用于空间X 中的任何(a,b,c) 的表,它对应于空间Y 中的一个(e,f,g,h)。可能有不止一种选择,但我们只需要一种。 (如果符号混淆,请见谅)

解决这个问题的一种可能方法:由于我已经从Y->X 建立了一个平滑映射,我可以使用牛顿法或任何其他方法来反向搜索点y 以获得任何给定的x。但它不够准确,而且耗时。因为我需要对表中的每个点进行搜索,误差是模型误差与搜索误差之和。

所以我想知道是否可以直接找到一个映射来插入样本数据,而不是在 3 中进行这种搜索。

【问题讨论】:

    标签: math 3d interpolation


    【解决方案1】:
    1. 您正在寻找投影/映射

      正如您所提到的,您有投影X(3D) -> Y(4D),这在您的情况下不是一对一的,那么(1 X -> n Y)(n X -> 1 Y)(n X -> m Y) 是什么情况?

    2. 你想使用查找表

      我假设您只想为给定的Y 生成所有X

      • 所有有效积分
      • 或映射具有某种几何或数学对称性(例如XYspace 中的点之间的距离相似,并且映射是连续的)

      您不能在通用映射点之间进行插值,所以问题是您想到的是哪种映射/投影?

    3. 首先是 1->1 投影/映射插值

      1. 如果您的X->Y 投影映射适合插值

        那么对于3D->4D 使用三线性插值。找到最接近的8 点(每个点在其轴上形成网格超立方体)并在所有4 维度上进行插值

      2. 如果您的X<-Y 投影映射适合插值

        那么对于4D->3D 使用quatro-linear 插值。找到最接近的16 点(每个点在其轴上形成网格超立方体)并在所有3 维度上进行插值。

    4. 现在 1->nn->m 投影/映射呢

      这完全取决于我一无所知的投影/映射属性。尝试提供您的数据集示例并添加一些图像是最好的。

    [edit1] 1 X

    我仍然会使用 quatro-linear 插值。您仍然需要搜索 Y 表,但如果您将其分组为 4D 网格,那么它应该很容易。

    1. Y-table 中找到与您的输入Y 点最近的16

      这些点应该是在所有轴的每个+/- 方向上最接近您的Y 的点。在 3D 中它看起来像这样:

      • 红点是你的输入Y
      • 蓝点是找到的最近点(网格),它们不需要像图像上那样对称。

      请不要让我画4D 有意义的例子:)(至少对于清醒的头脑)

    2. 插值

      找到对应的X点。如果每个点多于一个,则选择与其他点更接近的一个...现在您应该拥有16 X 点和16+1 Y 点。然后从Y 点开始,您只需计算输入Y 点沿线的距离。这些距离用作线性插值的参数。将它们规范化为<0,1> 其中

      • 0 表示“左”,1 表示“右”点
      • 0.5 表示正中

      您将需要在每个 Y-domain 维度中使用此标量距离。现在只需沿线性插值计算所有X 点,直到在X-domain 中得到相应的红点。

      使用 三线性 插值 (3D) 有 4+2+1=7 线性插值(如图所示)。对于 quatro-linear 插值 (4D),有 8+4+2+1=15 线性插值。

    3. 线性插值

      X = X0 + (X1-X0)*t
      
      • X 是插值点
      • X0,X1 是“左”、“右”点
      • t是距离参数<0,1>

    【讨论】:

    • 我将上一部分移至我的问题部分。要从 X->Y 获取表格,如果我们使用三线性插值,我们需要 X 空间中的常规样本数据池。但在这种情况下,样本数据不在规则网格点上。所以对于X空间中的任意数据点x,我们可以找到最近的样本数据对{(xi,yi)},但不能保证xi的位置在x附近。另一个困难是 yi 可能很远,即使 xi 彼此靠近,这是由于 nY->1X 的性质。
    • @ohmygoddess 你不需要常规的网格点!!!当您使用通用点时,您只需要适当的点距离(不仅仅是在单轴上),并且找到接近点有点复杂,但其余的与常规网格点相同。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-20
    • 2021-08-06
    • 1970-01-01
    • 2019-10-02
    • 2018-09-03
    • 1970-01-01
    相关资源
    最近更新 更多