我正在尝试整合正弦函数.我的目标是不仅要获得一定距离之间的区域价值,还要获得综合课程的具体价值.
实现这一目标的一种方法是使用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)
Run Code Online (Sandbox Code Playgroud)