2017-10-06 36 views
-1

的原有功能,绘制与SciPy的UnivariateSpline产生非常不准确的结果

plt.plot(x_list, np.absolute(eig_function)**2); 

产生分析纯预期正弦函数: 1st regular 2nd regular

spl = UnivariateSpline(x_list, np.absolute(eig_function)**2); 
plt.plot(x_list, spl(xs)) 

产生

1st spl 2nd spl

这不是预期的,从我的理解样条应该导致更多数据点具有相同的值。为什么UnivariateSpline不起作用?

+0

请提供数据集,以便可以复制问题。另外,它看起来像你一次调用'plt.plot()',但是你显示了两个图 – Stelios

+0

@Desire可能需要什么额外的代码?样条曲线的矢量'eig_functions'与常规绘图相同。 –

回答

1

必须使用UnivariateSpline(x, y, s=0)才能获得准确结果。换句话说,在这种情况下,平滑因素导致数据的“平滑”。

spl = UnivariateSpline(x_list, np.absolute(eig_function)**2, s=0); 
plt.plot(x_list, spl(xs)) 
相关问题