给定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)
获取" true"积分值?
答案 0 :(得分:0)
您可以数值积分插值函数
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)