Как мне сделать числовое интегрирование вектора в MATLAB? - PullRequest
5 голосов
/ 19 мая 2010

У меня есть вектор из 358 чисел. Я хотел бы провести численное интегрирование этого вектора, но я не знаю, как работает этот вектор.

Я обнаружил, что мы можем использовать trapz или quad, но я не совсем понимаю, как интегрировать без функции.

Ответы [ 3 ]

9 голосов
/ 19 мая 2010

Если вы знаете горизонтальный интервал вашего вектора, вы можете использовать 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);
7 голосов
/ 19 мая 2010

Вам не нужно знать функцию для численного интегрирования; в этом смысл trapz и quad. Просто передайте trapz ваш вектор. Вот ссылка на документацию .

2 голосов
/ 19 мая 2010

Подумайте об интеграции, чтобы найти область под кривой, которая образована вашим вектором. Ну, это на самом деле не кривая, а многоугольная цепочка. Что делает функция TRAPZ , она находит сумму площадей каждой трапеции, образованной каждыми двумя соседними точками в векторе, и их проекцию на ось X См. Документацию по функциям, если у вас неравное расстояние между точками или если расстояние не равно единице.

Подробнее об этом методе можно прочитать, например, в Википедии .

...