用 Python 计算傅立叶系数?
Compute fourier coefficients with Python?
我正在尝试计算以下傅立叶系数
其中 V_{pot} 是此形式的前一个 def 函数。
我真的不知道我可以使用什么数值方法,但是我从scipy库的辛普森法则开始。
import numpy as np
from scipy.integrate import simps
Nf = 200
IVp = np.zeros(2*Nf)
snn = np.zeros(NP)
def f(k):
for i in range(0,NP):
sn = (i-1)*H
snn[i] = sn
return (1/SF) * np.cos(np.pi*k*sn/SF) * Vpot(sn)
for k in range(0,2*Nf):
Func = f(k)
y1 = np.array(Func,dtype=float)
I = simps(y1,snn)
我有这个错误:
IndexError: tuple index out of range
您的任务可以通过
完成
Nf = 200
s = np.linspace(0, Sf, Nf+1);
V_s = Vpot(s)
I = [ simps(s, np.cos(np.pi*k*s/Sf)*V_s ) / Sf for k in range(0,2*Nf) ]
但实际上,请研究如何通过 FFT or related methods 执行此操作。
我正在尝试计算以下傅立叶系数
其中 V_{pot} 是此形式的前一个 def 函数。
我真的不知道我可以使用什么数值方法,但是我从scipy库的辛普森法则开始。
import numpy as np
from scipy.integrate import simps
Nf = 200
IVp = np.zeros(2*Nf)
snn = np.zeros(NP)
def f(k):
for i in range(0,NP):
sn = (i-1)*H
snn[i] = sn
return (1/SF) * np.cos(np.pi*k*sn/SF) * Vpot(sn)
for k in range(0,2*Nf):
Func = f(k)
y1 = np.array(Func,dtype=float)
I = simps(y1,snn)
我有这个错误:
IndexError: tuple index out of range
您的任务可以通过
完成Nf = 200
s = np.linspace(0, Sf, Nf+1);
V_s = Vpot(s)
I = [ simps(s, np.cos(np.pi*k*s/Sf)*V_s ) / Sf for k in range(0,2*Nf) ]
但实际上,请研究如何通过 FFT or related methods 执行此操作。