сражаться с Хевисайдом - PullRequest
       6

сражаться с Хевисайдом

1 голос
/ 16 января 2020

Я уже задавал подобный вопрос, но, к сожалению, я не смог решить мою проблему. Я ищу обратное преобразование Фурье для тяжелой функции

Вольфрамальфа уже дал мне точное решение FT, но вычисленный ifft не вычисляет тот же тяжелый участок.

мой код :

import numpy as np
import matplotlib.pyplot as plt

N=1000
x=np.linspace(-10,10,N)
dx=np.abs(x[0]-x[1])
freq=np.fft.fftfreq(N,dx)

#solution:
H=-np.heaviside(5-np.abs(x),1)

#the FT of the heviside according to wolframaplha
s_x=-np.sqrt(2/np.pi)*np.sin(5*x)/x

#the ifft:
s_k=np.fft.ifft(s_x)

plt.plot(freq,(s_k),label='calc')
plt.plot(x,H,label='exact')
plt.legend()

Как видно, решение имеет симметричную форму прямоугольника, но не начинается с x = 5 и не имеет правильной амплитуды. Дополнительно указана амплитуда как в отрицательной, так и в положительной области.

...