Получить интегрированные векторные значения

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

Одним из способов достижения этого является использование cumtrapz. Я хочу получить тот же результат, используя интеграл или квад. Так что мне интересно, есть ли что-то вроде cumquad?

Я пытался написать что-то для себя, но это работает очень медленно и, кажется, даже хуже, чем cumtrapz. Позже я хочу интегрировать измеренные данные. Так что это не будет так просто, как синус.

Вот мой текущий код:

a = 0; b = 10;

x = a:0.1:b; 
y = 2*sin(3*x);
pp = spline(x,y);

y2=zeros(1,length(y));
y3=zeros(1,length(y));

y2(1)=integral(@(x)ppval(pp,x),x(1),x(2));
y3(1)=integral(@(x)ppval(pp,x),x(1),x(2));
for a=2:(length(y)-1)

   y2(a) = y2(a-1)+integral(@(x)ppval(pp,x),x(a-1),x(a));
   y3(a) = y3(a-1)+quad(@(x)ppval(pp,x),x(a-1),x(a));

end
y4=cumtrapz(x,y);
% y5=cumsum(y);

plot(x,y)
hold on
plot(x,y2,'-ro')
plot(x,y3,'-kx')
plot(x,y4,'g')
syms x % compare with analytical result
ya=2*sin(3*x);
ya5=int(ya)+(2/3);
ezplot(x,ya5)

Ответы на вопрос(1)

Ваш ответ на вопрос