%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
Aliasing The code below plots sine waves of a given frequency, along with their representation on a grid with m points. Try changing p and notice how for m<2p the function looks identical to that for 2(m+1)−p due to aliasing.
from matplotlib import animation
import matplotlib.pyplot as plt
from clawpack.visclaw.JSAnimation import IPython_display
fig = plt.figure()
ax = plt.axes(xlim=(0, 1), ylim=(-1.2, 1.2))
m=20
x=np.linspace(0,1,m+2); # grid
xf=np.linspace(0,1,1000) # fine grid
line1, = ax.plot([],[], '-r', lw=2)
line2, = ax.plot([],[],'o-',lw=2)
def fplot(p):
line1.set_data(xf, np.sin(p*np.pi*xf))
line2.set_data(x,np.sin(p*np.pi*x))
ax.set_title('p='+str(p))
return line2,
anim = animation.FuncAnimation(fig, fplot, frames=range(0,44))
IPython_display.display_animation(anim, show_buttons=True)
Try to answer the questions below with pencil and paper; then check them by modifying the code above.