我有一个数据列表,代表加速度。为了简单起见,我们假设这个列表是:
X = [1, 2, 3, 4, 5]
我想将此列表中的每个值积分两次(双重积分),以便我可以检索有关位置的信息。
快速提醒:位置、速度和加速度是相关的。您可以通过两次求导来找到加速度。或者,如果从加速开始,您可以积分两次。
我无法真正更改我正在使用的数据。我将来自加速度计的浮点值存储在列表中。我还了解到,积分通常需要定义一个函数,通常带有一个可以在一定时间间隔内积分的变量。
我尝试过使用该库:
import scipy.integrate as integrate
并尝试使用.quad
方法,但出现错误。
我希望得到任何有帮助的提示、想法或资源链接。
最佳答案
使用.cumtrapz
方法。 cumtrapz(X)
通过单位间距梯形法计算 X 的近似累积积分。
import scipy.integrate as it
X = [1, 2, 3, 4, 5]
velocity = it.cumtrapz(X,initial=0)
location = it.cumtrapz(velocity,initial=0)
print 'velocity: ', velocity
print 'location: ', location
输出:
velocity: [ 0. 1.5 4. 7.5 12. ]
location: [ 0. 0.75 3.5 9.25 19. ]
请注意,如果您有与加速度矢量对应的时间矢量t
,则需要使用cumtrapz(X,t)
。 Here是方法 cumtrapz
的引用。
关于python - 在 Python 中集成值列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53026955/