如何在 Octave 上绘制函数微分图?

How do I plot the graph for differentiation of a function on Octave?

我从一开始就想学习三角学。 所以我可以通过将这些作为命令来绘制曲线。

x1 = linspace(-2*pi, 2*pi)
y1 = cos(x1)
plot(x1, y1)

但是如果我尝试这样做,

x1 = linspace(-2*pi, 2*pi)
y2 = diff(cos(x1))
plot(x1, y1) 

我收到一条错误消息

error: __plt2vv__: vector lengths must match error: called from     __plt__>__plt2vv__ at line 487 column 5     __plt__>__plt2__ at line 247 column 14     __plt__ at line 112 column 18     plot at line 229 column 10

但是,我确实得到了 y2 = diff(cos(x1)) 的值,因为这个错误我无法绘制任何东西。

注:我知道sin(x)的微分是cos(x),直接用cos(x)就可以了,但是这样不行吗?

尝试了diff(cos(90))我得到了

ans = \[\](0x0)

diff 比其输入短一个元素,因为它与 [v(2)-v(1), v(3)-v(2), ...].

不同

您需要执行类似 y2 = [NaN, diff(cos(x1))]; 的操作来填充您的数组,使其与 x1 的大小相同。

请注意,这当然会导致偏移,您需要一个 central differencing 方法而不是前向差分方法(如 diff)来保持 well-aligned.