Как численно вычислить инверсию характеристической функции e ^ (- t ^ 2/2) с помощью numpy.fft.ifft - PullRequest
0 голосов
/ 07 ноября 2019

В основном я хочу сделать следующее:

t = np.linspace(-5, 5, 100)

y = np.exp(-(t**2)/2)

p = numpy.fft.ffti(y)

x = ?

Я не знаком с числовыми преобразованиями Фурье, поэтому я не знаю, каким значениям x соответствуют вычисленные значения плотности вероятности, и яЯ также не уверен, что константа (если таковая имеется) мне нужно умножить значения р, когда я строю их против х. Я не нашел доступной документации, чтобы быть полезным.

1 Ответ

0 голосов
/ 09 ноября 2019

Это только для того, чтобы вы пошли. Я использовал прямое преобразование, поскольку ваша независимая переменная выглядела как время (t).

import numpy as np
import matplotlib.pyplot as p
%matplotlib inline

t = np.linspace(-5, 5, 100)   #presumed to be time
y = np.exp(-(t**2)/2)
p.subplot(121)
p.plot(t,y)
p.subplot(122)
f = np.fft.fftshift(np.fft.fft(y))
freq = np.fft.fftshift(np.fft.fftfreq(100, d=t[1]-t[0]))
p.plot(freq,np.abs(f))

enter image description here

...