다음은 제 코드입니다. 이 함수는 일부 x 값에서 다른 함수의 미분을 계산하는 함수입니다. 분수 차 미분 (a)에 대해서도 유효한 출력을 반환하기를 원합니다.곱해진 미분 함수의 통합
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)
내 문제는 내가 (x-z)**(n-a-1)
및 q1(the derivative of f(z))
의 곱셈이다 h1
을 통합하려는 것입니다. 내가 f(z)=z^2
을 허용하고 q1
에 대해 2*z
을 수동으로 입력하면 올바르게 작동하지만 q1
을 사용하려고하면 "표현식을 부동 상태로 변환 할 수 없습니다"라는 메시지가 나타납니다. 어떤 아이디어?
코드에 가져 오기 문을 포함시킬 수 있습니까? 나는'sp'가 SymPy이고'sc'가 SciPy이고'gamma()'함수를 어디에서 가져 왔는가? –
죄송합니다 Amit,이 처음 stackoverflow 사용하고 있습니다. 나는 물건을 분명히하기를 바란다. –