样条函数在semilog-sp中的数值积分

2024-05-14 06:27:47 发布

您现在位置:Python中文网/ 问答频道 /正文

给定x和y数据,我想用样条曲线拟合数据,并对下面的拟合进行数值积分。使用Univariate.Spline,我得到了log10(y)x之间的良好线性拟合。然后使用Univariate.Spline.integral(bounds)对得到的样条线进行积分。我的问题是,考虑到我在半对数空间中工作,我不确定如何解释输出。在

    y = np.array([1,10,100,1000])
    x = np.array([15,16,17,18])
    x_vals = np.linspace(0,50,1000)

    plt.scatter(x,np.log10(y))
    s = interpolate.UnivariateSpline(x,np.log10(y))
    plt.plot(x_vals,s(x_vals))

    print(s.integral(15,17))

我应该用10^(s.integral(15,17)来获得积分的“真”值吗?在


Tags: 数据np对数plt线性array样条spline
1条回答
网友
1楼 · 发布于 2024-05-14 06:27:47

你可以对插值函数进行数值积分

from scipy import interpolate, integrate

def antilog_s(x):
    return 10.0**s(x)

integrate.quad(antilog_s, 15, 17)
Out[16]: (42.99515370842196, 4.773420959438774e-13)

相关问题 更多 >