如何在MATLAB中对矢量进行数值积分?

时间:2010-05-18 20:45:26

标签: matlab numerical-integration

我有358个数字的向量。我想对这个向量进行数值积分,但我不知道这个向量的功能。

我发现我们可以使用trapz或quad,但我真的不明白如何在没有函数的情况下进行集成。

3 个答案:

答案 0 :(得分:9)

如果您知道矢量的水平间距,则可以使用trapz来集成它而不使用该函数。例如,要将y=sin(x)从0整合到pi,包含358个部分,

x=0:pi/357:pi;
y=sin(x);
area=trapz(x,y);

如果你只使用trapz(y),你会得到一个更大的数字,因为点之间的默认距离假定为1.这个问题可以通过乘以x点之间的距离来解决:

area=pi/357*trapz(y);

答案 1 :(得分:7)

您无需了解该功能即可进行数字整合;这就是trapzquad的重点。只需传递trapz你的矢量。这是a link to the documentation

答案 2 :(得分:2)

考虑整合以找到曲线下面的区域,这是由矢量形成的。嗯它实际上不是曲线,而是多边形链。 TRAPZ函数正在做什么,它找到矢量中每两个相邻点形成的每个梯形的面积之和以及它们在X轴上的投影。如果您的点之间距离不均或距离不等于1,请参阅功能文档。

您可以阅读有关此方法的更多信息,例如Wikipedia