Как сделать интегральную трапецеидальную интеграцию в MATLAB, сохраняя начало координат в центре? - PullRequest
0 голосов
/ 07 февраля 2020

У меня есть векторы top, bottom, mid, которые я пытаюсь интегрировать с i, сохраняя начало координат с индексом 11.

i=0:0.01e-06:1.3e-06;
bottom=cumtrapz(i(11:end),b(11:end));
top=cumtrapz(i(11:end),t(11:end));
mid=cumtrapz(i(11:end),m(11:end));

bottom1=cumtrapz(i(1:11),b(1:11));
top1=cumtrapz(i(1:11),t(1:11));
mid1=cumtrapz(i(1:11),m(1:11));

figure(2)
plot([bottom1 bottom]);hold on
plot([top1 top])
plot([mid1 mid])

Тем не менее, график не выглядит гладким, и в начале координат есть внезапное изменение, которого не должно быть. Как это исправить. enter image description here

1 Ответ

1 голос
/ 07 февраля 2020

Вычисление двух отдельных интегралов не является правильным подходом. Начало координат можно отрегулировать после вычисления интегралов, сдвигая при необходимости точки пересечения осей X и Y.

i = 0:0.01e-06:1.3e-06;
t = rand(size(i));

top = cumtrapz(i,t);

plot(i-i(11), top-top(11))
xline(0)
yline(0)

enter image description here

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