sympy에서 fourier_transform값이 이상하게 나옵니다.
조회수 611회
from sympy import fourier_transform, exp,symbols
from sympy.abc import x, k
a=fourier_transform(exp(-x**2), x, k)
s=symbols('s')
Ori=(s)*exp(-(x**2)/(s**2))
FT=fourier_transform(Ori,x,k)
a.subs({k:1}).evalf()
>>>9.16769605680502e-5
FT.subs({s:1,k:1}).evalf()
>>>FourierTransform(exp(-x**2), x, 1)
FT.subs({s:1,k:1}).evalf()의 값이 a.subs({k:1}).evalf()처럼 숫자로 나와야하는데 숫자가 안 나옵니다. 무엇이 잘못된 것인가요??
Ori는 x에 대한 함수이고, Ori를 k에 대하여 Fourier Transform을 했으므로 즉 FT에는 x가 정의되어 있지 않는데 FourierTransform(exp(-x**2), x, 1)에서 x가 정의되어 있는 것도 이해가 되지 않습니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
이미 답변을 드렸던 건인데...도움말을 충분히 안읽어본 모양입니다.
FourierTransform(exp(-x**2), x, 1) 이 자체는 아직 수행전인 겁니다.
명시적으로 doit 을 실행하여 수식을 얻고 그것을 평가하면 됩니다.
최대한 단계별로 끊어서 작성했으니 보고 이해했으면 합니다.
... ... FT=fourier_transform(Ori,x,k) print(a.subs({k:1}).evalf()) F = FT.subs({s:1,k:1}).evalf() print(F) F2 = F.doit() print(F2) V = F2.evalf() print(V) 9.16769605680502e-5 FourierTransform(exp(-x**2), x, 1) sqrt(pi)*exp(-pi**2) 9.16769605680502e-5
댓글 입력