【问题标题】:Given scattered data in three dimensions, need to interpolate data and find functions at a specific point给定三个维度上的分散数据,需要对数据进行插值并在特定点找到函数
【发布时间】:2015-09-01 13:35:35
【问题描述】:

这可能是一个艰巨的任务,但这是我需要能够做的...我将获得一些分散的三维(x、y、z)数据。最终目标是能够为表面上的每个点提供 f(x,y) 函数。例如,给定包含在数据凸包内的坐标 (x,y),我希望程序吐出 f(x,y) = ax^3 + bx^2 + cx + dy^3 + ey ^2 +fy + g,一个双三次函数,适合该点的插值数据。这引导我探索双三次 B 样条和一般样条。

我一直在spicy.interpolate 库中使用SmoothBivariateSpline 来获取插值数据,但我不知道从这里去哪里。我想把最后一步全部扔掉,直接进入中间步骤,样条插值将函数拟合到每个间隔。所以...我会编写一个程序,给定一个坐标,找出它包含在哪个区间中,并返回一个函数 f(x,y),它描述了该区间中的表面。这可能吗?

干杯!

【问题讨论】:

    标签: python math interpolation spline bspline


    【解决方案1】:

    我的第一点是,如果我理解正确的话,您实际上在二维(x 和 y)上有分散的数据 (z)。

    我会编写一个程序,给定一个坐标,找出它包含在哪个区间中,并返回一个函数 f(x,y),它描述了该区间中的表面。这可能吗?

    是的,当然!

    您可以简单地自己进行数学运算(就公式而言,二元样条可能不是最漂亮的插值,但它仍然有些易于管理),或者您可以通过调用 get_coeffs() 来获取系数列表SmoothBivarianteSpline 你已经创建了。这将为您提供一组表面描述的系数。我认为理解这些含义的最简单方法是将您指向源代码,所以here you go;重要的 ar txtyc

    【讨论】:

    • 好的,这有点帮助。不过,我对系数及其含义感到困惑。假设我有系数和结,我可以重建整个表面吗?另外,鉴于这些系数和结,我能找到我正在寻找的函数吗?
    • 系数完​​全描述了构成曲面的多项式。该多项式就是您要查找的函数。
    • 我该怎么做呢?我查看了几篇学术论文和互联网资源,但似乎无法找到如何确定每个点的表面功能。在不同点找到 Z 的值相当简单,它是找到描述该点表面及其周围点的实际函数。
    • 您需要查看 scipy 内部使用的库的文档来进行这些拟合。它实际上只是多项式的系数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-31
    • 1970-01-01
    • 2014-04-20
    • 1970-01-01
    • 2014-04-09
    • 1970-01-01
    相关资源
    最近更新 更多