Как численно интегрировать векторные данные в Matlab? - PullRequest
0 голосов
/ 06 июня 2018

У меня есть векторные данные rdata и rho.Каждый из них представляет собой вектор размером 641 x 1, а rho является функцией rdata.Я хочу интегрировать rho (rdata) * 2 * pi * rdata от 0 до rmax.Однако, когда я делаю следующее, я получаю «NaN» за результат.Я настраиваю это неправильно?Есть ли лучший способ численной интеграции векторных данных в Matlab?

% turn data into function
fr = @(r)interp1(rdata,rho,r);

% integrate
h = integral(@(r)fr(r)*2*pi*r,0,35.8,'ArrayValued',true);

ОБНОВЛЕНИЕ

Я узнал о функции trapz и попробовалпосле

dens = 2*pi*rho.*rdata;
trapz(rdata,dens)

и получил значение около 2,5, что примерно на два порядка ниже, чем я ожидал.Я неправильно это реализую?rdata имеет неравномерный интервал, если это имеет значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...