栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

不添加不必要极值的插值方法

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

不添加不必要极值的插值方法

虽然不完全相同(?),但您的问题与此类似,因此相同的答案可能会很有用。您可以尝试单调插值器。该PchipInterpolator类(您可以通过它的短别名参考

pchip
)中
scipy.interpolate
都可以使用。这是脚本的一个版本,
pchip
其中包含使用include创建的曲线:

import numpy as npfrom scipy.interpolate import interp1d, pchipimport matplotlib.pyplot as pltfig = plt.figure()ax = fig.add_subplot(1,1,1)ax.spines['left'].set_position('zero')ax.spines['right'].set_color('none')ax.spines['bottom'].set_position('zero')ax.spines['top'].set_color('none')ax.xaxis.set_ticks_position('bottom')ax.yaxis.set_ticks_position('left')list_points = [(-3,0.1),(-2,0.15),(0,4),(2,-6),(4,-2),(7,-0.15),(8,-0.1)](xp,yp) = zip(*list_points)fun = interp1d(xp,yp,kind='cubic')xc = np.linspace(min(xp),max(xp),300)plt.plot(xp,yp,'o',color='black',ms=5)plt.plot(xc,fun(xc))fun2 = interp1d(xp,yp,kind='linear')plt.plot(xc,fun2(xc))p = pchip(xp, yp)plt.plot(xc, p(xc), 'r', linewidth=3, alpha=0.6)plt.show()

它生成的图如下所示。

  • 黑点:原始数据
  • 绿线:线性插值
  • 蓝线:三次样条插值
  • 红线:pchip插值



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/626605.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号