Hier ist mein Code. Es ist eine Funktion, die die Ableitung einer anderen Funktion bei einem x-Wert auswertet. Ich möchte, dass es eine gültige Ausgabe auch für gebrochene Ordnung Derivate (a) zurückgibt.Integration von multiplizierten Derivatfunktionen
from scipy.special import gamma
import scipy.integrate as integrate
import sympy as sp
import scipy as sc
import math
def f(z):
return z**2
def fracdiff(f,x,a):
if a==0:
return f(x)
else:
if math.ceil(a)-a==0:
q=sp.diff(f(z),z,a)
h=q.subs(z,x)
return h
else:
n=math.ceil(a)
g1=(1/(gamma(n-a)))
q1=sp.diff(f(z),z,n)
print(q1) # showing that q1 equals 2*z
h1= lambda z:(x-z)**(n-a-1)*2*z # for z^2 the derivative is 2*z
ans=sc.integrate.quad(h1,0,x)
r=ans[0]*g1
return r
ss=fracdiff(f,1,0.5)
Mein Problem ist, dass ich h1
integrieren will, die die Vermehrung von (x-z)**(n-a-1)
und q1(the derivative of f(z))
ist. Wenn ich f(z)=z^2
lasse und manuell 2*z
für q1
einfüge, funktioniert es gut, aber wenn ich versuche, q1
zu benutzen, sagt es "kann Ausdruck nicht in Hin- und Herbewegung übersetzen". Irgendwelche Ideen warum?
Können Sie bitte auch die Importanweisungen in Ihren Code aufnehmen? Ich nehme an, 'sp 'ist SymPy,' sc 'ist SciPy und woher hast du die' gamma()' Funktion importiert? –
Sorry Amit, dies ist das erste Mal, dass ich stackoverflow benutze. Ich hoffe das klärt die Dinge. –