我正在尝试计算以下傅立叶系数 $ \ frac {1} {s_f} \ int_0 ^ {s_f} V_ {pot}(s)\ cos(\ frac {n \ pi} {s_f} s)\ mathrm {d} s,$
其中$ V_ {pot} $是此表单的先前def函数。 我真的不知道可以使用哪种数值方法,但是我从Simpson的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
答案 0 :(得分:2)
您的任务可以通过
完成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来做到这一点。