How do I do numerical integration of a vector in MATLAB?

后端 未结 3 576
时光说笑
时光说笑 2020-12-17 03:54

I have a vector of 358 numbers. I\'d like to make a numerical integration of this vector, but I don\'t know the function of this one.

I found that we can use trapz o

相关标签:
3条回答
  • 2020-12-17 04:07

    You don't need to know the function in order to numerically integrate; that's the point of trapz and quad. Just pass trapz your vector. Here's a link to the documentation.

    0 讨论(0)
  • 2020-12-17 04:17

    Think about integration as to find area under the curve, which is formed by your vector. Well it's not actually a curve, but polygonal chain. What TRAPZ function is doing, it finds sum of areas of each trapezoids formed by every two neighbor points in your vector and their projection on X axis. See the function documentation, if you have uneven distance between your points or if distance not equal one.

    You can read more about this method, for example, on Wikipedia.

    0 讨论(0)
  • 2020-12-17 04:22

    If you know the horizontal spacing of your vector, you can use trapz in order to integrate it without the function. For example, to integrate y=sin(x) from 0 to pi with 358 sections,

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

    If you just use trapz(y), you'll get a much larger number, since the default distance between points is assumed to be 1. This problem can be fixed by multiplying by the distance between x points:

    area=pi/357*trapz(y);
    
    0 讨论(0)
提交回复
热议问题