首先,创建函数glfdiff
function dy = glfdiff(y,t,gam)
if strcmp(class(y),'function_handel')
y = y(t);
end
h = t(2)-t(1);
w = 1;
y = y(:);
t = t(:);
for j = 2:length(t)
w(j) = w(j-1)*(1-(gam+1)/(j-1));
end
for i = 1:length(t)
dy(i) = w(1:i)*[y(i:-1:1)]/h^gam;
end
其次运行函数
常数的微积分
t=0:0.01:5;
u=ones(size(t));
y1=glfdiff(u,t,0.5);
y2=glfdiff(u,t,-0.5);
plot(t,y1,'+',t,y2,'-')
正弦函数的分数阶微积分f(t)=sin(t+1)
t=0:0.01:5;
u=sin(t+1);
ww=0:0.1:1;
Y=[];%这是什么意思,设置为空吗
for w=ww,Y=[Y;glfdiff(u,t,w)];end,
plot(t,Y);figure;surf(t,ww,Y)