We consider the $9$-periodic potential $v = \frac{1}{\sqrt{2}}(1,1,1,0,1,1,0,1,0)$ and compute the matrices $M^{(j)}$ and $\widetilde{M}^{(j)}$ for $j\in \{0,1,\dots,8\}$ defined as \begin{align} \label{eq:M^j} \rule{5mm}{0mm}M^{(j)}&= \begin{pmatrix} -v(K-1+j)&-1\\1&0\end{pmatrix}\cdots \begin{pmatrix} -v(1+j)&-1\\1&0\end{pmatrix} \begin{pmatrix} -v(j)&-1\\1&0\end{pmatrix}\\ \label{eq:N^j} \widetilde{M}^{(j)}&= \begin{pmatrix} -v(j)&-1\\1&0\end{pmatrix} \begin{pmatrix} -v(1+j)&-1\\1&0\end{pmatrix}\cdots \begin{pmatrix} -v(K-1+j)&-1\\1&0\end{pmatrix} \,. \end{align}
Running the cell below outputs all of these matrices, and it can be checked which of these matrices are subject to the condition
\begin{equation} M_{2,1}\ne 0\qquad\text{or}\qquad |M_{1,1}|>1 \,. \end{equation}This condition is satisfied for all matrices $\widetilde{M}^{(j)}$ and the matrix $M^{(0)}$ but not for $M^{(1)}$, $M^{(6)}$ and $M^{(8)}$. Consequently, the FSM is not applicable to the two-sided infinite discrete Schrödinger operator $H$ associated to the periodic potential $v$; but it the FSM is applicable to the one-sided compression $H_+$.
from IPython.display import display, Math, Latex
def mon(v,l):
######
# Calculate the general monodromy matrix with scaling l
#
# Example:
# v = [1,1,0]; mon(v, l).expand()
# > [ l 1]
# > [l^2 - 1 l]
#
##########################
M = identity_matrix(2)
for vv in v:
M = matrix(2,2,[- l*vv, -1, 1, 0])*M
return M
def lim_pots(v):
#
# determine all unique limit potentials of a given
# periodic potential v by considering all shifts and flips
#
##########################
v_rev = deepcopy(v)
lim = shift_pots(v)
v_rev.reverse()
lim_rev = shift_pots(v_rev)
for pot in lim_rev:
if pot not in lim:
lim.append(pot)
return lim
def shift_pots(v):
#
# determine all unique shifts of a given periodic potential v
#
##########################
shift = []
for c in range(len(v)):
if v not in shift:
shift.append(v)
v = left_shift(v)
return shift
def left_shift(a):
return [*a[1:], a[0]]
##################################
#
# check the periodic potential v of Example 4.6
#
v = [1,1,1,0,1,1,0,1,0] # potential from 0 to K-1
v_list = shift_pots(v)
v_rev_list = []
for v in v_list:
v_rev = deepcopy(v)
v_rev.reverse()
v_rev_list.append(v_rev)
##############
# iterate shifts of potential for M matrices
#
for k,vv in enumerate(v_list):
M = mon(vv, 1/sqrt(2))
display(Math( r' M^{(%(idx)d)}= %(mat)s \quad \text{from potential }%(v)s'
% {'idx': k, 'mat': latex(M), 'v': latex(vv)}))
##############
# iterate shifts of reversed potential for N matrices
#
for k,vv in enumerate(v_rev_list):
M = mon(vv, 1/sqrt(2))
display(Math( r' \widetilde{M}^{(%(idx)d)}= %(mat)s \quad \text{from potential }%(v)s'
% {'idx': k, 'mat': latex(M), 'v': latex(vv)}))