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 SPP Point Process in B(n,n,n)B(n,n,n)

Consider the Pfaffian point process Yn,m\mathscr Y_{n,m} for symmetric plane partitions fitting in B(n,n,m)B(n,n,m). The code below constructs the matrices Mn,mM_{n,m}, Mn,m1M_{n,m}^{-1}, and Kn,mK_{n,m} associated with this process, in the special case m=nm = n. We note, however, that the code can be adapted to other choices of nn and mm. Recall that Mn,m=(mi,j)i,j=δnM_{n,m} = (m_{i,j})_{i,j = \delta}^{n}, where δ\delta is the residue of n+1n+1 modulo 22, and where mi,j=x=δn+my=δn+mϵ(x,y)ϕi(x)ϕj(y). m_{i,j} = \sum_{x = \delta}^{n+m} \sum_{y = \delta}^{n+m} \epsilon(x,y) \, \phi_i(x) \, \phi_j(y) . Here, we set ϵ(x,y)=sgn(yx)\epsilon(x,y) = \operatorname{sgn}(y-x) and ϕk(y)={(y1yk)if k>0δ0(y)if k=0. \phi_k(y) = \begin{cases} \binom{y-1}{y-k} & \text{if } k>0 \\ \delta_0(y) & \text{if } k=0 . \end{cases} Define the matrix Kn,m=(Kn,m(x,y))x,y=1n+mK_{n,m} = (K_{n,m}(x,y))_{x,y = 1}^{n+m}, where the matrix blocks Kn,m(x,y)K_{n,m}(x,y) are given by Kn,m(x,y)=(i,j=δnϕi(x)ϕj(y)m~j,ii,j=δnϕi(x)(ϵϕj)(y)m~j,ii,j=δn(ϵϕi)(x)ϕj(y)m~j,iϵ(x,y)+i,j=δn(ϵϕi)(x)(ϵϕj)(y)m~j,i). K_{n,m}(x,y) = \begin{pmatrix} \sum_{i,j = \delta}^{n} \phi_i(x) \, \phi_j(y) \, \tilde m_{j,i} & \sum_{i,j = \delta}^{n} \phi_i(x) \, (\epsilon \phi_j)(y) \, \tilde m_{j,i} \\ \sum_{i,j = \delta}^{n} (\epsilon \phi_i)(x) \, \phi_j(y) \, \tilde m_{j,i} & -\epsilon(x,y) + \sum_{i,j = \delta}^{n} (\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 Mn,m1M_{n,m}^{-1}, and (ϵϕk)(y)=z=δn+mϵ(y,z)ϕk(z). (\epsilon \phi_k)(y) = \sum_{z = \delta}^{n+m} \epsilon(y,z) \, \phi_k(z) .

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

Let Φ=(ϕk(y))k0,y0\Phi = (\phi_k(y))_{k \geq 0, y \geq 0} be the array containing all values ϕk(y)\phi_k(y), where kk indexes rows and yy indexes columns. Note that this array contains Pascal's triangle: Φ=(1111111234136141). \Phi = \begin{pmatrix} 1 & & & & & & \\ & 1 & 1 & 1 & 1 & 1 & \cdots \\ & & 1 & 2 & 3 & 4 & \cdots \\ & & & 1 & 3 & 6 & \cdots \\ & & & & 1 & 4 & \cdots \\ & & & & & 1 & \cdots \\ & & & & & & \ddots \end{pmatrix} . Let Φn,m=(ϕk(y))0kn,0yn+m\Phi_{n,m} = (\phi_k(y))_{0 \leq k \leq n, 0 \leq y \leq n+m} denote a truncation of Φ\Phi. Below, we create and save the array ΦN,N=(ϕk(y))0kN,0y2N\Phi_{N,N} = (\phi_k(y))_{0 \leq k \leq N, 0 \leq y \leq 2N}, where NN is the index of the largest correlation kernel KN,NK_{N,N} we wish to compute.

def phi(y, k): if k == 0 and y == 0: return(1) elif k == 0 and y != 0: return(0) else: return(binomial(y-1, y-k)) def eps(x, y): return(sgn(y-x)) def epsphi(y, k, n, m): delta = (n+1) % 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 n = N m = N Phi = Matrix(ZZ, [[phi(x, k) for x in [0 .. n+m]] for k in [0 .. n]]) path = 'spp_data/' file_name = 'Phi_({0},{1})'.format(n, n+m) 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,100).txt' in the directory 'spp_data/' print('Done')
Done

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

With the array ΦN,N\Phi_{N,N} saved, we now create arrays EΦn,m=((ϵϕk)(y))δkn,1yn+mE \Phi_{n,m} = ((\epsilon \phi_k)(y))_{\delta \leq k \leq n, 1 \leq y \leq n+m}, which are needed for computation of the matrices Kn,mK_{n,m}. Note that (ϵϕk)(y)=z=δm+nϵ(y,z)ϕk(z) (\epsilon \phi_k)(y) = \sum_{z = \delta}^{m+n} \epsilon(y,z) \, \phi_k(z) Depends on the dimensions mm and nn of the SPP point process, and that EΦn,m=(ϕk(z))δkn,δzn+m(ϵ(y,z))1yn+m,δzn+mT E \Phi_{n,m} = (\phi_k(z))_{\delta \leq k \leq n, \delta \leq z \leq n+m} (\epsilon(y,z))_{1 \leq y \leq n+m, \delta \leq z \leq n+m}^T Below, we compute all arrays EΦn,mE \Phi_{n,m} for 1n,mN1 \leq n,m \leq N, where N=100N = 100 was chosen previously. Note that only the arrays EΦn,nE \Phi_{n,n} will be needed in computing the kernels Kn,nK_{n,n}.

N = 100 Phi_text = open(os.path.join('spp_data/', 'Phi_({0},{1})'.format(n, n+m)), 'r') Phi_data = sage_eval(Phi_text.readline()) Phi = Matrix(ZZ, Phi_data) Phi_text.close() # loads phi values stored in 'Phi_(100,100).txt' path = 'spp_data/spp_Epsphi' for n in [1 .. N]: delta = (n+1) % 2 for m in [1 .. N]: Eps = Matrix(ZZ, [[eps(y, z) for z in [delta .. n+m]] for y in [1 .. n+m]]) Epsphi = Phi[delta:n+1, delta:n+m+1] * Eps.transpose() file_name = 'Epsphi_({0},{1})'.format(n, m) 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,m).txt' in the directory 'spp_data/spp_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 Mn,nM_{n,n}

Recall that Mm,n=(mi,j)i,j=δn=(x=δn+my=δn+mϵ(x,y)ϕi(x)ϕj(y))i,j=δn=(ϕi(x))i,x(ϵ(x,y))x,y(ϕj(y))y,j. M_{m,n} = (m_{i,j})_{i,j = \delta}^n = \left( \sum_{x = \delta}^{n+m} \sum_{y = \delta}^{n+m} \epsilon(x,y) \, \phi_i(x) \, \phi_j(y) \right)_{i,j = \delta}^n = (\phi_i(x))_{i,x} (\epsilon(x,y))_{x,y} (\phi_j(y))_{y,j} . Note that on the right-hand side, ii and jj run from δ\delta to nn, and where xx and yy run from δ\delta to n+mn+m. We now compute and save the matrices Mn,nM_{n,n} for 1nN=1001 \leq n \leq N = 100.

def make_M(n, m, eps, Phi_arr): delta = (n+1) % 2 Eps = Matrix(ZZ, [[eps(x, y) for y in [delta .. n+m]] for x in [delta .. n+m]]) Phi = Phi_arr[delta:n+1, delta:n+m+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 n = N m = N path = 'spp_data/' file_name = 'Phi_({0},{1})'.format(n, n+m) 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,100).txt' path = 'spp_data/spp_M/' for n in [1 .. N]: M = make_M(n, n, eps, Phi_arr) file_name = 'M_({0},{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 Mn,n1M_{n,n}^{-1}

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

N = 100 for n in [1 .. N]: path = 'spp_data/spp_M/' file_name = 'M_({0},{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 = 'spp_data/spp_M_inv' file_name = 'M_inv_({0},{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 Kn,nK_{n,n}

Our final step is to compute the kernels Kn,nK_{n,n} for 1nN=1001 \leq n \leq N = 100. Recalling that Kn,n=(Kn,n(x,y))x,y=1n+mK_{n,n} = (K_{n,n}(x,y))_{x,y = 1}^{n+m}, we construct four separate arrays (Kn,n(x,y)α,β)x,y=1n+m(K_{n,n}(x,y)_{\alpha, \beta})_{x,y = 1}^{n+m}, where 1α,β21 \leq \alpha, \beta \leq 2. Notice that (Kn,n(x,y)1,1)x,y=1n+m=(i=δnj=δnϕi(x)ϕj(y)m~j,i)x,y=1n+m=(ϕi(x))i,xTMn,mT(ϕj(y))j,y (K_{n,n}(x,y)_{1,1})_{x,y = 1}^{n+m} = \left( \sum_{i=\delta}^{n} \sum_{j=\delta}^{n} \phi_i(x) \, \phi_j(y) \, \tilde m_{j,i} \right)_{x,y = 1}^{n+m} = (\phi_i(x))_{i,x}^T M_{n,m}^{-T} (\phi_j(y))_{j,y} where Mn,mTM_{n,m}^{-T} denotes the transpose of Mn,m1M_{n,m}^{-1}. On the right-hand side, ii and jj run from δ\delta to nn, and xx and yy run from 11 to n+mn+m. Similarly, we have (Kn,n(x,y)1,2)x,y=1n+m=(ϕi(x))i,xTMn,mT((ϵϕj)(y))j,y(Kn,n(x,y)2,1)x,y=1n+m=((ϵϕi)(x))i,xTMn,mT(ϕj(y))j,y(Kn,n(x,y)2,2)x,y=1n+m=(ϵ(x,y))x,y=1n+m+((ϵϕi)(x))i,xTMn,mT((ϵϕj)(y))j,y\begin{align*} (K_{n,n}(x,y)_{1,2})_{x,y = 1}^{n+m} &= (\phi_i(x))_{i,x}^T M_{n,m}^{-T} ((\epsilon \phi_j)(y))_{j,y} \\ (K_{n,n}(x,y)_{2,1})_{x,y = 1}^{n+m} &= ((\epsilon \phi_i)(x))_{i,x}^T M_{n,m}^{-T} (\phi_j(y))_{j,y} \\ (K_{n,n}(x,y)_{2,2})_{x,y = 1}^{n+m} &= -(\epsilon(x,y))_{x,y = 1}^{n+m} + ((\epsilon \phi_i)(x))_{i,x}^T M_{n,m}^{-T} ((\epsilon \phi_j)(y))_{j,y} \end{align*} These four arrays are then combined to form Kn,nK_{n,n}.

def make_K(n, m, N): delta = (n+1) % 2 Phi_text = open(os.path.join('spp_data/', 'Phi_({0},{1})'.format(N, N+N)), 'r') Phi_data = sage_eval(Phi_text.readline()) Phi_arr = Matrix(ZZ, Phi_data) Phi = Phi_arr[delta:n+1, 1:n+m+1] Phi_text.close() Epsphi_text = open(os.path.join('spp_data/spp_Epsphi/', 'Epsphi_({0},{1})'.format(n, m)), '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 .. n+m]] for x in [1 .. n+m]]) M_inv_text = open(os.path.join('spp_data/spp_M_inv/', 'M_inv_({0},{1})'.format(n, m))) 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,m) 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,m) L1 = [0 .. 2*(n+m-1), step=2] L2 = [1 .. 2*(n+m-1) + 1, step=2] K = Matrix(QQ, 2*(n+m)) 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,m) return(K) print('Done')
Done
N = 100 for n in [1 .. N]: K = make_K(n, n, N) K_file = open(os.path.join('spp_data/spp_K/', 'K_({0},{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 Mn,nM_{n,n}, Mn,n1M_{n,n}^{-1}, and Kn,nK_{n,n}:

def retrieve_mat(name, n, m): if name == 'M' or name == 'M_inv' or name == 'K': mat_file = open('spp_data/spp_{0}/{0}_({1},{2})'.format(name, n, m), '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 = 1 b = 7 print('Matrices M_({0},{0}) through M_({1},{1}) are as follows:\n'.format(a, b)) for n in [a .. b]: M = retrieve_mat('M', n, n) print('M_({0},{0}) ='.format(n)) show(M)
Matrices M_(1,1) through M_(7,7) are as follows: M_(1,1) =
(0220)\displaystyle \left(\begin{array}{rr} 0 & 2 \\ -2 & 0 \end{array}\right)
M_(2,2) =
(010100)\displaystyle \left(\begin{array}{rr} 0 & 10 \\ -10 & 0 \end{array}\right)
M_(3,3) =
(06152060357015350772070770)\displaystyle \left(\begin{array}{rrrr} 0 & 6 & 15 & 20 \\ -6 & 0 & 35 & 70 \\ -15 & -35 & 0 & 77 \\ -20 & -70 & -77 & 0 \end{array}\right)
M_(4,4) =
(08425237884037879825237807263787987260)\displaystyle \left(\begin{array}{rrrr} 0 & 84 & 252 & 378 \\ -84 & 0 & 378 & 798 \\ -252 & -378 & 0 & 726 \\ -378 & -798 & -726 & 0 \end{array}\right)
M_(5,5) =
(010451202102521001656601386184845165012543696574212066012540442294382101386369644220766725218485742943876670)\displaystyle \left(\begin{array}{rrrrrr} 0 & 10 & 45 & 120 & 210 & 252 \\ -10 & 0 & 165 & 660 & 1386 & 1848 \\ -45 & -165 & 0 & 1254 & 3696 & 5742 \\ -120 & -660 & -1254 & 0 & 4422 & 9438 \\ -210 & -1386 & -3696 & -4422 & 0 & 7667 \\ -252 & -1848 & -5742 & -9438 & -7667 & 0 \end{array}\right)
M_(6,6) =
(028614303861686485802860328912441257403517814303289018447523388222538611244118447054197115687686425740523385419708707485803517882225115687870740)\displaystyle \left(\begin{array}{rrrrrr} 0 & 286 & 1430 & 3861 & 6864 & 8580 \\ -286 & 0 & 3289 & 12441 & 25740 & 35178 \\ -1430 & -3289 & 0 & 18447 & 52338 & 82225 \\ -3861 & -12441 & -18447 & 0 & 54197 & 115687 \\ -6864 & -25740 & -52338 & -54197 & 0 & 87074 \\ -8580 & -35178 & -82225 & -115687 & -87074 & 0 \end{array}\right)
M_(7,7) =
(014913641001200230033432140455273090092002032175386109145507371340348794515444019662536427307371060203213070429715593164100190093403460203026812573387611563112002200208794521307026812506863871460758300332175154440429715733876686387010404053432386101966255931641156311146075810404050)\displaystyle \left(\begin{array}{rrrrrrrr} 0 & 14 & 91 & 364 & 1001 & 2002 & 3003 & 3432 \\ -14 & 0 & 455 & 2730 & 9009 & 20020 & 32175 & 38610 \\ -91 & -455 & 0 & 7371 & 34034 & 87945 & 154440 & 196625 \\ -364 & -2730 & -7371 & 0 & 60203 & 213070 & 429715 & 593164 \\ -1001 & -9009 & -34034 & -60203 & 0 & 268125 & 733876 & 1156311 \\ -2002 & -20020 & -87945 & -213070 & -268125 & 0 & 686387 & 1460758 \\ -3003 & -32175 & -154440 & -429715 & -733876 & -686387 & 0 & 1040405 \\ -3432 & -38610 & -196625 & -593164 & -1156311 & -1460758 & -1040405 & 0 \end{array}\right)
a = 1 b = 7 print('Matrices M_inv_({0},{0}) through M_inv_({1},{1}) are as follows:\n'.format(a, b)) for n in [a .. b]: M_inv = retrieve_mat('M_inv', n, n) print('M_inv_({0},{0}) ='.format(n)) show(M_inv)
Matrices M_inv_(1,1) through M_inv_(7,7) are as follows: M_inv_(1,1) =
(012120)\displaystyle \left(\begin{array}{rr} 0 & -\frac{1}{2} \\ \frac{1}{2} & 0 \end{array}\right)
M_inv_(2,2) =
(01101100)\displaystyle \left(\begin{array}{rr} 0 & -\frac{1}{10} \\ \frac{1}{10} & 0 \end{array}\right)
M_inv_(3,3) =
(01116585161116052815112585280356516151123560)\displaystyle \left(\begin{array}{rrrr} 0 & -\frac{11}{16} & \frac{5}{8} & -\frac{5}{16} \\ \frac{11}{16} & 0 & -\frac{5}{28} & \frac{15}{112} \\ -\frac{5}{8} & \frac{5}{28} & 0 & -\frac{3}{56} \\ \frac{5}{16} & -\frac{15}{112} & \frac{3}{56} & 0 \end{array}\right)
M_inv_(4,4) =
(01142196632211420322111196632201333221111330)\displaystyle \left(\begin{array}{rrrr} 0 & -\frac{11}{42} & \frac{19}{66} & -\frac{3}{22} \\ \frac{11}{42} & 0 & -\frac{3}{22} & \frac{1}{11} \\ -\frac{19}{66} & \frac{3}{22} & 0 & -\frac{1}{33} \\ \frac{3}{22} & -\frac{1}{11} & \frac{1}{33} & 0 \end{array}\right)
M_inv_(5,5) =
(0131612932916316131603971144213945767832288285228813971144017216864295114412511442932213945761721686401514335572916783228829511441514305286316285228812511443557252860)\displaystyle \left(\begin{array}{rrrrrr} 0 & -\frac{13}{16} & 1 & -\frac{29}{32} & \frac{9}{16} & -\frac{3}{16} \\ \frac{13}{16} & 0 & -\frac{397}{1144} & \frac{2139}{4576} & -\frac{783}{2288} & \frac{285}{2288} \\ -1 & \frac{397}{1144} & 0 & -\frac{1721}{6864} & \frac{295}{1144} & -\frac{125}{1144} \\ \frac{29}{32} & -\frac{2139}{4576} & \frac{1721}{6864} & 0 & -\frac{15}{143} & \frac{35}{572} \\ -\frac{9}{16} & \frac{783}{2288} & -\frac{295}{1144} & \frac{15}{143} & 0 & -\frac{5}{286} \\ \frac{3}{16} & -\frac{285}{2288} & \frac{125}{1144} & -\frac{35}{572} & \frac{5}{286} & 0 \end{array}\right)
M_inv_(6,6) =
(0418397241620243117528679221958844183972401917486295187305884252211620243119174862057724314922137442175286951875772431035442922179221305884492213544209884958842522137442922198840)\displaystyle \left(\begin{array}{rrrrrr} 0 & -\frac{4183}{9724} & \frac{1620}{2431} & -\frac{175}{286} & \frac{79}{221} & -\frac{95}{884} \\ \frac{4183}{9724} & 0 & -\frac{1917}{4862} & \frac{95}{187} & -\frac{305}{884} & \frac{25}{221} \\ -\frac{1620}{2431} & \frac{1917}{4862} & 0 & -\frac{577}{2431} & \frac{49}{221} & -\frac{37}{442} \\ \frac{175}{286} & -\frac{95}{187} & \frac{577}{2431} & 0 & -\frac{35}{442} & \frac{9}{221} \\ -\frac{79}{221} & \frac{305}{884} & -\frac{49}{221} & \frac{35}{442} & 0 & -\frac{9}{884} \\ \frac{95}{884} & -\frac{25}{221} & \frac{37}{442} & -\frac{9}{221} & \frac{9}{884} & 0 \end{array}\right)
M_inv_(7,7) =
(0113712808296401931281181211281433201431280113712800262815168018116120672028493040144639206720358931033603703741344082964026281516800754701134368028295333592098129913436804081103361309121601931281811612067207547011343680029425671847014713436883932584099331033601182849304028295333592029425671840145676718423731292018930401211281446392067209812991343680701471343681456767184018932306932584014332035893103360408110336839325840237312920189323007712920143128037037413440130912160993310336018930406932584077129200)\displaystyle \left(\begin{array}{rrrrrrrr} 0 & -\frac{1137}{1280} & \frac{829}{640} & -\frac{193}{128} & \frac{11}{8} & -\frac{121}{128} & \frac{143}{320} & -\frac{143}{1280} \\ \frac{1137}{1280} & 0 & -\frac{26281}{51680} & \frac{181161}{206720} & -\frac{2849}{3040} & \frac{144639}{206720} & -\frac{35893}{103360} & \frac{37037}{413440} \\ -\frac{829}{640} & \frac{26281}{51680} & 0 & -\frac{754701}{1343680} & \frac{282953}{335920} & -\frac{981299}{1343680} & \frac{4081}{10336} & -\frac{1309}{12160} \\ \frac{193}{128} & -\frac{181161}{206720} & \frac{754701}{1343680} & 0 & -\frac{29425}{67184} & \frac{70147}{134368} & -\frac{8393}{25840} & \frac{9933}{103360} \\ -\frac{11}{8} & \frac{2849}{3040} & -\frac{282953}{335920} & \frac{29425}{67184} & 0 & -\frac{14567}{67184} & \frac{2373}{12920} & -\frac{189}{3040} \\ \frac{121}{128} & -\frac{144639}{206720} & \frac{981299}{1343680} & -\frac{70147}{134368} & \frac{14567}{67184} & 0 & -\frac{189}{3230} & \frac{693}{25840} \\ -\frac{143}{320} & \frac{35893}{103360} & -\frac{4081}{10336} & \frac{8393}{25840} & -\frac{2373}{12920} & \frac{189}{3230} & 0 & -\frac{77}{12920} \\ \frac{143}{1280} & -\frac{37037}{413440} & \frac{1309}{12160} & -\frac{9933}{103360} & \frac{189}{3040} & -\frac{693}{25840} & \frac{77}{12920} & 0 \end{array}\right)
a = 1 b = 4 print('Kernels K_({0},{0}) through K_({1},{1}) are as follows:\n'.format(a, b)) for n in [a .. b]: K = retrieve_mat('K', n, n) print('K_{{{0},{0}}} ='.format(n)) show(K)
Kernels K_(1,1) through K_(4,4) are as follows: K_{1,1} =
(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_{2,2} =
(035110121515310310350310110015310110110310025110310150121102503103101515150110310025110310151531031025012110310310151511012035310110015310110350)\displaystyle \left(\begin{array}{rrrrrrrr} 0 & \frac{3}{5} & \frac{1}{10} & \frac{1}{2} & \frac{1}{5} & \frac{1}{5} & \frac{3}{10} & -\frac{3}{10} \\ -\frac{3}{5} & 0 & -\frac{3}{10} & -\frac{1}{10} & 0 & \frac{1}{5} & \frac{3}{10} & -\frac{1}{10} \\ -\frac{1}{10} & \frac{3}{10} & 0 & \frac{2}{5} & \frac{1}{10} & \frac{3}{10} & \frac{1}{5} & 0 \\ -\frac{1}{2} & \frac{1}{10} & -\frac{2}{5} & 0 & -\frac{3}{10} & -\frac{3}{10} & -\frac{1}{5} & \frac{1}{5} \\ -\frac{1}{5} & 0 & -\frac{1}{10} & \frac{3}{10} & 0 & \frac{2}{5} & \frac{1}{10} & \frac{3}{10} \\ -\frac{1}{5} & -\frac{1}{5} & -\frac{3}{10} & \frac{3}{10} & -\frac{2}{5} & 0 & -\frac{1}{2} & -\frac{1}{10} \\ -\frac{3}{10} & -\frac{3}{10} & -\frac{1}{5} & \frac{1}{5} & -\frac{1}{10} & \frac{1}{2} & 0 & \frac{3}{5} \\ \frac{3}{10} & \frac{1}{10} & 0 & -\frac{1}{5} & -\frac{3}{10} & \frac{1}{10} & -\frac{3}{5} & 0 \end{array}\right)
K_{3,3} =
(011165285711225112328151121455633112255627112111602711211431121713112031121727112114528271120471121111292813112328356116556311257112114471120331122715112171163143311217251123112111123311201128114928131121511215112131123281792827112809282732817140151121311213112151121149280112811112331122511231121403281792827112809282732817556311235611613112328111129280471125282711233112171163141511217331122747112057112114255627112556331121511214251123285285711201116271121143112171311203112172711211411160)\displaystyle \left(\begin{array}{rrrrrrrrrrrr} 0 & \frac{11}{16} & \frac{5}{28} & \frac{57}{112} & \frac{25}{112} & \frac{3}{28} & \frac{15}{112} & -\frac{1}{4} & -\frac{5}{56} & -\frac{33}{112} & -\frac{25}{56} & \frac{27}{112} \\ -\frac{11}{16} & 0 & -\frac{27}{112} & -\frac{1}{14} & \frac{3}{112} & \frac{1}{7} & \frac{13}{112} & 0 & \frac{3}{112} & -\frac{1}{7} & -\frac{27}{112} & \frac{1}{14} \\ -\frac{5}{28} & \frac{27}{112} & 0 & \frac{47}{112} & \frac{11}{112} & \frac{9}{28} & \frac{13}{112} & \frac{3}{28} & \frac{3}{56} & -\frac{1}{16} & -\frac{5}{56} & -\frac{3}{112} \\ -\frac{57}{112} & \frac{1}{14} & -\frac{47}{112} & 0 & -\frac{33}{112} & -\frac{2}{7} & -\frac{15}{112} & \frac{1}{7} & \frac{1}{16} & \frac{3}{14} & \frac{33}{112} & -\frac{1}{7} \\ -\frac{25}{112} & -\frac{3}{112} & -\frac{11}{112} & \frac{33}{112} & 0 & \frac{11}{28} & \frac{1}{14} & \frac{9}{28} & \frac{13}{112} & \frac{15}{112} & \frac{15}{112} & -\frac{13}{112} \\ -\frac{3}{28} & -\frac{1}{7} & -\frac{9}{28} & \frac{2}{7} & -\frac{11}{28} & 0 & -\frac{9}{28} & -\frac{2}{7} & -\frac{3}{28} & \frac{1}{7} & \frac{1}{4} & 0 \\ -\frac{15}{112} & -\frac{13}{112} & -\frac{13}{112} & \frac{15}{112} & -\frac{1}{14} & \frac{9}{28} & 0 & \frac{11}{28} & \frac{11}{112} & \frac{33}{112} & \frac{25}{112} & -\frac{3}{112} \\ \frac{1}{4} & 0 & -\frac{3}{28} & -\frac{1}{7} & -\frac{9}{28} & \frac{2}{7} & -\frac{11}{28} & 0 & -\frac{9}{28} & -\frac{2}{7} & -\frac{3}{28} & \frac{1}{7} \\ \frac{5}{56} & -\frac{3}{112} & -\frac{3}{56} & -\frac{1}{16} & -\frac{13}{112} & \frac{3}{28} & -\frac{11}{112} & \frac{9}{28} & 0 & \frac{47}{112} & \frac{5}{28} & \frac{27}{112} \\ \frac{33}{112} & \frac{1}{7} & \frac{1}{16} & -\frac{3}{14} & -\frac{15}{112} & -\frac{1}{7} & -\frac{33}{112} & \frac{2}{7} & -\frac{47}{112} & 0 & -\frac{57}{112} & -\frac{1}{14} \\ \frac{25}{56} & \frac{27}{112} & \frac{5}{56} & -\frac{33}{112} & -\frac{15}{112} & -\frac{1}{4} & -\frac{25}{112} & \frac{3}{28} & -\frac{5}{28} & \frac{57}{112} & 0 & \frac{11}{16} \\ -\frac{27}{112} & -\frac{1}{14} & \frac{3}{112} & \frac{1}{7} & \frac{13}{112} & 0 & \frac{3}{112} & -\frac{1}{7} & -\frac{27}{112} & \frac{1}{14} & -\frac{11}{16} & 0 \end{array}\right)
K_{4,4} =
(02533114222946210946214629154137462312311777954625423154531543766136625330136612212276656616601115661661227661366122114213660106231171542366534621915491542346217722125462134623154122229462122106231013946237154151547346256683462173771346297462531547661094621221715413946209523137462511545346232241462314621771795462566146276623663715495231045154137462151544346231462191542213775421669154566534621515437462451540862313746245154534621515491545663123101374621661915473462511541374628623104515415546232243462234628346217771113123109154566534621515437462451540862313746245154534621515491545661777111234628346232243462451541554628623105115413746219154734621374621669546256617717414623146253462322374625115409523117154139462109462122542166221377314621915415154434624515413746295231023663715414627663154122254621346217722191542346253462191541715423660106231114213665315476613462974621737756683462151547346213946237154106231022946212237661366315453154954625423123117779154137462109462146211422294620253313661221227665661660111566166122766136612225330)\displaystyle \left(\begin{array}{rrrrrrrrrrrrrrrr} 0 & \frac{25}{33} & \frac{11}{42} & \frac{229}{462} & \frac{109}{462} & -\frac{1}{462} & \frac{9}{154} & -\frac{137}{462} & -\frac{31}{231} & -\frac{17}{77} & -\frac{95}{462} & \frac{5}{42} & -\frac{3}{154} & \frac{53}{154} & \frac{37}{66} & -\frac{13}{66} \\ -\frac{25}{33} & 0 & -\frac{13}{66} & -\frac{1}{22} & \frac{1}{22} & \frac{7}{66} & \frac{5}{66} & -\frac{1}{66} & 0 & -\frac{1}{11} & -\frac{5}{66} & -\frac{1}{66} & -\frac{1}{22} & \frac{7}{66} & \frac{13}{66} & -\frac{1}{22} \\ -\frac{11}{42} & \frac{13}{66} & 0 & \frac{106}{231} & \frac{17}{154} & \frac{23}{66} & \frac{53}{462} & \frac{19}{154} & \frac{9}{154} & -\frac{23}{462} & -\frac{1}{77} & -\frac{2}{21} & -\frac{25}{462} & -\frac{13}{462} & -\frac{3}{154} & \frac{1}{22} \\ -\frac{229}{462} & \frac{1}{22} & -\frac{106}{231} & 0 & -\frac{139}{462} & -\frac{37}{154} & -\frac{15}{154} & \frac{73}{462} & \frac{5}{66} & \frac{83}{462} & \frac{1}{7} & -\frac{3}{77} & \frac{13}{462} & -\frac{97}{462} & -\frac{53}{154} & \frac{7}{66} \\ -\frac{109}{462} & -\frac{1}{22} & -\frac{17}{154} & \frac{139}{462} & 0 & \frac{95}{231} & \frac{37}{462} & \frac{51}{154} & \frac{53}{462} & \frac{3}{22} & \frac{41}{462} & -\frac{31}{462} & -\frac{1}{77} & -\frac{1}{7} & -\frac{95}{462} & \frac{5}{66} \\ \frac{1}{462} & -\frac{7}{66} & -\frac{23}{66} & \frac{37}{154} & -\frac{95}{231} & 0 & -\frac{45}{154} & -\frac{137}{462} & -\frac{15}{154} & \frac{43}{462} & \frac{31}{462} & \frac{19}{154} & \frac{2}{21} & -\frac{3}{77} & -\frac{5}{42} & -\frac{1}{66} \\ -\frac{9}{154} & -\frac{5}{66} & -\frac{53}{462} & \frac{15}{154} & -\frac{37}{462} & \frac{45}{154} & 0 & \frac{86}{231} & \frac{37}{462} & \frac{45}{154} & \frac{53}{462} & \frac{15}{154} & \frac{9}{154} & -\frac{5}{66} & -\frac{31}{231} & 0 \\ \frac{137}{462} & \frac{1}{66} & -\frac{19}{154} & -\frac{73}{462} & -\frac{51}{154} & \frac{137}{462} & -\frac{86}{231} & 0 & -\frac{45}{154} & -\frac{155}{462} & -\frac{3}{22} & \frac{43}{462} & \frac{23}{462} & \frac{83}{462} & \frac{17}{77} & -\frac{1}{11} \\ \frac{31}{231} & 0 & -\frac{9}{154} & -\frac{5}{66} & -\frac{53}{462} & \frac{15}{154} & -\frac{37}{462} & \frac{45}{154} & 0 & \frac{86}{231} & \frac{37}{462} & \frac{45}{154} & \frac{53}{462} & \frac{15}{154} & \frac{9}{154} & -\frac{5}{66} \\ \frac{17}{77} & \frac{1}{11} & \frac{23}{462} & -\frac{83}{462} & -\frac{3}{22} & -\frac{43}{462} & -\frac{45}{154} & \frac{155}{462} & -\frac{86}{231} & 0 & -\frac{51}{154} & -\frac{137}{462} & -\frac{19}{154} & \frac{73}{462} & \frac{137}{462} & -\frac{1}{66} \\ \frac{95}{462} & \frac{5}{66} & \frac{1}{77} & -\frac{1}{7} & -\frac{41}{462} & -\frac{31}{462} & -\frac{53}{462} & \frac{3}{22} & -\frac{37}{462} & \frac{51}{154} & 0 & \frac{95}{231} & \frac{17}{154} & \frac{139}{462} & \frac{109}{462} & -\frac{1}{22} \\ -\frac{5}{42} & \frac{1}{66} & \frac{2}{21} & \frac{3}{77} & \frac{31}{462} & -\frac{19}{154} & -\frac{15}{154} & -\frac{43}{462} & -\frac{45}{154} & \frac{137}{462} & -\frac{95}{231} & 0 & -\frac{23}{66} & -\frac{37}{154} & \frac{1}{462} & \frac{7}{66} \\ \frac{3}{154} & \frac{1}{22} & \frac{25}{462} & -\frac{13}{462} & \frac{1}{77} & -\frac{2}{21} & -\frac{9}{154} & -\frac{23}{462} & -\frac{53}{462} & \frac{19}{154} & -\frac{17}{154} & \frac{23}{66} & 0 & \frac{106}{231} & \frac{11}{42} & \frac{13}{66} \\ -\frac{53}{154} & -\frac{7}{66} & \frac{13}{462} & \frac{97}{462} & \frac{1}{7} & \frac{3}{77} & \frac{5}{66} & -\frac{83}{462} & -\frac{15}{154} & -\frac{73}{462} & -\frac{139}{462} & \frac{37}{154} & -\frac{106}{231} & 0 & -\frac{229}{462} & -\frac{1}{22} \\ -\frac{37}{66} & -\frac{13}{66} & \frac{3}{154} & \frac{53}{154} & \frac{95}{462} & \frac{5}{42} & \frac{31}{231} & -\frac{17}{77} & -\frac{9}{154} & -\frac{137}{462} & -\frac{109}{462} & -\frac{1}{462} & -\frac{11}{42} & \frac{229}{462} & 0 & \frac{25}{33} \\ \frac{13}{66} & \frac{1}{22} & -\frac{1}{22} & -\frac{7}{66} & -\frac{5}{66} & \frac{1}{66} & 0 & \frac{1}{11} & \frac{5}{66} & \frac{1}{66} & \frac{1}{22} & -\frac{7}{66} & -\frac{13}{66} & \frac{1}{22} & -\frac{25}{33} & 0 \end{array}\right)