多维网格的反插值(inverse interpolation of multidimensional

2019-10-20 20:45发布

我的工作内插的采样数据的一个项目{(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)} 。 但它是确定。 我们需要的任何一个表(a,b,c)在空间X ,它对应于一个(e,f,g,h)在空间Y 。 可能有多个选择,但我们只需要一个。 (很抱歉的符号,如果任何混淆)

一种可能的方式来处理这样的:既然我已经从建立一个流畅的映射Y->X ,我可以用牛顿法或任何其他方法来扭转搜索点y对于任何给定的x 。 但它是不够准确,且耗时。 因为我需要为表中的每个点做搜索,以及误差与搜索误差模型误差的总和。

所以,我想知道这是可能直接找到映射到内插,而不是在3做这样的搜索的样本数据。

Answer 1:

  1. 您正在寻找预测/映射

    正如你所说,你有投影X(3D) -> Y(4D)这不是一对一的,你的情况是这样什么情况下(1 X -> n Y)或者(n X -> 1 Y)或者(n X -> m Y)

  2. 要使用查表

    我以为你只是想生成所有X给定Y非问题(1 to 1)映射的是,你可以用查找表,只有当它有

    • 所有有效点
    • 或映射具有一些几何或数学对称性(对点之间的距离例如在XY空间是类似的,并且映射是连续的)

    所以,问题是什么样的映射/投影的你心里有你不能通用的映射点之间插入?

  3. 首先,1-> 1突起/映射插值

    1. 如果你的X->Y投影映射是适用于内插

      然后3D->4D使用三线性插值。 找到最接近的8点(每个在其轴线以形成网格超立方体),并在所有它们之间内插4的尺寸

    2. 如果X<-Y投影映射是适用于内插

      然后对4D->3D使用夸线性内插。 找到最接近的16点(每个在其轴线以形成网格超立方体),并在所有它们之间内插3的尺寸。

  4. 再谈谈1->nn->m突起/映射

    这完全取决于我什么都不知道的投影/映射属性。 尽量提供您的数据集的例子,加入一些图像将是最好的。

[EDIT1] 1 X < - n个Y

我仍然会用夸-线性插值。 你仍然需要寻找你Y表,但如果你组像4D电网,那么它应该是很容易。

  1. 找到16在最近点Y -table您输入Y

    这些点应该是最近点到你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的线性插补(如图像)。 对于夸线性内插( 4D )有8+4+2+1=15线性内插。

  3. 线性插值

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


文章来源: inverse interpolation of multidimensional grids