微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

反向样条插值 SciPy

如何解决反向样条插值 SciPy

我有一个 X 和 Y 数据数组,我还有一个基于 X 值输出 Y 值的样条。 我需要得到一个将执行反向操作的样条,即输出超过 Y 值的 X 值。 (interpolate.splrep(y,x,s=0) 不建议)

def f(x):
    return math.sin(x)

def compare_func(func,a,b,eps):
    x_for_plot = list(np.arange(a,eps / 10))
    x = list(np.arange(a,eps))

    y_for_plot = [func(i) for i in x_for_plot]
    y = [func(i) for i in x]

    plt.plot(x_for_plot,y_for_plot,label='Orig')
    plt.scatter(x,y,label='Points',color='blue')

    spline = interpolate.splrep(x,s=0)

    y_interpolated = interpolate.splev(x_for_plot,spline,der=0)

    spline_inv = ???

    x_calc = interpolate.splev(y_interpolated,spline_inv,der=0)

    print(x_calc)
    #x_calc and x_for_plot must be equal

    plt.plot(x_for_plot,y_interpolated,label='Interpolated')

    plt.xlabel('X')
    plt.ylabel('Y')
    plt.legend()
    plt.show()

compare_func(f,-3,3,0.5)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。