Thursday, November 24, 2011

Visualizing Wave packets

This time we used python to help visualize wave packets, and better understand the wave function.
We used a python module called pylab to graph functions.
For my program, you can select the number of harmonics and the value for sigma, and compare different arrangements at once.

from pylab import *
harmonics,sigma = zeros(5),zeros(5)

#### Variables #####
harmonics[1] = 97
sigma[1] = 1
###
harmonics[2] = 97
sigma[2] = 5
###
harmonics[3] = 97
sigma[3] = 10

###
rng = 3.14 #range of x values to plot (-rng to +rng)
#############

def gauss(number,sigma):
    """harmonics, sigma"""
    gauss_list = [] #empty array
    coeff = 1/(sqrt(2*pi)*sigma)
    for x in range(0,number):
        funcval = coeff * exp(-(float(x) -float(number-1)/2 )**2/(2 * sigma**2))
        gauss_list.append(funcval)
    print gauss_list
    return gauss_list

def sinplot(start, stop, A, harms):
    """start, stop, amplitude, harmonics"""
    loop = int()
    superpos = []
    
    for n in arange( start, stop, 0.01 ): #Create list of zeros
        superpos.append(0)
    for i in range( 0, len(harms) ):
        plot_list = []
        domain = []
        loop = 0
        for x in arange( start, stop, 0.01 ):
            funcval = A[i] * sin( harms[i] * x )
            plot_list.append( funcval )
            domain.append(x)
            
            superpos[loop] = superpos[loop] + funcval #sum of funciton values
            loop += 1

        #plot( domain, plot_list) #show each harmonic
    plot( domain, superpos )

#sinamp = gauss(harmonics, sigma)
#print sinamp
#harmonic = range(1,harmonics+1)
try:
    for i in (1,2,3,4,5):
        sinplot(-rng, rng,
                gauss( harmonics[i],sigma[i] ),
                range( 1,harmonics[i]+1 )
                )
except:
    print("Graphing...")
    show()

The program generates this
The plot shows the sum of harmonics of a wave function, with each increasing harmonic having a decreasing amplitude that varies as a gaussian function, with a specific sigma value. The blue plot has a sigma value of 1, the green plot has a sigma of 5 and the red plot has a sigma of 10. This shows that by using the right amplitudes and numbers of harmonics, the superposition of waves can model a wave packet.
We can then use this to answer some questions
 a. The graph is a straight line
b.
c. 1*L
d. 2*L
e.
f. 6.63e-34 = h
g. 6.63e-34 = h

No comments:

Post a Comment