我的工作内插的采样数据的一个项目{(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做这样的搜索的样本数据。
您正在寻找预测/映射
正如你所说,你有投影X(3D) -> Y(4D)
这不是一对一的,你的情况是这样什么情况下(1 X -> n Y)
或者(n X -> 1 Y)
或者(n X -> m Y)
要使用查表
我以为你只是想生成所有X
给定Y
非问题(1 to 1)
映射的是,你可以用查找表,只有当它有
- 所有有效点
- 或映射具有一些几何或数学对称性(对点之间的距离例如在
X
和Y
空间是类似的,并且映射是连续的)
所以,问题是什么样的映射/投影的你心里有你不能通用的映射点之间插入?
首先,1-> 1突起/映射插值
如果你的X->Y
投影映射是适用于内插
然后3D->4D
使用三线性插值。 找到最接近的8
点(每个在其轴线以形成网格超立方体),并在所有它们之间内插4
的尺寸
如果X<-Y
投影映射是适用于内插
然后对4D->3D
使用夸线性内插。 找到最接近的16
点(每个在其轴线以形成网格超立方体),并在所有它们之间内插3
的尺寸。
再谈谈1->n
或n->m
突起/映射
这完全取决于我什么都不知道的投影/映射属性。 尽量提供您的数据集的例子,加入一些图像将是最好的。
[EDIT1] 1 X < - n个Y
我仍然会用夸-线性插值。 你仍然需要寻找你Y
表,但如果你组像4D
电网,那么它应该是很容易。
找到16
在最近点Y
-table您输入Y
点
这些点应该是最近点到你Y
在每个+/-
所有轴系方向。 在3D它看起来像这样:
- 红点是你输入
Y
点 - 蓝点找到的最近点(网格),他们并不需要如此对称的图像。
请不要我画4D
的例子,意义:)(至少对于清醒的头脑)
插值
找到相应的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
线性内插。
线性插值
X = X0 + (X1-X0)*t
-
X
插值点 -
X0,X1
是“左”,“右”点 -
t
是距离参数<0,1>