python三维数据插值_三维数据的Python插值

好的,您需要的是回归(参见:Wolfram,Wiki)或近似(参见:Wiki)。两者的一般思想正是您所需要的:找到一个函数,它将与您拥有尽可能接近的样本的函数相匹配。在

有几种方法,你可以谷歌他们,因为你现在知道需要的条件。在

这里有几个简单的例子。记住,选择一种近似的方法是重要的,并且取决于问题,没有一种方法可以正确地做到这一点。在

方法1

您得到了点P,并希望找到它的函数f的值。

如果您已经知道这个点的f的值,则返回它。

否则,找到您知道值的2^d点,最接近P,其中d是维数(函数参数的数目)。例如,对于2维((x,y)点),您会找到4个最接近P的点。在

计算它们和点P之间的距离,得到2^d值(每个点1个),然后计算这些距离的总和。在

计算f(P) = f(point0)*distance(point0)/sumOfDistance + f(point1)*distance(point1)/sumOfDistance + ... f(pointd-1)*distance(pointd-1)/sumOfDistance。得到这个函数的平均值。在

方法2

对于某个方程,你使这些点的误差函数最小化。例如,您可以假设g(x, y, z) = ax + by + cz + d可以用来描述您的第4列。你必须弄清楚这个函数的样子,并自己选择它的形式(你可以使用指数函数,对数,政治学等)。然后您将错误函数定义为e(a, b, c, d),它是使用a,b,c,d,平方(我的意思是,差异是平方的,而不是a,b,c,d)之间的差值之和。Square是可选的,但通常效果更好。现在你要做的就是最小化函数e,这意味着“查找值a,b,c,d,其中{}将尽可能小”。在

你怎么做到的?如果你的函数很简单,你可以微分它,求微分的所有零点,计算这些零点的e的值,然后选择最小值。

当你的函数很复杂时,我们遇到了一个问题。有一种叫做(元)启发式的解决方案,在这种任务中非常有用。你可以阅读进化/遗传算法(两者很接近,但不一样)、粒子群优化、禁忌搜索、模拟退火等启发式方法。我不会在这里描述它们,这至少是一门计算机科学硕士课程的主题。在

图书馆呢?

嗯。。。我不确定是否有类似的东西,但如果有,我猜你会在numpy或{a5}找到它。如果不是这样的话,手工实现是非常可行的,尽管你必须谨慎并且非常好地测试它(在这样的任务中很难找到bug)。在

你可能感兴趣的:(python三维数据插值)