当我在Matlab中对1Hz的正弦波进行积分时,为什么结果会偏移1?整数块的初始值为0。我想知道为什么会发生这种情况,以及正确的解决方法。我想到的解决方案是将初始值更改为-1,这解决了问题,但我不确定更改初始值的后果。Matlab假设积分常数为2。
nnt7mjpx1#
你在和机器一起工作!这个人不知道我们在数学中学习的简化范式(积分sin = -cos)!;)这里的Simulink只是对正弦进行数值积分。它只是从你设置的零开始。如果你把积分想象成正弦曲线下面的面积,你可以很容易地理解它的作用:积分从零开始增加,直到x=pi,其中最大斜率是正弦处于其最大值(x=pi/2)。然后,正弦变为负值,因此积分再次减小,直到在x= 2 pi处达到0,其中正弦的两个半值刚好相等。就像预期的那样。或者数学上说:sin(x)的一般反导数是-cos(x) + A。当积分的初始值被设置为零时,您得到-cos(0) + A = 0的约束,即A=1。y = -cos(x) + 1就是你看到的蓝色曲线。
sin(x)
-cos(x) + A
-cos(0) + A = 0
A=1
y = -cos(x) + 1
1条答案
按热度按时间nnt7mjpx1#
你在和机器一起工作!这个人不知道我们在数学中学习的简化范式(积分sin = -cos)!;)
这里的Simulink只是对正弦进行数值积分。它只是从你设置的零开始。如果你把积分想象成正弦曲线下面的面积,你可以很容易地理解它的作用:积分从零开始增加,直到x=pi,其中最大斜率是正弦处于其最大值(x=pi/2)。然后,正弦变为负值,因此积分再次减小,直到在x= 2 pi处达到0,其中正弦的两个半值刚好相等。就像预期的那样。
或者数学上说:
sin(x)
的一般反导数是-cos(x) + A
。当积分的初始值被设置为零时,您得到-cos(0) + A = 0
的约束,即A=1
。y = -cos(x) + 1
就是你看到的蓝色曲线。