Put the standard imports for Matplotlib, Numpy and the IPython widgets in the following cell.
In [1]:
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
In [2]:
from IPython.display import Image
from IPython.html.widgets import interact, interactive, fixed
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 [3]:
Image('fermidist.png')
Out[3]:
In this equation:
In the cell below, typeset this equation using LaTeX:
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 [4]:
def fermidist(energy, mu, kT):
F = 1/(np.exp((energy - mu)/kT)+1)
return F
In [5]:
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
.
In [12]:
def plot_fermidist(mu, kT):
fig, ax = plt.subplots(figsize=(15,4))
plt.plot(np.linspace(0,10.0,100),fermidist(np.linspace(0,10.0,100), mu, kT))
ax.spines['right'].set_visible(False)
ax.spines['top'].set_visible(False)
ax.yaxis.set_ticks_position('left')
ax.xaxis.set_ticks_position('bottom')
plt.xlim(0,10);
plt.ylim(0,1.2);
plt.title('Fermidistribution as a Function of Energy');
plt.xlabel('Energy Levels');
plt.ylabel('Fermidistribution');
plt.tick_params(axis='y', direction='inout', length=5)
plt.tick_params(axis='x', direction='inout', length=8)
In [11]:
plot_fermidist(4.0, 1.0);
In [8]:
assert True # leave this for grading the plot_fermidist function
Use interact
with plot_fermidist
to explore the distribution:
mu
use a floating point slider over the range $[0.0,5.0]$.kT
use a floating point slider over the range $[0.1,10.0]$.
In [9]:
interact(plot_fermidist,mu=(0.0,5.0),kT=(0.1,10.0));
Provide complete sentence answers to the following questions in the cell below:
Use LaTeX to typeset any mathematical symbols in your answer.
When the temperature kT is low the particles are not very distributed. They are occupying very close energy levels.
When the temperature kT is high the particles become nearly evenly distrubuted. Across a large range of energy levels.
When the chemical potential $\mu$ is increased the line shifts upwards and to the right, in order to allow for a higher area under neath the curve. If kT is low and mu is increased, you can see that increasing mu lets higher energy level states be more accessible.
The chemical potential is related to how closely packed the particles are, so as the chemical potential energy, $\mu$, is increased, the number of particles increases.