У меня есть вектор из 358 чисел. Я хотел бы произвести численное интегрирование этого вектора, но я не знаю функции этого.
Я обнаружил, что мы можем использовать trapz или quad, но я не совсем понимаю, как интегрироваться без этой функции.
У меня есть вектор из 358 чисел. Я хотел бы произвести численное интегрирование этого вектора, но я не знаю функции этого.
Я обнаружил, что мы можем использовать trapz или quad, но я не совсем понимаю, как интегрироваться без этой функции.
Если вы знаете горизонтальное расстояние вашего вектора, вы можете использовать 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);
Вам не нужно знать функцию для численного интегрирования; в этом суть trapz
и quad
. Просто передайте trapz
свой вектор. Вот ссылка на документацию.
Подумайте об интегрировании, чтобы найти площадь под кривой, которая образована вашим вектором. На самом деле это не кривая, а многоугольная цепочка. Что делает функция TRAPZ, она находит сумму площадей каждой трапеции образован каждые две соседние точки в вашем векторе и их проекция на ось X. См. документацию по функции, если у вас неравномерное расстояние между вашими точками или если расстояние не равно единице.
Подробнее об этом методе можно прочитать, например, в Википедии.