Вычислить коэффициенты Фурье с помощью Python? - PullRequest
0 голосов
/ 12 ноября 2018

Я пытаюсь вычислить следующие коэффициенты Фурье

enter image description here

где V_ {pot} - это предыдущая функция def этой формы. enter image description here

Я действительно не знаю, какой числовой метод я могу использовать, однако я начал с правила Симпсона для библиотеки 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

1 Ответ

0 голосов
/ 12 ноября 2018

Ваша задача может быть выполнена через

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 или связанных с ним методов .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...