Scipy UnivariateSpline产生非常不准确的结果

时间:2017-10-06 19:16:39

标签: python scipy

原始函数,用

绘制
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不起作用?

1 个答案:

答案 0 :(得分:1)

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

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