Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download

Companion to "Pfaffian Point Processes for Two Classes of Random Plane Partitions"

27669 views

Computation of Matrices for the TSSCPP Point Process

Consider the Pfaffian point process Xn\mathscr X_n for order-nn TSSCPP's. The code below computes the matrices MnM_n, Mn1M_n^{-1}, and KnK_n associated with the Pfaffian point process for order-nn TSSCPP's. Recall that Mn=(mi,j)i,j=δn1M_n = (m_{i,j})_{i,j = \delta}^{n-1}, where δ\delta is the residue of nn modulo 22 and where mi,j=x,y=δ2n2ϕi(x)ϕj(y)ϵ(x,y) m_{i,j} = \sum_{x,y = \delta}^{2n-2} \phi_i(x) \, \phi_j(y) \, \epsilon(x,y) for ϕk(x)=(kxk)\phi_k(x) = \binom{k}{x-k} and ϵ(x,y)=sgn(yx)\epsilon(x,y) = \operatorname{sgn}(y-x). Then the kernel Kn=(Kn(x,y))x,y=12n2K_n = (K_n(x,y))_{x,y = 1}^{2n-2} is the 4n4×4n44n-4 \times 4n-4 matrix with blocks Kn(x,y)=(i,j=δn1ϕi(x)ϕj(y)m~j,ii,j=δn1ϕi(x)(ϵϕj)(y)m~j,ii,j=δn1(ϵϕi)(x)ϕj(y)m~j,iϵ(x,y)+i,j=δn1(ϵϕi)(x)(ϵϕj)(y)m~j,i). K_n(x,y) = \begin{pmatrix} \sum_{i,j = \delta}^{n-1} \phi_i(x) \, \phi_j(y) \, \tilde m_{j,i} & \sum_{i,j = \delta}^{n-1} \phi_i(x) \, (\epsilon \phi_j)(y) \, \tilde m_{j,i} \\ \sum_{i,j = \delta}^{n-1} (\epsilon \phi_i)(x) \, \phi_j(y) \, \tilde m_{j,i} & -\epsilon(x,y) + \sum_{i,j = \delta}^{n-1} (\epsilon \phi_i)(x) \, (\epsilon \phi_j)(y) \, \tilde m_{j,i} \end{pmatrix} . Here, m~j,i\tilde m_{j,i} denotes entry (j,i)(j,i) of matrix Mn1M_n^{-1}, and (ϵϕk)(x)=z=δ2n2sgn(zx)ϕk(z). (\epsilon \phi_k)(x) = \sum_{z = \delta}^{2n-2} \operatorname{sgn}(z-x) \, \phi_k(z) . Note that for easier computation, we have the following identity for the entries of the matrix MnM_n: mi,j={x=2ij+12ji(i+jx)if i<jx=2ji+12ij(i+jx)if j<i0if i=j. m_{i,j} = \begin{cases} \sum_{x = 2i - j + 1}^{2j - i} \binom{i+j}{x} & \text{if } i < j \\ -\sum_{x = 2j - i + 1}^{2i - j} \binom{i+j}{x} & \text{if } j < i \\ 0 & \text{if } i=j . \end{cases}

1. Computing and Saving the Values ϕk(x)\phi_k(x)

Let Φ=(ϕk(x))k0,x0\Phi = (\phi_k(x))_{k \geq 0, x \geq 0} be the array containing all values ϕk(x)\phi_k(x), where kk indexes rows and xx indexes columns. Note that this array contains Pascal's triangle, since Φ=(1111211331) \Phi = \begin{pmatrix} 1 & & & & & & & \\ & 1 & 1 & & & & & \\ & & 1 & 2 & 1 & & & \\ & & & 1 & 3 & 3 & 1 \\ & & & & \ddots & & & \ddots \end{pmatrix} Let Φn=(ϕk(x))0kn1,0x2n2\Phi_n = (\phi_k(x))_{0 \leq k \leq n-1, 0 \leq x \leq 2n-2} denote the truncation of Φ\Phi. Below, we create and save the array ΦN,N=(ϕk(x))0kN1,0x2N2\Phi_{N,N} = (\phi_k(x))_{0 \leq k \leq N-1, 0 \leq x \leq 2N-2}, where NN is the index of the largest correlation kernel KNK_N we wish to compute.

def phi(x, k): return(binomial(k, x-k)) def eps(x, y): return(sgn(y-x)) def epsphi(x, k, n): delta = n % 2 return(sum(eps(y, z) * phi(z, k) for z in [delta .. n+m])) # define functions phi and epsphi print('Done')
Done
import os load('mat_to_list.sage') N = 100 Phi = Matrix(ZZ, [[phi(x, k) for x in [0 .. 2*N-2]] for k in [0 .. N-1]]) path = 'tsscpp_data/' file_name = 'Phi_{0}'.format(N) text_file = open(os.path.join(path, file_name), 'w') text_file.write(str(mat_to_list(Phi))) text_file.close() # creates a text file 'Phi_100.txt' in the directory 'tsscpp_data/' print('Done')
Done

2. Computing and Saving the Values (ϵϕk)(x)(\epsilon \phi_k)(x)

With the array ΦN\Phi_N saved, we now create arrays EΦn=((ϵϕk)(x))δkn1,1x2n2E \Phi_n = ((\epsilon \phi_k)(x))_{\delta \leq k \leq n-1, 1 \leq x \leq 2n-2}, which are needed for computation of the matrices KnK_n. Note that (ϵϕk)(x)=z=δ2n2ϵ(x,z)ϕk(z) (\epsilon \phi_k)(x) = \sum_{z = \delta}^{2n-2} \epsilon(x,z) \, \phi_k(z) Depends on the order nn of the TSSCPP point process, and that EΦn=(ϕk(z))δkn1,δz2n2(ϵ(x,z))1x2n2,δz2n2T E \Phi_n = (\phi_k(z))_{\delta \leq k \leq n-1, \delta \leq z \leq 2n-2} (\epsilon(x,z))_{1 \leq x \leq 2n-2, \delta \leq z \leq 2n-2}^T Below, we compute all arrays EΦnE \Phi_n for 1nN1 \leq n \leq N, where N=100N = 100 was chosen previously.

N = 100 Phi_text = open(os.path.join('tsscpp_data/', 'Phi_{0}'.format(N)), 'r') Phi_data = sage_eval(Phi_text.readline()) Phi = Matrix(ZZ, Phi_data) Phi_text.close() # loads phi values stored in 'Phi_100.txt' path = 'tsscpp_data/tsscpp_Epsphi' for n in [1 .. N]: delta = n % 2 Eps = Matrix(ZZ, [[eps(x, z) for z in [delta .. 2*n-2]] for x in [1 .. 2*n-2]]) Epsphi = Phi[delta:n-1+1, delta:2*n-2+1] * Eps.transpose() file_name = 'Epsphi_{0}'.format(n) text_file = open(os.path.join(path, file_name), 'w') text_file.write(str(mat_to_list(Epsphi))) text_file.close() if n % 5 == 0: print('n={0} completed'.format(n)) # creates a series of files 'Epsphi_n.txt' in the directory 'tsscpp_data/tsscpp_Epsphi' print('Done')
n=5 completed n=10 completed n=15 completed n=20 completed n=25 completed n=30 completed n=35 completed n=40 completed n=45 completed n=50 completed n=55 completed n=60 completed n=65 completed n=70 completed n=75 completed n=80 completed n=85 completed n=90 completed n=95 completed n=100 completed Done

3. Computing and Saving the Matrices MnM_n

Recall that Mn=(mi,j)i,j=δn1=(x=δ2n2y=δ2n2ϵ(x,y)ϕi(x)ϕj(y))i,j=δn1=(ϕi(x))i,x(ϵ(x,y))x,y(ϕj(y))y,j M_n = (m_{i,j})_{i,j = \delta}^{n-1} = \left( \sum_{x = \delta}^{2n-2} \sum_{y = \delta}^{2n-2} \epsilon(x,y) \, \phi_i(x) \, \phi_j(y) \right)_{i,j = \delta}^{n-1} = (\phi_i(x))_{i,x} (\epsilon(x,y))_{x,y} (\phi_j(y))_{y,j} where on the right-hand side ii and jj run from δ\delta to n1n-1, and where xx and yy run from δ\delta to 2n22n-2. We now compute and save the matrices MnM_n for 1nN1 \leq n \leq N, where N=100N = 100.

def make_M(n, eps, Phi_arr): delta = n % 2 Eps = Matrix(ZZ, [[eps(x, y) for y in [delta .. 2*n-2]] for x in [delta .. 2*n-2]]) Phi = Phi_arr[delta:n-1+1, delta:2*n-2+1] return(Phi * Eps * Phi.transpose()) # creates M_(m,n) using the function eps and the complete array of phi values Phi_arr N = 100 path = 'tsscpp_data/' file_name = 'Phi_{0}'.format(N) text_file = open(os.path.join(path, file_name), 'r') Phi_arr_data = sage_eval(text_file.readline()) Phi_arr = Matrix(ZZ, Phi_arr_data) text_file.close() # loads phi values from 'Phi_100.txt' path = 'tsscpp_data/tsscpp_M/' for n in [1 .. N]: M = make_M(n, eps, Phi_arr) file_name = 'M_{0}'.format(n) text_file = open(os.path.join(path, file_name), 'w') text_file.write(str(mat_to_list(M))) text_file.close() if n % 5 == 0: print('n={0} completed'.format(n)) print('Done')
n=5 completed n=10 completed n=15 completed n=20 completed n=25 completed n=30 completed n=35 completed n=40 completed n=45 completed n=50 completed n=55 completed n=60 completed n=65 completed n=70 completed n=75 completed n=80 completed n=85 completed n=90 completed n=95 completed n=100 completed Done

4. Computing and Saving the Matrices Mn1M_n^{-1}

By simply loading the matrices MnM_n saved in the last step, we now compute the matrices Mn1M_n^{-1} for 1nN=1001 \leq n \leq N = 100.

N = 100 for n in [1 .. N]: path = 'tsscpp_data/tsscpp_M/' file_name = 'M_{0}'.format(n) text_file = open(os.path.join(path, file_name), 'r') M_data = sage_eval(text_file.readline()) M = Matrix(ZZ, M_data) text_file.close() path = 'tsscpp_data/tsscpp_M_inv' file_name = 'M_inv_{0}'.format(n) text_file = open(os.path.join(path, file_name), 'w') text_file.write(str(mat_to_list(M.inverse()))) text_file.close() if n % 5 == 0: print('n={0} completed'.format(n)) print('Done')
n=5 completed n=10 completed n=15 completed n=20 completed n=25 completed n=30 completed n=35 completed n=40 completed n=45 completed n=50 completed n=55 completed n=60 completed n=65 completed n=70 completed n=75 completed n=80 completed n=85 completed n=90 completed n=95 completed n=100 completed Done

5. Computing and Saving the Kernels KnK_n

Our final step is to compute the kernels KnK_n for 1nN=1001 \leq n \leq N = 100. Recalling that Kn=(Kn(x,y))x,y=12n2K_n = (K_n(x,y))_{x,y = 1}^{2n-2}, we construct four separate arrays (Kn(x,y)α,β)x,y=12n2(K_n(x,y)_{\alpha, \beta})_{x,y = 1}^{2n-2}, where 1α,β21 \leq \alpha, \beta \leq 2. Notice that (Kn(x,y)1,1)x,y=12n2=(i=δn1j=δn1ϕi(x)ϕj(y)m~j,i)x,y=12n2=(ϕi(x))i,xTMnT(ϕj(y))j,y (K_n(x,y)_{1,1})_{x,y = 1}^{2n-2} = \left( \sum_{i=\delta}^{n-1} \sum_{j=\delta}^{n-1} \phi_i(x) \, \phi_j(y) \, \tilde m_{j,i} \right)_{x,y = 1}^{2n-2} = (\phi_i(x))_{i,x}^T M_n^{-T} (\phi_j(y))_{j,y} where MnTM_n^{-T} denotes the transpose of Mn1M_n^{-1}. On the right-hand side, ii and jj run from δ\delta to n1n-1, and xx and yy run from 11 to 2n22n-2. Similarly, we have (Kn(x,y)1,2)x,y=12n2=(ϕi(x))i,xTMnT((ϵϕj)(y))j,y(Kn(x,y)2,1)x,y=12n2=((ϵϕi)(x))i,xTMnT(ϕj(y))j,y(Kn(x,y)2,2)x,y=12n2=(ϵ(x,y))x,y=12n2+((ϵϕi)(x))i,xTMnT((ϵϕj)(y))j,y\begin{align*} (K_n(x,y)_{1,2})_{x,y = 1}^{2n-2} &= (\phi_i(x))_{i,x}^T M_n^{-T} ((\epsilon \phi_j)(y))_{j,y} \\ (K_n(x,y)_{2,1})_{x,y = 1}^{2n-2} &= ((\epsilon \phi_i)(x))_{i,x}^T M_n^{-T} (\phi_j(y))_{j,y} \\ (K_n(x,y)_{2,2})_{x,y = 1}^{2n-2} &= -(\epsilon(x,y))_{x,y = 1}^{2n-2} + ((\epsilon \phi_i)(x))_{i,x}^T M_n^{-T} ((\epsilon \phi_j)(y))_{j,y} \end{align*} These four arrays are then combined to form KnK_n.

def make_K(n, N): delta = n % 2 Phi_text = open(os.path.join('tsscpp_data/', 'Phi_{0}'.format(N)), 'r') Phi_data = sage_eval(Phi_text.readline()) Phi_arr = Matrix(ZZ, Phi_data) Phi = Phi_arr[delta:n-1+1, 1:2*n-2+1] Phi_text.close() Epsphi_text = open(os.path.join('tsscpp_data/tsscpp_Epsphi/', 'Epsphi_{0}'.format(n)), 'r') Epsphi_data = sage_eval(Epsphi_text.readline()) Epsphi = Matrix(ZZ, Epsphi_data) Epsphi_text.close() Eps = Matrix(ZZ, [[eps(x, y) for y in [1 .. 2*n-2]] for x in [1 .. 2*n-2]]) M_inv_text = open(os.path.join('tsscpp_data/tsscpp_M_inv/', 'M_inv_{0}'.format(n))) M_inv_data = sage_eval(M_inv_text.readline()) M_inv = Matrix(QQ, M_inv_data) M_inv_text.close() # loads values of phi, epsphi, eps, and the inverse of matrix M_n K_11 = Phi.transpose() * M_inv.transpose() * Phi K_12 = Phi.transpose() * M_inv.transpose() * Epsphi K_21 = Epsphi.transpose() * M_inv.transpose() * Phi K_22 = -Eps + Epsphi.transpose() * M_inv.transpose() * Epsphi # computes the four arrays of entries of K_n L1 = [0 .. 2*(2*n-2-1), step=2] L2 = [1 .. 2*(2*n-2-1) + 1, step=2] K = Matrix(QQ, 2*(2*n-2)) K[L1,L1] = K_11 K[L1,L2] = K_12 K[L2,L1] = K_21 K[L2,L2] = K_22 # combines the four arrays into K_n return(K) print('Done')
Done
N = 100 for n in [1 .. N]: K = make_K(n, N) K_file = open(os.path.join('tsscpp_data/tsscpp_K/', 'K_{0}').format(n), 'w') K_file.write(str(mat_to_list(K))) K_file.close() if n % 5 == 0: print('n={0} completed'.format(n)) print('Done')
n=5 completed n=10 completed n=15 completed n=20 completed n=25 completed n=30 completed n=35 completed n=40 completed n=45 completed n=50 completed n=55 completed n=60 completed n=65 completed n=70 completed n=75 completed n=80 completed n=85 completed n=90 completed n=95 completed n=100 completed Done

Loading and Viewing Matrix Data

Below, we access and print a few of the matrices MnM_n, Mn1M_n^{-1}, and KnK_n:

def retrieve_mat(name, n): if name == 'M' or name == 'M_inv' or name == 'K': mat_file = open('tsscpp_data/tsscpp_{0}/{0}_{1}'.format(name, n), 'r') mat_data = sage_eval(mat_file.readline()) mat = Matrix(QQ, mat_data) mat_file.close() return(mat) else: print("Error: first argument must be 'M', 'M_inv', or 'K'") return # reads in the matrix M_(n,m), M_inv_(n,m), or K_(n,m) print('Done')
Done
a = 2 b = 8 print('Matrices M_{0} through M_{1} are as follows:\n'.format(a, b)) for n in [a .. b]: M = retrieve_mat('M', n) print('M_{0} ='.format(n)) show(M)
Matrices M_2 through M_8 are as follows: M_2 =
(0220)\displaystyle \left(\begin{array}{rr} 0 & 2 \\ -2 & 0 \end{array}\right)
M_3 =
(0770)\displaystyle \left(\begin{array}{rr} 0 & 7 \\ -7 & 0 \end{array}\right)
M_4 =
(02482071647025816250)\displaystyle \left(\begin{array}{rrrr} 0 & 2 & 4 & 8 \\ -2 & 0 & 7 & 16 \\ -4 & -7 & 0 & 25 \\ -8 & -16 & -25 & 0 \end{array}\right)
M_5 =
(07163270256316250913263910)\displaystyle \left(\begin{array}{rrrr} 0 & 7 & 16 & 32 \\ -7 & 0 & 25 & 63 \\ -16 & -25 & 0 & 91 \\ -32 & -63 & -91 & 0 \end{array}\right)
M_6 =
(0248163220716326447025631288162509124616326391033632641282463360)\displaystyle \left(\begin{array}{rrrrrr} 0 & 2 & 4 & 8 & 16 & 32 \\ -2 & 0 & 7 & 16 & 32 & 64 \\ -4 & -7 & 0 & 25 & 63 & 128 \\ -8 & -16 & -25 & 0 & 91 & 246 \\ -16 & -32 & -63 & -91 & 0 & 336 \\ -32 & -64 & -128 & -246 & -336 & 0 \end{array}\right)
M_7 =
(0716326412870256312825616250912465113263910336957641282463360125412825651195712540)\displaystyle \left(\begin{array}{rrrrrr} 0 & 7 & 16 & 32 & 64 & 128 \\ -7 & 0 & 25 & 63 & 128 & 256 \\ -16 & -25 & 0 & 91 & 246 & 511 \\ -32 & -63 & -91 & 0 & 336 & 957 \\ -64 & -128 & -246 & -336 & 0 & 1254 \\ -128 & -256 & -511 & -957 & -1254 & 0 \end{array}\right)
M_8 =
(02481632641282071632641282564702563128256512816250912465111024163263910336957203532641282463360125437186412825651195712540471912825651210242035371847190)\displaystyle \left(\begin{array}{rrrrrrrr} 0 & 2 & 4 & 8 & 16 & 32 & 64 & 128 \\ -2 & 0 & 7 & 16 & 32 & 64 & 128 & 256 \\ -4 & -7 & 0 & 25 & 63 & 128 & 256 & 512 \\ -8 & -16 & -25 & 0 & 91 & 246 & 511 & 1024 \\ -16 & -32 & -63 & -91 & 0 & 336 & 957 & 2035 \\ -32 & -64 & -128 & -246 & -336 & 0 & 1254 & 3718 \\ -64 & -128 & -256 & -511 & -957 & -1254 & 0 & 4719 \\ -128 & -256 & -512 & -1024 & -2035 & -3718 & -4719 & 0 \end{array}\right)
a = 2 b = 8 print('Matrices M_inv_{0} through M_inv_{1} are as follows:\n'.format(a, b)) for n in [a .. b]: M_inv = retrieve_mat('M_inv', n) print('M_inv_{0} ='.format(n)) show(M_inv)
Matrices M_inv_2 through M_inv_8 are as follows: M_inv_2 =
(012120)\displaystyle \left(\begin{array}{rr} 0 & -\frac{1}{2} \\ \frac{1}{2} & 0 \end{array}\right)
M_inv_3 =
(017170)\displaystyle \left(\begin{array}{rr} 0 & -\frac{1}{7} \\ \frac{1}{7} & 0 \end{array}\right)
M_inv_4 =
(0254282116254204212218214210121162211210)\displaystyle \left(\begin{array}{rrrr} 0 & -\frac{25}{42} & \frac{8}{21} & -\frac{1}{6} \\ \frac{25}{42} & 0 & -\frac{4}{21} & \frac{2}{21} \\ -\frac{8}{21} & \frac{4}{21} & 0 & -\frac{1}{21} \\ \frac{1}{6} & -\frac{2}{21} & \frac{1}{21} & 0 \end{array}\right)
M_inv_5 =
(0733211432542973303242916429211433242907429254291642974290)\displaystyle \left(\begin{array}{rrrr} 0 & -\frac{7}{33} & \frac{21}{143} & -\frac{25}{429} \\ \frac{7}{33} & 0 & -\frac{32}{429} & \frac{16}{429} \\ -\frac{21}{143} & \frac{32}{429} & 0 & -\frac{7}{429} \\ \frac{25}{429} & -\frac{16}{429} & \frac{7}{429} & 0 \end{array}\right)
M_inv_6 =
(01752866414341349286352175286032143328185919018595143641433214301681859123185972864133281859168185905618595338492861901859123185956185902137183525143728653382137180)\displaystyle \left(\begin{array}{rrrrrr} 0 & -\frac{175}{286} & \frac{64}{143} & -\frac{4}{13} & \frac{49}{286} & -\frac{3}{52} \\ \frac{175}{286} & 0 & -\frac{32}{143} & \frac{328}{1859} & -\frac{190}{1859} & \frac{5}{143} \\ -\frac{64}{143} & \frac{32}{143} & 0 & -\frac{168}{1859} & \frac{123}{1859} & -\frac{7}{286} \\ \frac{4}{13} & -\frac{328}{1859} & \frac{168}{1859} & 0 & -\frac{56}{1859} & \frac{5}{338} \\ -\frac{49}{286} & \frac{190}{1859} & -\frac{123}{1859} & \frac{56}{1859} & 0 & -\frac{21}{3718} \\ \frac{3}{52} & -\frac{5}{143} & \frac{7}{286} & -\frac{5}{338} & \frac{21}{3718} & 0 \end{array}\right)
M_inv_7 =
(0313111957467615746172471758398313028828732482873122476441991119574628828730231574665712183484441997615746248287323157460268121834849839817247122476571218348268121834803316796175839864419944419949839833167960)\displaystyle \left(\begin{array}{rrrrrr} 0 & -\frac{3}{13} & \frac{1119}{5746} & -\frac{761}{5746} & \frac{17}{247} & -\frac{175}{8398} \\ \frac{3}{13} & 0 & -\frac{288}{2873} & \frac{248}{2873} & -\frac{12}{247} & \frac{64}{4199} \\ -\frac{1119}{5746} & \frac{288}{2873} & 0 & -\frac{231}{5746} & \frac{6571}{218348} & -\frac{44}{4199} \\ \frac{761}{5746} & -\frac{248}{2873} & \frac{231}{5746} & 0 & -\frac{2681}{218348} & \frac{49}{8398} \\ -\frac{17}{247} & \frac{12}{247} & -\frac{6571}{218348} & \frac{2681}{218348} & 0 & -\frac{33}{16796} \\ \frac{175}{8398} & -\frac{64}{4199} & \frac{44}{4199} & -\frac{49}{8398} & \frac{33}{16796} & 0 \end{array}\right)
M_inv_8 =
(021348173025839810784199319243231364621340417147627138310956713833132325054914323817417076237138371727138322323184549133233025839814762713837623713830338871383136733191246354927125547510982107841991095671383717271383338871383058033191243679927125544910982319313232232313673319124580331912401232454814613724323250549118454916354927125543679927125541232454801432086581364643233323751098249109821461371432086580)\displaystyle \left(\begin{array}{rrrrrrrr} 0 & -\frac{21}{34} & \frac{8}{17} & -\frac{3025}{8398} & \frac{1078}{4199} & -\frac{3}{19} & \frac{24}{323} & -\frac{13}{646} \\ \frac{21}{34} & 0 & -\frac{4}{17} & \frac{14762}{71383} & -\frac{10956}{71383} & \frac{31}{323} & -\frac{250}{5491} & \frac{4}{323} \\ -\frac{8}{17} & \frac{4}{17} & 0 & -\frac{7623}{71383} & \frac{7172}{71383} & -\frac{22}{323} & \frac{184}{5491} & -\frac{3}{323} \\ \frac{3025}{8398} & -\frac{14762}{71383} & \frac{7623}{71383} & 0 & -\frac{3388}{71383} & \frac{13673}{319124} & -\frac{63549}{2712554} & \frac{75}{10982} \\ -\frac{1078}{4199} & \frac{10956}{71383} & -\frac{7172}{71383} & \frac{3388}{71383} & 0 & -\frac{5803}{319124} & \frac{36799}{2712554} & -\frac{49}{10982} \\ \frac{3}{19} & -\frac{31}{323} & \frac{22}{323} & -\frac{13673}{319124} & \frac{5803}{319124} & 0 & -\frac{123}{24548} & \frac{14}{6137} \\ -\frac{24}{323} & \frac{250}{5491} & -\frac{184}{5491} & \frac{63549}{2712554} & -\frac{36799}{2712554} & \frac{123}{24548} & 0 & -\frac{143}{208658} \\ \frac{13}{646} & -\frac{4}{323} & \frac{3}{323} & -\frac{75}{10982} & \frac{49}{10982} & -\frac{14}{6137} & \frac{143}{208658} & 0 \end{array}\right)
a = 2 b = 5 print('Kernels K_{0} through K_{1} are as follows:\n'.format(a, b)) for n in [a .. b]: K = retrieve_mat('K', n) print('K_{0} ='.format(n)) show(K)
Kernels K_2 through K_5 are as follows: K_2 =
(012012120120012012120120)\displaystyle \left(\begin{array}{rrrr} 0 & \frac{1}{2} & 0 & \frac{1}{2} \\ -\frac{1}{2} & 0 & -\frac{1}{2} & 0 \\ 0 & \frac{1}{2} & 0 & \frac{1}{2} \\ -\frac{1}{2} & 0 & -\frac{1}{2} & 0 \end{array}\right)
K_3 =
(047173727017374703702717172717370472727171737047027171727272727270470470172717470271717171717027027372717274717270)\displaystyle \left(\begin{array}{rrrrrrrr} 0 & \frac{4}{7} & \frac{1}{7} & \frac{3}{7} & \frac{2}{7} & 0 & \frac{1}{7} & -\frac{3}{7} \\ -\frac{4}{7} & 0 & -\frac{3}{7} & 0 & \frac{2}{7} & \frac{1}{7} & \frac{1}{7} & -\frac{2}{7} \\ -\frac{1}{7} & \frac{3}{7} & 0 & \frac{4}{7} & \frac{2}{7} & \frac{2}{7} & \frac{1}{7} & -\frac{1}{7} \\ -\frac{3}{7} & 0 & -\frac{4}{7} & 0 & -\frac{2}{7} & -\frac{1}{7} & -\frac{1}{7} & \frac{2}{7} \\ -\frac{2}{7} & -\frac{2}{7} & -\frac{2}{7} & \frac{2}{7} & 0 & \frac{4}{7} & 0 & \frac{4}{7} \\ 0 & -\frac{1}{7} & -\frac{2}{7} & \frac{1}{7} & -\frac{4}{7} & 0 & -\frac{2}{7} & -\frac{1}{7} \\ -\frac{1}{7} & -\frac{1}{7} & -\frac{1}{7} & \frac{1}{7} & 0 & \frac{2}{7} & 0 & \frac{2}{7} \\ \frac{3}{7} & \frac{2}{7} & \frac{1}{7} & -\frac{2}{7} & -\frac{4}{7} & \frac{1}{7} & -\frac{2}{7} & 0 \end{array}\right)
K_4 =
(0254242117422711422111422754222112254201742013422211424213141211141342117420254213114212154217142121161742025420134222114242131412111413271342131342091452117422754222112114221114222191401142221114221142022114212114252111420121751412116114242154242117422211205141754213273141731427114175140120125421211421215422215141712016132211141211142211421215420160161213161312016131213160)\displaystyle \left(\begin{array}{rrrrrrrrrrrr} 0 & \frac{25}{42} & \frac{4}{21} & \frac{17}{42} & \frac{2}{7} & -\frac{1}{14} & -\frac{2}{21} & -\frac{11}{42} & -\frac{2}{7} & \frac{5}{42} & -\frac{2}{21} & \frac{1}{2} \\ -\frac{25}{42} & 0 & -\frac{17}{42} & 0 & \frac{13}{42} & \frac{2}{21} & -\frac{1}{42} & -\frac{4}{21} & -\frac{3}{14} & \frac{1}{21} & -\frac{1}{14} & \frac{1}{3} \\ -\frac{4}{21} & \frac{17}{42} & 0 & \frac{25}{42} & \frac{1}{3} & \frac{11}{42} & \frac{1}{21} & -\frac{5}{42} & -\frac{1}{7} & -\frac{1}{42} & -\frac{1}{21} & \frac{1}{6} \\ -\frac{17}{42} & 0 & -\frac{25}{42} & 0 & -\frac{13}{42} & -\frac{2}{21} & \frac{1}{42} & \frac{4}{21} & \frac{3}{14} & -\frac{1}{21} & \frac{1}{14} & -\frac{1}{3} \\ -\frac{2}{7} & -\frac{13}{42} & -\frac{1}{3} & \frac{13}{42} & 0 & \frac{9}{14} & \frac{5}{21} & \frac{17}{42} & \frac{2}{7} & -\frac{5}{42} & \frac{2}{21} & -\frac{1}{2} \\ \frac{1}{14} & -\frac{2}{21} & -\frac{11}{42} & \frac{2}{21} & -\frac{9}{14} & 0 & -\frac{11}{42} & -\frac{2}{21} & \frac{1}{14} & \frac{2}{21} & \frac{1}{42} & 0 \\ \frac{2}{21} & \frac{1}{42} & -\frac{1}{21} & -\frac{1}{42} & -\frac{5}{21} & \frac{11}{42} & 0 & \frac{1}{2} & \frac{1}{7} & \frac{5}{14} & \frac{1}{21} & \frac{1}{6} \\ \frac{11}{42} & \frac{4}{21} & \frac{5}{42} & -\frac{4}{21} & -\frac{17}{42} & \frac{2}{21} & -\frac{1}{2} & 0 & -\frac{5}{14} & -\frac{1}{7} & -\frac{5}{42} & \frac{1}{3} \\ \frac{2}{7} & \frac{3}{14} & \frac{1}{7} & -\frac{3}{14} & -\frac{2}{7} & -\frac{1}{14} & -\frac{1}{7} & \frac{5}{14} & 0 & \frac{1}{2} & 0 & \frac{1}{2} \\ -\frac{5}{42} & -\frac{1}{21} & \frac{1}{42} & \frac{1}{21} & \frac{5}{42} & -\frac{2}{21} & -\frac{5}{14} & \frac{1}{7} & -\frac{1}{2} & 0 & -\frac{1}{6} & -\frac{1}{3} \\ \frac{2}{21} & \frac{1}{14} & \frac{1}{21} & -\frac{1}{14} & -\frac{2}{21} & -\frac{1}{42} & -\frac{1}{21} & \frac{5}{42} & 0 & \frac{1}{6} & 0 & \frac{1}{6} \\ -\frac{1}{2} & -\frac{1}{3} & -\frac{1}{6} & \frac{1}{3} & \frac{1}{2} & 0 & -\frac{1}{6} & -\frac{1}{3} & -\frac{1}{2} & \frac{1}{3} & -\frac{1}{6} & 0 \end{array}\right)
K_5 =
(020337331333119429414297342929143894292514329143739100429103925429235429203301333045143344291136842973429384295395642968429674291742915242973313330203315142910942974294942919143142923429354291214381433143231431333020330451433442911368429734293842953956429684296742917429152429119429451431514294514302345143151429924297642986429824291004298332542922942941429344291094293442923010942934429384293742984293143442913314298429734291137429113451431094290244429954291494295391429204297642954291014292914368429494296842915142934429244429014942912143111744297642941429194291364298942973429191437342992429384299542914942902444299842914642928143121437143471432514338429142938429764293742914942912143244429038143714292842971429742910642929143539234295398642984295391119842938143021242928429184429742914942973956429354295642982429314314297442914642971429212429014042973935429984291004296842912143684291004294429204297642928143284292842914042905614305614310396742981436742983313376429414291214371429184429739561430141437314325429174293143174292542914295429194297143742974293542901414301414323542915242923143152429229429842910142913642947143106429149429984295614373143141430)\displaystyle \left(\begin{array}{rrrrrrrrrrrrrrrr} 0 & \frac{20}{33} & \frac{7}{33} & \frac{13}{33} & \frac{119}{429} & -\frac{41}{429} & -\frac{73}{429} & -\frac{29}{143} & -\frac{89}{429} & \frac{25}{143} & \frac{29}{143} & \frac{7}{39} & \frac{100}{429} & -\frac{10}{39} & \frac{25}{429} & -\frac{235}{429} \\ -\frac{20}{33} & 0 & -\frac{13}{33} & 0 & \frac{45}{143} & \frac{34}{429} & -\frac{1}{13} & -\frac{68}{429} & -\frac{73}{429} & \frac{38}{429} & \frac{5}{39} & \frac{56}{429} & \frac{68}{429} & -\frac{67}{429} & \frac{17}{429} & -\frac{152}{429} \\ -\frac{7}{33} & \frac{13}{33} & 0 & \frac{20}{33} & \frac{151}{429} & \frac{109}{429} & \frac{7}{429} & -\frac{49}{429} & -\frac{19}{143} & \frac{1}{429} & \frac{23}{429} & \frac{35}{429} & \frac{12}{143} & -\frac{8}{143} & \frac{3}{143} & -\frac{23}{143} \\ -\frac{13}{33} & 0 & -\frac{20}{33} & 0 & -\frac{45}{143} & -\frac{34}{429} & \frac{1}{13} & \frac{68}{429} & \frac{73}{429} & -\frac{38}{429} & -\frac{5}{39} & -\frac{56}{429} & -\frac{68}{429} & \frac{67}{429} & -\frac{17}{429} & \frac{152}{429} \\ -\frac{119}{429} & -\frac{45}{143} & -\frac{151}{429} & \frac{45}{143} & 0 & \frac{2}{3} & \frac{45}{143} & \frac{151}{429} & \frac{92}{429} & -\frac{76}{429} & -\frac{86}{429} & -\frac{82}{429} & -\frac{100}{429} & \frac{8}{33} & -\frac{25}{429} & \frac{229}{429} \\ \frac{41}{429} & -\frac{34}{429} & -\frac{109}{429} & \frac{34}{429} & -\frac{2}{3} & 0 & -\frac{109}{429} & -\frac{34}{429} & \frac{38}{429} & \frac{37}{429} & \frac{8}{429} & -\frac{3}{143} & -\frac{4}{429} & -\frac{1}{33} & -\frac{1}{429} & -\frac{8}{429} \\ \frac{73}{429} & \frac{1}{13} & -\frac{7}{429} & -\frac{1}{13} & -\frac{45}{143} & \frac{109}{429} & 0 & \frac{244}{429} & \frac{95}{429} & \frac{149}{429} & \frac{5}{39} & -\frac{1}{429} & \frac{20}{429} & -\frac{76}{429} & \frac{5}{429} & -\frac{101}{429} \\ \frac{29}{143} & \frac{68}{429} & \frac{49}{429} & -\frac{68}{429} & -\frac{151}{429} & \frac{34}{429} & -\frac{244}{429} & 0 & -\frac{149}{429} & -\frac{12}{143} & \frac{1}{11} & \frac{74}{429} & \frac{76}{429} & -\frac{41}{429} & \frac{19}{429} & -\frac{136}{429} \\ \frac{89}{429} & \frac{73}{429} & \frac{19}{143} & -\frac{73}{429} & -\frac{92}{429} & -\frac{38}{429} & -\frac{95}{429} & \frac{149}{429} & 0 & \frac{244}{429} & \frac{98}{429} & \frac{146}{429} & \frac{28}{143} & -\frac{12}{143} & \frac{7}{143} & -\frac{47}{143} \\ -\frac{25}{143} & -\frac{38}{429} & -\frac{1}{429} & \frac{38}{429} & \frac{76}{429} & -\frac{37}{429} & -\frac{149}{429} & \frac{12}{143} & -\frac{244}{429} & 0 & -\frac{38}{143} & -\frac{71}{429} & -\frac{28}{429} & \frac{71}{429} & -\frac{7}{429} & \frac{106}{429} \\ -\frac{29}{143} & -\frac{5}{39} & -\frac{23}{429} & \frac{5}{39} & \frac{86}{429} & -\frac{8}{429} & -\frac{5}{39} & -\frac{1}{11} & -\frac{98}{429} & \frac{38}{143} & 0 & \frac{212}{429} & \frac{28}{429} & \frac{184}{429} & \frac{7}{429} & \frac{149}{429} \\ -\frac{7}{39} & -\frac{56}{429} & -\frac{35}{429} & \frac{56}{429} & \frac{82}{429} & \frac{3}{143} & \frac{1}{429} & -\frac{74}{429} & -\frac{146}{429} & \frac{71}{429} & -\frac{212}{429} & 0 & -\frac{140}{429} & -\frac{7}{39} & -\frac{35}{429} & \frac{98}{429} \\ -\frac{100}{429} & -\frac{68}{429} & -\frac{12}{143} & \frac{68}{429} & \frac{100}{429} & \frac{4}{429} & -\frac{20}{429} & -\frac{76}{429} & -\frac{28}{143} & \frac{28}{429} & -\frac{28}{429} & \frac{140}{429} & 0 & \frac{56}{143} & 0 & \frac{56}{143} \\ \frac{10}{39} & \frac{67}{429} & \frac{8}{143} & -\frac{67}{429} & -\frac{8}{33} & \frac{1}{33} & \frac{76}{429} & \frac{41}{429} & \frac{12}{143} & -\frac{71}{429} & -\frac{184}{429} & \frac{7}{39} & -\frac{56}{143} & 0 & -\frac{14}{143} & -\frac{73}{143} \\ -\frac{25}{429} & -\frac{17}{429} & -\frac{3}{143} & \frac{17}{429} & \frac{25}{429} & \frac{1}{429} & -\frac{5}{429} & -\frac{19}{429} & -\frac{7}{143} & \frac{7}{429} & -\frac{7}{429} & \frac{35}{429} & 0 & \frac{14}{143} & 0 & \frac{14}{143} \\ \frac{235}{429} & \frac{152}{429} & \frac{23}{143} & -\frac{152}{429} & -\frac{229}{429} & \frac{8}{429} & \frac{101}{429} & \frac{136}{429} & \frac{47}{143} & -\frac{106}{429} & -\frac{149}{429} & -\frac{98}{429} & -\frac{56}{143} & \frac{73}{143} & -\frac{14}{143} & 0 \end{array}\right)