社区首页 >问答首页 >4D数据的插值

4D数据的插值
EN

Stack Overflow用户
提问于 2017-07-20 01:42:07
回答 1查看 858关注 0票数 1

我正在尝试对4D数据进行插值/拟合(最好是非线性的,但线性也应该很好)。我的数据有一种形式:

代码语言:javascript
代码运行次数:0
复制
[a,b,c] = func(input)

显然,func是未知的,最终数据看起来类似于(输入,a,b,c):

代码语言:javascript
代码运行次数:0
复制
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

我在输入= 0, 35, 50, 60, 80, 100时进行观察,然后得到相应的a、b和c值(我知道6个样本点是一个糟糕的实验设计,因此我将在将来扩展它)。

  1. 我试图猜测a,b和c的值,比如输入= 19?有什么指示吗?
  2. 在这种情况下,如何估计合适度呢?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-20 01:56:36

这不是4D插值,这是3乘以1D插值。您只需要对interp1([0 35],[-0.1253 -0.0985],19)进行插值,对于bc也是如此。(interp1(intput,a,19))

请注意,对于网格网格中最基本的一维插值(不是所拥有的),一般需要2个数据点。对于最基本的2D插值,您需要4个数据点。三维插值,最少8,4D,16.(一般为2^d)。

还请注意,一维插值使用2 "dims“。因为你用一个来引导插补,另一个是内插。一般情况下,对于[v,a,b,c]数据,您将使用三维插值。

不管怎么说,在这种情况下,你是不可能的。您有分散的数据,而不是网格,因此问题变得更加复杂。

如果您可以生成更多的点(不一定是16点),您可以使用函数griddatan来插值散乱的数据。请注意,您不能只说“给我[a,b,c] for input=19,可能会有无限数量的a,b,c具有这种情况。无论如何,您总是需要给出样本点的dim-1数量,并得到最后一个插值点。只是一个建议:这个函数在计算上和内存上都非常昂贵。不要使用大数据点,因为它会使您的PC崩溃。”

在这种情况下,您希望找到一组构成input=19的参数,然后您将进入更复杂的区域。您希望最小化一个函数f(x),其中x=[a,b,c]表示f(x)=input

在数学方面:

argmin_x |f(x)-input|^2= \vec{input}

这是一个更难的问题,可以说更多的是数学问题,而不是编程问题。也许对数据进行ND样条拟合会是一个很好的f

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45211034

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档