我有在不同的时间和地点采集的数据,所以高点和低点形成一个“通道”。我试图找到这些点的平均线,所以基本上在“通道”的中间是什么
使用一个简单的5阶多项式拟合(numpy.polyfit(x,y,5)
),我得到了以下结果,拟合正好沿着由两个数据点形成的“通道”的中间(因此红线正好位于蓝色点的中间)。
唯一的问题是,我排除了这个多边形拟合中相当关键的数据点,因为它会搞乱一切(这是半径为1的管道中的流体流动。我排除了no-slip point,这将是(1,0)
,并真正搞乱拟合)
为了对其进行排序,我尝试使用样条曲线拟合(scipy.interpolate.splrep
)。但是,在使用它一段时间后,它似乎只关心“channel”的上限值,直到x=0.8:
^这是指定平滑度(splrep(x,y,s=5)
)
将“无滑移点”添加到数据中确实会产生预期效果(即绘制相同的高速数据,但仍将边界层绘制到墙),但我们仍存在其他问题:
这是样条线表示函数的正常行为吗?如何使其同时考虑高点和低点数据
注:图中的“文件点”只是在特定点处计算的样条曲线。别介意
我想出来了。我至少没有数据->;最好的命令。由于从csv导入数据时的顺序,
splrep
函数只考虑了一半的数据因此数据组织如下:
所以它只考虑了数据点0->;12.一旦我改变了这一点,结果样条线就应用于所有数据:
现在我至少有了一个出发点
编辑:这是经过平滑处理后的结果。请注意,样条函数现在实际上在点之间传递:
相关问题 更多 >
编程相关推荐