# 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()
![](https://images2018.cnblogs.com/blog/1200609/201711/1200609-20171124214939875-1549645003.png)
![](https://images2018.cnblogs.com/blog/1200609/201711/1200609-20171124214950078-696204942.png)
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步