In [2]:
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
from ipywidgets import interact
In [3]:
plt.style.use('classic')
In [4]:
def p(x,a):
if abs(x)<a:
return 1.
else:
return 0.
pulso = np.vectorize(p) #vectorizando la función pulso
Definimos 1000 puntos en el intervalo $[-\pi,\pi]$:
In [5]:
x = np.linspace(-10,10,1000)
k = np.linspace(-10,10,1000)
In [6]:
def p(a=1):
plt.figure(figsize=(12,5))
plt.subplot(1,2,1)
#fig,ej=subplots(1,2,figsize=(14,5))
plt.plot(x,pulso(x,a), lw = 2)
plt.xlim(-10,10)
plt.ylim(-.1,1.1)
plt.grid(True)
plt.xlabel(r'$x$',fontsize=15)
plt.ylabel(r'$f(x)$',fontsize=15)
plt.subplot(1,2,2)
plt.plot(k,2*(np.sin(k*a)/k), lw = 2)
plt.xlim(-10,10)
plt.grid(True)
plt.xlabel('$k$',fontsize=15)
plt.ylabel('$\\tilde{f}(k)$',fontsize=15)
In [7]:
#p(5)
#plt.savefig('fig-transformada-Fourier-pulso-cuadrado.pdf')
In [8]:
interact(p, a=(1,10))
Out[8]:
Sea $$ f(x):=e^{-\alpha x^2}, \qquad \alpha>0, $$ con transformada de Fourier $$ {\cal F}[f](k)=\sqrt{\frac{\pi}{\alpha}}e^{-k^2/(4\alpha)}. $$
In [9]:
def gaussina(alpha=1):
plt.figure(figsize=(12,5))
plt.subplot(1,2,1)
plt.plot(x,np.exp(-alpha*x**2), lw=2)
plt.xlim(-3,3)
plt.grid(True)
plt.xlabel('$x$',fontsize=15)
plt.ylabel('$f(x)$',fontsize=15)
plt.subplot(1,2,2)
plt.plot(k,np.sqrt(np.pi/alpha)*np.exp(-k**2/(4.*alpha)), lw=2)
plt.xlim(-10,10)
plt.ylim(0,2)
plt.grid(True)
plt.xlabel('$k$',fontsize=15)
plt.ylabel('$\\tilde{f}(k)$',fontsize=15)
In [10]:
interact(gaussina, alpha=(1,50))
Out[10]:
In [11]:
#gaussina(5)
#plt.savefig('fig-transformada-Fourier-gaussiana.pdf')