Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab集成与abs_Matlab_Symbolic Math - Fatal编程技术网

Matlab集成与abs

Matlab集成与abs,matlab,symbolic-math,Matlab,Symbolic Math,在MATLAB(R2017b,在线版本)中,我在符号积分过程中发现了一个问题:尝试计算f(t)=abs(sin(t))的积分。由于f(t)总是正的,我希望[a,b]中的积分小于等于[a,b']中的积分,如果b

在MATLAB(R2017b,在线版本)中,我在符号积分过程中发现了一个问题:尝试计算
f(t)=abs(sin(t))
的积分。由于
f(t)
总是正的,我希望
[a,b]
中的积分小于等于
[a,b']
中的积分,如果
b
。但是:

int( abs(sin(t)), t, 0, pi )   -> 2 % OK
int( abs(sin(t)), t, 0, 2*pi ) -> 2 % NO (should be 4)
事实上,如果我们绘制表示从
0
x
的积分的函数,这应该是单调的,我们发现了一些不同的东西:

% for each value x(i) of x we will calculate integral from 0 to x(i)
x = 0 : pi/8 : 4*pi;
% actual computation
Z = zeros(length(x), 1);                            % create array
syms t;                                             % create symbolic variable t
calculate_int = @(n) int(abs(sin(t)), t, 0, n);     % integral function
for i = 1 : length(Z)
    Z(i) = calculate_int(x(i));
end
% plot result
figure;
plot(x, Z);
导致这个明显的非单调函数:

非符号集成没有问题:

x = 0 : 0.01 : pi;
f = abs(sin(x));
value = sum(f * 0.01) % 2

x = 0 : 0.01 : 2 * pi;
f = abs(sin(x));
value = sum(f * 0.01) % 4

这是MatlabR2017B中的一个错误。有关详细信息,请参见@horchler注释

您确定正确运行了代码吗?因为我已经尝试了你的代码,我得到的是:@TommasoBelluzzo:我可以在R2017b的桌面版本中完美地复制这一点。这似乎是R2017b特有的。我无法在R2017a和更早版本中复制该问题。看起来像个虫子。我建议你。在我的测试中,我使用了2017a,所以,总结一下,R2017b桌面有问题,但