【发布时间】:2022-10-18 22:53:25
【问题描述】:
from sympy import Sum,I,pi,exp,oo
from sympy.abc import k
A0 = 12
f0 = 50
def c(k):
if k%2==0:
return 2*A0/(pi * (1- k**2))
else:
return 0
def x(t):
expr1 = Sum(c(k)*exp(2*I*pi*k*f0*t),(k,-oo,oo))
return(expr1.doit())
上面的代码为 x(t) 的每个 t 返回 0,但它不应该那样做。我想要的是 A|sin2pif0t| 的傅里叶级数
【问题讨论】:
-
我怀疑
k % 2永远不会评估为0,因为k是一个符号而不是整数,所以c(k)将始终返回0 -
我同意 DrBwts。你需要的是
sympy.core.mod.Mod。你可以在这里找到它的文档:sympy.core.mod.Mod -
我尝试将 k 替换为其他变量(不是从 sympy.abc 导入的),但仍然相同。正如@DrBwts 和@Invarianz 所说,我尝试使用
sympy.core.mod.Mod,但还是一样。