MATLAB Examples

Double-well Schrödinger eigenstates

Nick Trefethen, November 2010

(Chebfun Example ode-eig/DoubleWell.m)

A well-known problem in quantum mechanics is the calculation of eigenstates of a potential with the shape of a 'double well'. Specifically, consider a potential function V(x) defined on [-1,1] by

  V(x) = 1.5 for x in [-.2,.3],  0 otherwise.

We seek eigenmodes of the steady-state Shrödinger equation associated with this potential, specifically, functions u(x) satisfying

   -0.007u"(x) + V(x)*u(x) = lam*u(x),    u(-1) = u(1) = 0.

for some constant lam.

We can sketch the potential like this:

LW = 'linewidth'; hold off
plot([-1 -1 -.2 -.2 .3 .3 1 1],[3.3 0 0 1.5 1.5 0 0 3.3],'k',LW,3)
axis([-1.1 1.1 -.05 3.3]), axis off, hold on

Let's compute the first 12 eigenvalues and eigenfunctions:

tic
x = chebfun('x');
V = 1.5*(abs(x-0.05)<0.25);
L = chebop(-1,1);
L.op = @(x,u) -0.007*diff(u,2) + V.*u;
L.bc = 0;
neigs = 12;
[EV,D] = eigs(L,neigs);
disp(diag(D)), toc
    0.0915
    0.1168
    0.3639
    0.4632
    0.8089
    1.0211
    1.3908
    1.6526
    1.8712
    2.1745
    2.5332
    2.9241
Elapsed time is 3.549135 seconds.

Physicists like to plot the eigenmodes shifted up by an amount equal to the eigenvalue:

colors = [1 0 0; 0 .8 0; .9 .9 0; 0 0 1; 1 0 1; 0 .8 1];
for j = 1:neigs
  v = EV(:,j)/15; d = D(j,j);
  if max(v)<-min(v), v = -v; end
  plot(d+v,LW,2,'color',colors(1+mod(j-1,6),:))
end

There is a great deal of such physics in such pictures. The lower eigenmodes correspond to particles trapped on one side or the other, with a state function decreasing exponentially within the barrier. At higher energies the particles are not localized.