明天我正在写一个测试,我正在考虑在Matlab上做所有事情,以节省时间。
有些问题需要数据点的数值积分(点,不一定是函数)。
E.g。
C=[0 1 5 8 10 8 6 4 3 2.2 1.5 0.6 0];
我使用trapz(C)
来确定数据的积分(曲线下面的区域),并将其与我的教科书得到的数据进行比较。
通常,两者之间存在太大的差异。
是否有其他简单快速方式可以使用Matlab以数字方式集成上述数据,例如:通过使用辛普森的规则,Gauleg或spline?
我已经看了integrate()
,但这似乎只适用于函数?
答案 0 :(得分:1)
您的数据点是否间隔dx = 1?例如,如果dx是.5,则会将结果更改为2。
否则,我会指出:数据点本身,假设零宽度,将产生0的区域:要点是你的教科书必须假设它们之间有某种插值才能获得有意义的积分。如果它们是直线分段,trapz(C)应该给你正确的结果;如果你的教科书正在做其他事情(例如从平滑函数中取得的点),那么结果会有所不同就不足为奇了。