编程语言
首页 > 编程语言> > python – 使用scipy执行样本的离散集成

python – 使用scipy执行样本的离散集成

作者:互联网

我想从labview移植到python.

在labview中,有一个函数“Integral x(t)VI”,它将一组样本作为输入,执行样本的离散积分,并根据Simpsons规则返回值列表(曲线下面积).

我试图在scipy中找到一个等效的函数,例如scipy.integrate.simps,但这些函数返回整个样本集合中的求和积分,作为浮点数.

如何获得积分值列表而不是积分值之和?

我只是错误地看待问题吗?

解决方法:

我想你可能会稍微错误地使用scipy.integrate.simps. scipy.integrate.simps返回的区域是y下的总面积(传递的第一个参数).第二个参数是可选的,是x轴的样本值(每个y值的实际x值).即:

>>> import numpy as np
>>> import scipy
>>> a=np.array([1,1,1,1,1])
>>> scipy.integrate.simps(a)
4.0
>>> scipy.integrate.simps(a,np.array([0,10,20,30,40]))
40.0

我想你想在不同极限之间返回相同曲线下的区域?要做到这一点,你传递你想要的曲线部分,如下所示:

>>> a=np.array([0,1,1,1,1,10,10,10,10,0])
>>> scipy.integrate.simps(a)
44.916666666666671
>>> scipy.integrate.simps(a[:5])
3.6666666666666665
>>> scipy.integrate.simps(a[5:])
36.666666666666664

标签:python,scipy,integration,integral
来源: https://codeday.me/bug/20190620/1249528.html