作业帮 > 综合 > 作业

matlab中用diff求导后的值为什么变成理论值的0.1倍了

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/08 07:44:12
matlab中用diff求导后的值为什么变成理论值的0.1倍了
比如用简单的正弦函数来看,对sin(t)求导应该是cos(t),但是用diff求导后画出的曲线d,和曲线ff相比,只有幅度不一样,而且是他的十分之一,为什么会这样呢?
程序如下:
t=1:0.1:100;
f=sin(t);
ff=cos(t);
d=diff(f);
plot(ff);
hold on;
plot(d);
是不是diff这个函数本身的问题呀
因为导数的定义是dy/dx,你这里是df/dt
你用diff(f),实际上只是求了df,还有除以自变量的微分
你这里自变量t的间隔是0.1
所以d应该等于diff(t)/0.1也就是你计算的十倍
那样就和ff一样了