【发布时间】:2014-12-20 16:17:05
【问题描述】:
我正在尝试整合正弦函数。我的目标不仅是获得一定距离之间区域的价值,而且是综合课程的具体价值。
实现此目的的一种方法是使用 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)
【问题讨论】:
-
cumsum使用quad计算的积分有什么问题? -
对不起,我不明白
标签: matlab integration