这可能是一个很高的要求,但这是我需要做的......我会得到一些三维的分散数据(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),它描述了该区间的表面。这可能吗?
干杯!
答案 0 :(得分:0)
我的第一点是,如果我理解正确的话,你实际上在二维(x和y)上有分散的数据(z)。
我会编写一个程序,给定一个坐标,找出它所包含的间隔并返回一个函数f(x,y),它描述了该区间中的表面。这可能吗?
是的,当然!
你可以自己简单地做数学(双变量样条可能不是关于公式的最漂亮的插值,但它仍然有些可管理),或者你可以通过调用get_coeffs()
获得系数列表在您创建的SmoothBivarianteSpline
上。这将为您提供表面描述系数集。我认为理解这些含义的最简单方法是指向源代码,所以here you go;重要的是tx
,ty
和c
。