原始函数,用
绘制plt.plot(x_list, np.absolute(eig_function)**2);
spl = UnivariateSpline(x_list, np.absolute(eig_function)**2);
plt.plot(x_list, spl(xs))
生成
这不是预期的结果,因为我的理解样条应该会产生更多相同值的数据点。为什么UnivariateSpline不起作用?
答案 0 :(得分:1)
必须使用UnivariateSpline(x, y, s=0)
才能获得准确的结果。换句话说,在这种情况下,平滑因子导致数据的“平滑”。
spl = UnivariateSpline(x_list, np.absolute(eig_function)**2, s=0);
plt.plot(x_list, spl(xs))