一个艰巨的任务,但这是我需要能够做的......我将得到一些三维(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),它描述了该区间的表面。这可能吗?
干杯!
我的第一点是,如果我理解正确的话,你实际上在二维(x和y)上有分散的数据(z)。
我会写一个程序,给定一个坐标,找出它包含在哪个区间中,并返回一个函数f(x,y),它描述了该区间的表面。这可能吗?
是的,当然!
您可以简单地自己进行数学运算(二元样条可能不是公式中最漂亮的插值,但它仍然在某种程度上易于管理),或者您可以通过在创建的SmoothBivarianteSpline
上调用get_coeffs()
来获取系数列表。这将为您提供一组表面描述系数。我认为理解这些含义的最简单方法是将您指向源代码,所以您开始了;重要的AR tx
,ty
和c
。