Interact Exercise 6

Imports

Put the standard imports for Matplotlib, Numpy and the IPython widgets in the following cell.



In [4]:

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




In [5]:

from IPython.display import Image
from IPython.html.widgets import interact, interactive, fixed



Exploring the Fermi distribution

In quantum statistics, the Fermi-Dirac distribution is related to the probability that a particle will be in a quantum state with energy $\epsilon$. The equation for the distribution $F(\epsilon)$ is:



In [6]:

Image('fermidist.png')




Out[6]:



In this equation:

• $\epsilon$ is the single particle energy.
• $\mu$ is the chemical potential, which is related to the total number of particles.
• $k$ is the Boltzmann constant.
• $T$ is the temperature in Kelvin.

In the cell below, typeset this equation using LaTeX:

\begin{equation*} F(\epsilon) = \frac{1}{e^{(\epsilon-\mu)/kT}+1} \end{equation*}

Define a function fermidist(energy, mu, kT) that computes the distribution function for a given value of energy, chemical potential mu and temperature kT. Note here, kT is a single variable with units of energy. Make sure your function works with an array and don't use any for or while loops in your code.



In [47]:

def fermidist(energy, mu, kT):
exp = (energy-mu)/kT
F = 1/((np.exp(exp))+1)
if type(energy) or type (mu) or typle(kT) == np.array:
return np.array(F)
else:
return F




In [48]:

assert np.allclose(fermidist(0.5, 1.0, 10.0), 0.51249739648421033)
assert np.allclose(fermidist(np.linspace(0.0,1.0,10), 1.0, 10.0),
np.array([ 0.52497919,  0.5222076 ,  0.51943465,  0.5166605 ,  0.51388532,
0.51110928,  0.50833256,  0.50555533,  0.50277775,  0.5       ]))



Write a function plot_fermidist(mu, kT) that plots the Fermi distribution $F(\epsilon)$ as a function of $\epsilon$ as a line plot for the parameters mu and kT.

• Use enegies over the range $[0,10.0]$ and a suitable number of points.
• Choose an appropriate x and y limit for your visualization.
• Label your x and y axis and the overall visualization.
• Customize your plot in 3 other ways to make it effective and beautiful.


In [49]:

def plot_fermidist(mu, kT):
#plt.figure(figsize = (15,5))
plt.plot(energy,fermidist)
#plt.ylabel('Fermidist Distribution')
#plt.xlabel('Energy')
#plt.title('Distribution vs. Energy')
#plt.grid(True)
#plt.box(True)
#plt.xlim(0,10.0,100);
#plt.ylim(0,10)
#axis = plt.gca()
#axis.spines['top'].set_visible(False)
#axis.spines['right'].set_visible(False)
#axis.get_xaxis().tick_bottom()
#axis.get_yaxis().tick_left();




In [50]:

plot_fermidist(4.0, 1.0)




---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-50-1786d649bc0a> in <module>()
----> 1 plot_fermidist(4.0, 1.0)

<ipython-input-49-455923f5f9da> in plot_fermidist(mu, kT)
1 def plot_fermidist(mu, kT):
2     #plt.figure(figsize = (15,5))
----> 3     plt.plot(energy,fermidist)
4     #plt.ylabel('Fermidist Distribution')
5     #plt.xlabel('Energy')

NameError: name 'energy' is not defined




In [35]:

assert True # leave this for grading the plot_fermidist function



Use interact with plot_fermidist to explore the distribution:

• For mu use a floating point slider over the range $[0.0,5.0]$.
• for kT use a floating point slider over the range $[0.1,10.0]$.


In [51]:

#interact(plot_fermidist , mu = (0.0,5.0))
#interact(plot_fermidist , kT = (0.1,10.0));



Provide complete sentence answers to the following questions in the cell below:

• What happens when the temperature $kT$ is low?
• What happens when the temperature $kT$ is high?
• What is the effect of changing the chemical potential $\mu$?
• The number of particles in the system are related to the area under this curve. How does the chemical potential affect the number of particles.