2

我正在尝试在 GEKKO 中执行 2D 插值,并拥有 x、y 和 z 数据。但是,当我将它们输入到 bspline 函数中时,我收到错误“x_data 和 y_data 必须严格增加”。你如何计算结和系数来定义表面?

我尝试使用 scipy 的 interpolate 函数为 x 和 y 数据与 z 数据之间的扁平网格创建数据,并进行排序,使 x 增加,y 循环增加值,但这仍然导致 y 值减小。

4

1 回答 1

2

查看http://apmonitor.com/wiki/index.php/Main/ObjectBspline后,我意识到 xdata 和 ydata 是 bspline 的结,z 值是系数。因此,这些值可以从 scipy.interpolate.bisplrep(xdata,ydata,zdata) 中获得,它返回一个包含节点和系数的列表来定义表面。然后这些可以作为 m.bspline(xtest,ytest,ztest,tck[0],tck[1],tck[2],data=False) 输入到 bspline 函数中

于 2019-04-12T06:50:38.270 回答