# hanbb # come on!!! import scipy.interpolate as spi import matplotlib.pyplot as plt import numpy as np # 样条插值 def f(x): return np.sin(x)+0.5*x x = np.linspace(-2*np.pi,2*np.pi,50) ipo = spi.splrep(x,f(x),k=1) # k 决定两点之间是几次方程拟合 iy = spi.splev(x,ipo) # 拟合值 ''' # 画图 plt.plot(x,f(x),'b',label="f(x)") plt.plot(x,iy,'r.',label="interpolation") plt.legend(loc=0) plt.show() ''' # 两点之间 xd = np.linspace(1.0,3.0,20) lyd = spi.splev(xd,ipo) # 画图 plt.plot(xd,f(xd),'b',label="f(x)") plt.plot(xd,lyd,'r.',label="interpolation") plt.legend(loc=0) plt.show()