# nodal lines of wave-function $\psi(x,y) = \sin 12x \sin y + (1 + \epsilon) \sin x \sin 12y$

I am trying to reproduce this figure of nodal lines of a wavefunction from this work of Berry $$\psi = \sin 2r\,x \sin y + (1 + \epsilon) \sin x \sin 2r\,y$$ Here the image. The first is $\epsilon = 0$ and the second is $\epsilon > 0$:

I produced a script to evaluate the value of sine at many points using numpy. Here is the iPython script:

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

dt = 0.005
t  = 2*np.pi*np.arange(-1,1+dt,dt)

r = 5
eps = 0

w = np.sin(2*r*t[...,None])*np.sin(t[None,...]) + (1+eps)*np.sin(t[...,None])*np.sin(2*r*t[None,...])

z = t[...,None] + t[None,...]

x, y = np.where(np.abs(w)< 0.05)

plt.plot(t[x], t[y], '.', markersize=2)


The outcome looks more like image (a) - in fact many copies of it - instead of (b).

In fact, the paper says $r = 12$ and I get this fascinating but incorrect image. While these graphics were dazzling in 1982 - any ordinary laptop computer should be able to re-create these and much more.

Here is the closes I could obtain setting $r = 6$ and changing the window. I get a very different pattern than is displayed, and my $\epsilon = 0.5$ which is quite large.

dt = 0.0005
t  = 2*np.pi*np.arange(0,0.5+dt,dt)

r = 6

eps = 0.5

w = np.sin(2*r*t[...,None])*np.sin(t[None,...]) + (1+eps)*np.sin(t[...,None])*np.sin(2*r*t[None,...])

z = t[...,None] + t[None,...]

x, y = np.where(np.abs(w)< 0.05)

plt.plot(t[x], t[y], '.', markersize=1)
plt.xlim([-0.25,3.25])
plt.ylim([-0.25,3.25])


and here is the result -- a different pattern than 33b above

• So what's your question? Your pictures looks like a pretty good reproduction. Note that these are eigenfunctions on the square $[0,\pi]^2$ (as Berry puts it, "a square with side $\pi$"), while you're plotting on the square $[-2\pi,2\pi]^2$, and that the $\varepsilon$ in Hilbert & Courant is certainly much smaller (although they don't state it, it's just "$\mu$ [their $1+\varepsilon$] sufficiently close to $1$"). – Christian Clason Oct 12 '16 at 18:58
• Using $\epsilon=0.05$ I managed to get a really close image: imgur.com/eueAjXl – nicoguaro Oct 12 '16 at 20:17

Indeed if I set r=6 or $2r=12$ and $\epsilon = 0.01$ I do get the image they produced by hand. With much narrower gaps