10-28-2022, 11:35 AM
hello, I propose a program that calculates the fractional derivatives. Comments and corrections to the program are appreciated. Thank you very much, robmio:
DerFraz((variable)->f(variable),n,a) -->
--> where "n" is the degree of derivation, while "a" is the lower limit of the integral of the "fractional derivative of Riemann-Liouville" (see https://www.youtube.com/watch?v=2dwQUUDt...orphocular). Wolfram Mathematica 13.1 adopts "a=0".
for example, the semiderivative of x^2 corresponds to:
DerFraz((x)->x^2,1/2,0) --> (8*x*sqrt(x))/(3*pi)
and here is the reverse process:
DerFraz((x)->(8*x*sqrt(x))/(3*pi),-1/2,0) --> x^2.
DerFraz((variable)->f(variable),n,a) -->
--> where "n" is the degree of derivation, while "a" is the lower limit of the integral of the "fractional derivative of Riemann-Liouville" (see https://www.youtube.com/watch?v=2dwQUUDt...orphocular). Wolfram Mathematica 13.1 adopts "a=0".
for example, the semiderivative of x^2 corresponds to:
DerFraz((x)->x^2,1/2,0) --> (8*x*sqrt(x))/(3*pi)
and here is the reverse process:
DerFraz((x)->(8*x*sqrt(x))/(3*pi),-1/2,0) --> x^2.
Code:
#cas
DerFraz(ff,pp,aa):=
//ff --> (x)->funzione
//aa: estremo inferiore dell'intergrale;
//pp grado di derivazione
BEGIN
LOCAL kappa, fnz, uu;
uu:=lname(ff)(1);
kappa:=MAX(0,CEILING(pp));
IF type(pp)==DOM_INT AND SIGN(pp)==1 THEN
kappa:=pp+1;
fnz:=(t)->(1/Gamma(kappa-pp))*
int((t-x)^(kappa-pp-1)*ff(x),x,aa,t);
ELSE
fnz:=(t)->(1/Gamma(kappa-pp))*
int((t-x)^(kappa-pp-1)*ff(x),x,aa,t);
END;
IF SIGN(pp)==−1 THEN
RETURN subst(fnz(t),t,uu);
ELSE
IF pp==0 THEN
RETURN ff(uu);
ELSE
RETURN subst(diff(fnz(t),t,kappa),t,uu);
END;
END;
END;
#end