2017-10-06 77 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)) 
相關問題