scipy函数:simpson. 这个函数的一大功能就是可以对离散数据积分。傅立叶主题的文章了,因为离散数据积分在傅立叶计算中非常重要,而在python中能做离散数据积分的、现成的函数,也就是只有这个函数了。有一天,小胡骑车,在0秒的时候,他的速度是0m/s,在1秒的时候,他的速度是0.45m/s,,,,依次类推,小胡把他每一秒的自行车速度都记下来了。还画了一个图:

上面的图应该都很熟悉,这就是高中物理里面学习的时间-速度变化曲线图。
时间-速度变化曲线图都给我们了,其实,我们基于物理意义也就知道了:曲线下和x轴组成的面积其实就是行驶的路程。而求这个面积其实就是一个积分过程。
上方的阴影面积就是行驶的路程了。
到这里应该就大概了解了什么叫离散数据积分
时间-速度变化曲线图求总路程等。认识了离散数据求积分,那么怎么求是重点了。其实使用scipy.integrate.simpson就可以非常简单的计算出来。
simpson需要起码需要两个参数:
y:也就是因变量,比如上面的速度,对应的就是y;x:也就是自变量,比如上面的时间,对应的就是x;需要注意的是,一定不要搞反了!simpson需要的第一个参数是y,y在前和x在后!!!血的教训,因为我搞反了,导致傅立叶计算的都不对😭,找了半天bug,才发现这个错误
# 导入包
from scipy.integrate import simpson
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# 数据部分
# 数据来自于matlab doc
vel = np.array([0, 0.45, 1.79, 4.02, 7.15, 11.18, 16.09, 21.90, 29.05, 29.05,
29.05, 29.05, 29.05, 22.42, 17.9, 17.9, 17.9, 17.9, 14.34, 11.01,
8.9, 6.54, 2.03, 0.55, 0])
time = np.arange(vel.shape[0])
# 求积分部分
simpson(vel, time)
# > 344.7933333333334
y、x按照顺序传递进去就行了。scipy.integrate.simpson链接为:https://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.simpson.html#scipy.integrate.simpson傅立叶及其python应用所有的代码和数据全部都免费共享!
01开头的ipynb格式文件