4D 数据插值
Interpolation on 4D data
我正在尝试对 4D 数据执行 interpolation/fit(最好是非线性的,但线性的也应该没问题)。我的数据具有以下形式:
[a,b,c] = func(input)
显然,func
是未知的,最终数据看起来像 (input, a, b, c):
0 -0.1253 0.0341 0.01060
35 -0.0985 0.0176 0.02060
50 -0.0315 -0.0533 0.1118
60 -0.0518 -0.0327 0.03020
80 0.2939 -0.0713 0.05670
100 0.3684 -0.0765 0.06740
我在例如input = [0, 35, 50, 60, 80, 100](0 是最小值,100 是最大值;我在最小值和最大值之间取了 6 个样本)然后我得到相应的 a、b 和 c 值(我知道 6样本点是一个糟糕的实验设计,所以我会在未来扩展它)。
- 我正在尝试猜测输入 = 19 时 a、b 和 c 的值?有什么指点吗?
- 如何估计这种情况下的拟合优度?
这不是4D插值,这是3倍1D插值。您只需对 interp1([0 35],[-0.1253 -0.0985],19)
进行插值,对 b
和 c
进行插值。 (interp1(intput,a,19)
)
请注意,对于网格中最基本的一维插值 (不是您拥有的),通常需要 2 个数据点。对于最基本的 2D 插值,您需要 4 个数据点。对于3D插值,8最小,4D,16....(一般2^d)。
另请注意,一维插值使用 2 "dims"。因为你用一个引导插值,另一个插值。一般而言,对于 [v,a,b,c]
数据,您将使用 3D 插值。
综上所述,在这种情况下你做不到。你有分散的数据,而不是网格,因此问题变得相当复杂。
如果您可以生成更多的点(不一定是 16 个),您可以使用函数 griddatan
对分散的数据进行插值。请注意,您不能只说“给我 [a,b,c]
for input=19
,可能有无限数量的 a,b,c
具有该条件。无论如何,您总是需要给出 dim-1
样本点的数量,并得到最后一个插值。只是一个建议:这个函数在计算和内存方面非常昂贵。不要用于大数据点,因为它会使您的 PC 崩溃。
如果您想找到一组使 input=19
成为可能的参数,那么您将进入更复杂的领域。您想要最小化函数 f(x)
,其中 x=[a,b,c]
for f(x)=input
用数学术语来说:
argmin_x |f(x)-input|^2= \vec{input}
这是一个更难的问题,可以说比编程问题更数学。也许您的数据的 ND bspline 拟合会很好 f
我正在尝试对 4D 数据执行 interpolation/fit(最好是非线性的,但线性的也应该没问题)。我的数据具有以下形式:
[a,b,c] = func(input)
显然,func
是未知的,最终数据看起来像 (input, a, b, c):
0 -0.1253 0.0341 0.01060
35 -0.0985 0.0176 0.02060
50 -0.0315 -0.0533 0.1118
60 -0.0518 -0.0327 0.03020
80 0.2939 -0.0713 0.05670
100 0.3684 -0.0765 0.06740
我在例如input = [0, 35, 50, 60, 80, 100](0 是最小值,100 是最大值;我在最小值和最大值之间取了 6 个样本)然后我得到相应的 a、b 和 c 值(我知道 6样本点是一个糟糕的实验设计,所以我会在未来扩展它)。
- 我正在尝试猜测输入 = 19 时 a、b 和 c 的值?有什么指点吗?
- 如何估计这种情况下的拟合优度?
这不是4D插值,这是3倍1D插值。您只需对 interp1([0 35],[-0.1253 -0.0985],19)
进行插值,对 b
和 c
进行插值。 (interp1(intput,a,19)
)
请注意,对于网格中最基本的一维插值 (不是您拥有的),通常需要 2 个数据点。对于最基本的 2D 插值,您需要 4 个数据点。对于3D插值,8最小,4D,16....(一般2^d)。
另请注意,一维插值使用 2 "dims"。因为你用一个引导插值,另一个插值。一般而言,对于 [v,a,b,c]
数据,您将使用 3D 插值。
综上所述,在这种情况下你做不到。你有分散的数据,而不是网格,因此问题变得相当复杂。
如果您可以生成更多的点(不一定是 16 个),您可以使用函数 griddatan
对分散的数据进行插值。请注意,您不能只说“给我 [a,b,c]
for input=19
,可能有无限数量的 a,b,c
具有该条件。无论如何,您总是需要给出 dim-1
样本点的数量,并得到最后一个插值。只是一个建议:这个函数在计算和内存方面非常昂贵。不要用于大数据点,因为它会使您的 PC 崩溃。
如果您想找到一组使 input=19
成为可能的参数,那么您将进入更复杂的领域。您想要最小化函数 f(x)
,其中 x=[a,b,c]
for f(x)=input
用数学术语来说:
argmin_x |f(x)-input|^2= \vec{input}
这是一个更难的问题,可以说比编程问题更数学。也许您的数据的 ND bspline 拟合会很好 f