【问题标题】:scipy interpolate gives unbounded valuescipy interpolate 给出了无限的价值
【发布时间】:2017-09-18 03:30:19
【问题描述】:

我有一个数据集data[xi,yi,zi] 我想绘制(带有插值)。使用 scipy.interpolate,一切看起来都近乎完美,但是插值生成的一些值超出了输入数据的范围。例如假设zi0 < zi < 1 绑定,rbf 插值似乎返回的插值超出了边界(例如>1);这是我的简化尝试:

N=100
data=[xi yi zi]
xis = np.linspace(xi.min(), xi.max(), N)
yis = np.linspace(yi.min(), yi.max(), N)
XI, YI =  np.meshgrid(xis,yis)
rbf = scipy.interpolate.Rbf(xi, yi, zi, function='linear')
ZI=rbf(XI,YI)
print ZI.max()
->1.01357328514

有没有办法将限制传递给 Rbf 并让它知道不要超过 zi.max() 和 zi.min() ?

【问题讨论】:

  • 你能提供一个可重现的例子吗? data=[xi yi zi] 没有帮助
  • 抱歉,发完帖就去睡觉了。您的以下解决方案效果很好@Michelle,谢谢。

标签: python numpy matplotlib scipy


【解决方案1】:

使用径向基函数进行插值可能会导致值高于给定数据值的最大值和低于最小值。 (Illustration)。这是该方法的数学特征,不能传入禁用它的选项。两种可能的解决方案:

【讨论】:

    猜你喜欢
    • 2018-09-16
    • 2015-07-17
    • 2016-10-02
    • 2021-12-31
    • 2019-04-01
    • 1970-01-01
    • 2021-12-01
    • 2018-11-05
    • 2016-04-02
    相关资源
    最近更新 更多