저는 hankel의 저자입니다. 이 경우에는 코드를 사용하지 않는 것이 좋습니다 (호출 가능한 입력 함수가 필요하며 DHT가 아닌 적분을 정확하게 계산하는 것이 목적이기 때문에 은입니다). .
입력 된 1D 배열을 보간하면됩니다. 이것은 일반적으로 꽤 잘 다음 작품 같은 당신에게 달려 있지만, 수행 방법 :
from scipy.interpolate import InterpolatedUnivariateSpline as Spline
import numpy as np
x, y = # Import/create data vectors
# Do this if y is both negative and positive
fnc = Spline(x,y, k=1) #I usually choose k=1 in case anything gets extrapolated.
# Otherwise do this
spl = Spline(np.log(x), np.log(y), k=1)
fnc = lambda x : np.exp(spl(np.log(x)))
# Continue as normal with hankel.transform(fnc, kvec)
이렇게하면 매개 변수 N
및 선택에에 큰 문제 h
같은 잘 모든 값을 근사 변환 있음 k
의 값은 kvec
입니다. kvec
이 넓은 동적 범위에 걸쳐있는 경우 변환에서 각 k
에 동일한 기본 배열 (길이가 N
)을 사용하므로 매우 낮은 효율성을 나타냅니다. 즉, 가장 어려운 값인 k
은 성능 수준을 설정합니다.
그래서 다시, 짧은 나는 hankel
권하고 싶지 않다,하지만 당신은 아무 것도 찾을 수없는 경우, 그것은 여전히 작동합니다 ;-)
는 GNU 과학 라이브러리 (GSL)이 이산을 계산 [기능을 포함
한켈 변환] (https://www.gnu.org/software/gsl/manual/html_node/Discrete-Hankel-Transforms.html#Discrete-Hankel-Transforms). [PyGSL] (http://pygsl.sourceforge.net/)은 파이썬 GSL 래퍼를 제공합니다. 설치를 시도한 이후로 잠시 기다려 왔기 때문에 내가 얼마나 어려울 지 모르겠습니다. –