难道Matlab只能对正值求导?初学MATLAB,有个函数于SIGMA的导数有关系,但我定义完DIFF,出现了?Error using ==> diffDifference order N must be a positive integer scalar.是哪里出了错呢,程序如下:for t=0:0.1:2i=i+1;tt(i)=t

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/30 17:50:10
难道Matlab只能对正值求导?初学MATLAB,有个函数于SIGMA的导数有关系,但我定义完DIFF,出现了?Error using ==> diffDifference order N must be a positive integer scalar.是哪里出了错呢,程序如下:for t=0:0.1:2i=i+1;tt(i)=t
xTNA~iE^&7M4fn@vW%* mke5&p]|Z=&i.goRJtmTRgMb$c҃b$|8:M?}ǵ=m>n3:hUf!$s7iH\ϓҭ۷$۰Vh~`HU*Ҕ~So#r"*UtMNi:HBʴ.O@PJqI вA:% ;I]$8k㰓.{Po"*Ca](^Q]0o0p+ .@x.x88ErJc}UEi)>%kn֘BRgH̒\CS&9^ >V=1/ SY6x,Oh!n^zέ>',< n5׸锏8~6 r%*]"Y]D <ғHFeMC1􆁦B<9CR8flߕGIaT2Z4_>9k 3{Ѡo

难道Matlab只能对正值求导?初学MATLAB,有个函数于SIGMA的导数有关系,但我定义完DIFF,出现了?Error using ==> diffDifference order N must be a positive integer scalar.是哪里出了错呢,程序如下:for t=0:0.1:2i=i+1;tt(i)=t
难道Matlab只能对正值求导?
初学MATLAB,有个函数于SIGMA的导数有关系,但我定义完DIFF,出现了?Error using ==> diff
Difference order N must be a positive integer scalar.
是哪里出了错呢,
程序如下:
for t=0:0.1:2
i=i+1;
tt(i)=t;
eps(i)=eps0*t;
% trial values
ep_tr=epn;
a_tr=an;
sig_tr=E*(eps(i)-ep_tr);
b_tr=-H*a_tr;
d(sig_tr)=diff(sig_tr);
f_tr=sign(d(sig_tr))*abs(sig_tr-b_tr)*sign(sig_tr-sign(sig_tr)*b_tr)-Y_0;
对sig_tr求一阶导数,错误在哪呢?
修改之后出现?Attempted to access dsig_tr(0); index must be a positive integer or logical.
又是什么问题呢?

难道Matlab只能对正值求导?初学MATLAB,有个函数于SIGMA的导数有关系,但我定义完DIFF,出现了?Error using ==> diffDifference order N must be a positive integer scalar.是哪里出了错呢,程序如下:for t=0:0.1:2i=i+1;tt(i)=t
只能求正阶导数,不能求类似-1,-2阶导数(积分),个人感觉你编程时输入项次序搞错了,可以试试help diff 命令
问题还不是一般多啊,你可以比较一下.
%clear;
%i=0; eps0=1;epn=1;an=1;E=1;H=1;Y_0=1;
for t=0:0.1:2
i=i+1;
tt(i)=t;
eps(i)=eps0*t;
end
% trial values
ep_tr=epn;
a_tr=an;
sig_tr=E*(eps-ep_tr);
b_tr=-H*a_tr;
dsig_tr=diff(sig_tr);
dsig_tr(i)=dsig_tr(i-1);
f_tr=sign(dsig_tr).*abs(sig_tr-b_tr).*sign(sig_tr-sign(sig_tr).*b_tr)-Y_0;
diff(x)求出来的值是[x2-x1 x3-x2 x4-x3 .] 按这个规律,最后会缺少一位,最简便的方法就是把最后一位向后扩展,进行运算 当然还有别的方式