matlab求导后作图
t=[0:pi/20:2*pi]y=atan((3*sin(pi*t))/4)a=diff(y)plot(t,a)它老是说我Vectorsmustbethesamelen...
t=[0:pi/20:2*pi]
y=atan((3*sin(pi*t))/4)
a=diff(y)
plot(t,a)
它老是说我Vectors must be the same lengths.
画不出 展开
y=atan((3*sin(pi*t))/4)
a=diff(y)
plot(t,a)
它老是说我Vectors must be the same lengths.
画不出 展开
展开全部
利用diff求差分之后,得到的数列总比原来的数列的长度减少一
因为是后一个数减去前一个数
diff(y) 相当于y(2:end)-y(1:end-1)
而你的t是和原来的y一样长的,而a=diff(y)的长度比y少一
随意,t和a的长度不一致,报错
你可以再生成一个tt,让它等于原来t相邻两点的中点
那么tt就会和a长度相等,就可以画图
还有一点要注意,导数是dy/dx,
差分计算的时候只是计算了dy而没有除以dx
这正获得导数的图像,需要给dy的结果除以t的增量
t=[0:pi/20:2*pi];
y=atan((3*sin(pi*t))/4);
a=diff(y)/(pi/20);
tt=(t(2:end)+t(1:end-1))/2;
plot(tt,a)
因为是后一个数减去前一个数
diff(y) 相当于y(2:end)-y(1:end-1)
而你的t是和原来的y一样长的,而a=diff(y)的长度比y少一
随意,t和a的长度不一致,报错
你可以再生成一个tt,让它等于原来t相邻两点的中点
那么tt就会和a长度相等,就可以画图
还有一点要注意,导数是dy/dx,
差分计算的时候只是计算了dy而没有除以dx
这正获得导数的图像,需要给dy的结果除以t的增量
t=[0:pi/20:2*pi];
y=atan((3*sin(pi*t))/4);
a=diff(y)/(pi/20);
tt=(t(2:end)+t(1:end-1))/2;
plot(tt,a)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询