FractionOrderSystem/FOTF Toolbox/fence_shadow.m

33 lines
1.2 KiB
Matlab

function fence_shadow(t,f,gam,key)
% fence_shadow - geometric interpretation of the fractional-order integrals
%
% fence_shadow(t,f,gam,key)
%
% t - the tine vector
% f - the function handle of the original function
% gam - the integral order
% key - the three types of graphs, as in Igor Podlubny's paper
% Copyright (c) Dingyu Xue, Northeastern University, China
% Last modified 28 March, 2017
% Last modified 18 May, 2022
arguments, t(1,:), f, gam(1,1) double
key(1,1) {mustBeMember(key,[1,2,3])};
end
x=t; z=f(x); tn=x(end);
switch key
case 1, y=(tn^gam-(tn-x).^gam)/gamma(1+gam);
axis([minmax(x),minmax(y),minmax(z)]), hold on
for i=1:length(x)-1, ii=[i,i,i+1,i+1]; x0=x(ii);
z0=[0 z(i:i+1) 0]; y0=[0 0 0 0]; patch(x0,y0,z0,'c')
y0=y(ii); patch(x0,y0,z0,'g')
x0=[0 0 0 0]; patch(x0,y0,z0,'r')
end, view(-37.5000,30)
case {2,3}, axis([minmax(x),minmax(z)]), hold on
for i=1:length(x)-1, x1=0:0.01:x(i+1);
tn=x1(end); y=(tn^gam-(tn-x1).^gam)/gamma(1+gam);
if key==2, plot(x1,y);
else, z=f(x1); plot(y,z,[y(end),y(end)],[z(end),0]);
end, end, end, hold off
end