Finite Markov Chains and Orthogonal Polynomials
Author
Manuel Mañas
Title
Finite Markov Chains and Orthogonal Polynomials
Description
This notebook provides instructions to compute the associated stochastic matrix, steady state, and expected return times using the corresponding hypergeometric expressions for these families of orthogonal polynomials
Category
Academic Articles & Supplements
Keywords
hypergeometric series, Jacobi matrices, recursion matrix, Markov chains, stochastic matrices, classes, recurrence, stationary states, ergodicity, expected return times, Hahn, Laguerre, Meixner, Jacobi
URL
http://www.notebookarchive.org/2023-07-cf7w96a/
DOI
https://notebookarchive.org/2023-07-cf7w96a
Date Added
2023-07-27
Date Last Modified
2023-07-27
File Size
161.18 kilobytes
Supplements
Rights
CC BY 4.0



This file contains supplementary data for Amílcar Branquinho, Juan EF Díaz, Ana Foulquié-Moreno, Manuel Mañas, “Finite Markov chains and multiple orthogonal polynomials.” https://arxiv.org/abs/2308.00182.
Finite Markov Chains and Orthogonal Polynomials
Finite Markov Chains and Orthogonal Polynomials
Amílcar Branquinho, Juan E. F. Díaz, Ana Foulquié-Moreno & Manuel Mañas
This code implements the whole process described in the following associated paper to get tridiagonal stochastic matrices from the recurrence matrices of seven families of orthogonal polynomials (Hahn, Jacobi-Piñeiro, Meixner, Kravchuk, Laguerre, Charlier and Hermite). As well as their corresponding stochastic bidiagonal factorizations and steady states.
ABSTRACT:
This paper investigates stochastic finite matrices and the corresponding finite Markov chains constructed
using recurrence matrices for general families of orthogonal polynomials and multiple orthogonal polynomials. The paper explores the spectral theory of transition matrices, utilizing both orthogonal and multiple orthogonal polynomials.Several properties are derived, including classes, periodicity, recurrence, stationary states, ergodicity, expected recurrence times, time-reversed chains and reversibility. Furthermore, the paper uncovers factorization in terms of pure birth and pure death processes. The case study focuses on hypergeometric orthogonal polynomials, where all the computations can be carried out effectively. Particularly within the Askey scheme, all descendants under Hahn (excluding Bessel), such as Hahn, Jacobi, Meixner, Kravchuk, Laguerre,Charlier and Hermite, present interesting examples of recurrent reversible birth and death finite Markov chains. Additionally, the paper considers multiple orthogonal polynomials including multiple Hahn, Jacobi-Piñeiro, Laguerre
of the first kind and Meixner of the second kind, along with their hypergeometric representations and
derives the corresponding recurrent finite Markov chains and time-reversed chains.
This paper investigates stochastic finite matrices and the corresponding finite Markov chains constructed
using recurrence matrices for general families of orthogonal polynomials and multiple orthogonal polynomials. The paper explores the spectral theory of transition matrices, utilizing both orthogonal and multiple orthogonal polynomials.Several properties are derived, including classes, periodicity, recurrence, stationary states, ergodicity, expected recurrence times, time-reversed chains and reversibility. Furthermore, the paper uncovers factorization in terms of pure birth and pure death processes. The case study focuses on hypergeometric orthogonal polynomials, where all the computations can be carried out effectively. Particularly within the Askey scheme, all descendants under Hahn (excluding Bessel), such as Hahn, Jacobi, Meixner, Kravchuk, Laguerre,Charlier and Hermite, present interesting examples of recurrent reversible birth and death finite Markov chains. Additionally, the paper considers multiple orthogonal polynomials including multiple Hahn, Jacobi-Piñeiro, Laguerre
of the first kind and Meixner of the second kind, along with their hypergeometric representations and
derives the corresponding recurrent finite Markov chains and time-reversed chains.
In[]:=
(**************************************************************************************************)
In[]:=
(**************************************INSTRUCTIONS*************************************************)
In[]:=
(**************************************************************************************************)
In[]:=
In[]:=
(*FIRSTOFALL,EVALUATEALLTHECELLS*)
In[]:=
In[]:=
(*Then,herecomesasummaryofthecommandstogetthestochasticmatrices,theirrespectivebidiagonalfactorizationsandthesteadystatesforthesevenfamilies.Let'sremindfirstallthesefamiliesandtheirpossiblechoiceofparameters*)
In[]:=
(*HAHN:a,b>-1;N=0,1,2...*)
In[]:=
(*JACOBI-PIÑEIRO:a,b>-1*)
In[]:=
(*MEIXNER:b>0;0<c<1*)
In[]:=
(*KRAVCHUK:0<p<1;N=0,1,2...*)
In[]:=
(*LAGUERRE:a>-1*)
In[]:=
(*CHARLIER:b>0*)
In[]:=
(*HERMITE:Therearenoparameters*)
In[]:=
In[]:=
(*StochasticMatrixofsizemcorrespondingtotheHahn/Jacobi-Piñeiro/Meixner/Kravchuk/Laguerre/Charlier/Hermitepolynomials*)
In[]:=
(*PHahn[m,a,b,N]/PJP[m,a,b]/PMeixner[m,b,c]/PKravchuk[m,p,N]/PLaguerre[m,a]/PCharlier[m,b]/PHermite[m]*)
In[]:=
In[]:=
(*LowerBidiagonalStochasticMatrixofsizemcorrespondingtotheHahn/Jacobi-Piñeiro/Meixner/Kravchuk/Laguerre/Charlierpolynomials*)(*PiHahn[m,a,b,N]/PiJP[m,a,b]/PiMeixner[m,b,c]/PiKravchuk[m,p,N]/PiLaguerre[m,a]/PiCharlier[m,b]*)
In[]:=
In[]:=
(*UpperBidiagonalStochasticMatrixofsizemcorrespondingtotheHahn/Jacobi-Piñeiro/Meixner/Kravchuk/Laguerre/Charlierpolynomials*)(*UpsilonHahn[m,a,b,N]/UpsilonJP[m,a,b]/UpsilonMeixner[m,b,c]/UpsilonKravchuk[m,p,N]/UpsilonLaguerre[m,a]/UpsilonCharlier[m,b]*)
In[]:=
In[]:=
(*SteadyStateofthetridiagonalstochasticmatrixofsizemcorrespondingtoHahn/Jacobi-Piñeiro/Meixner/Kravchuk/Laguerre/Charlier/Hermitepolynomials*)(*SteadyHahn[m,a,b,N]/SteadyJP[m,a,b]/SteadyMeixner[m,b,c]/SteadyKravchuk[m,p,N]/SteadyLaguerre[m,a]/SteadyCharlier[m,b]/SteadyHermite[m]*)
In[]:=
(*ExpectedReturnTimesforthemstatesoftheMarkovchainassociatedtothetridiagonalstochasticmatrixcorrespondingtotheHahn/Jacobi-Piñeiro/Meixner/Kravchuk/Laguerre/Charlier/Hermitepolynomials*)(*ReturnTimesHahn[m,a,b,N]/ReturnTimesJP[m,a,b]/ReturnTimesMeixner[m,b,c]/ReturnTimesKravchuk[m,p,N]/ReturnTimesLaguerre[m,a]/ReturnTimesCharlier[m,b]/ReturnTimesHermite[m]*)
(*Togetamatrixformat,implementtheinstruction//MatrixFormafterthematrix.Example:PHahn[5,0.4,1,10]//MatrixForm.IMPORTANT:BecarefulsincethisinstructiondoesNOTallowtodooperationswiththematrices.*)
In[]:=
(*Nowwestartwiththecode.Thereadercanchoosetoskipitandgodirectlytotheend.Alltheinstructionswillberepeatedagainattheend.*)
In[]:=
In[]:=
(*************************************************************************************************)
In[]:=
(*************************************************************************************************)
In[]:=
(*WeightFunctions*)
In[]:=
In[]:=
(*Hahn:a,b>-1andN=0,1,2...Discreteorthogonalityover{0,1,...,N}*)
In[]:=
wHahn[x_,a_,b_,N_]:=Gamma[a+x+1]Gamma[b+N-x+1]/Gamma[a+1]/Gamma[x+1]/Gamma[b+1]/Gamma[N-x+1]
In[]:=
In[]:=
(*Jacobi--Piñeiro:a,b>-1.Continuousorthogonalityover[0,1]*)
In[]:=
wJP[x_,a_,b_]:=x^a
In[]:=
In[]:=
(*Meixner:b>0and0<c<1.Discreteorthogonalityover{0,1,2...}*)
In[]:=
wMeixner[x_,b_,c_]:=Gamma[b+x]c^x/Gamma[b]/Gamma[x+1]
In[]:=
(*Kravchuk:p<0<1;N=0,1,2...Discreteorthogonalityover{0,1,...,N}*)
In[]:=
wKravchuk[x_,p_,N_]:=p^x(1-p)^(N-x)Gamma[N+1]/Gamma[x+1]/Gamma[N-x+1]
In[]:=
In[]:=
(*Laguerre:a>-1.Continuousorthogonalityover[0,∞)*)
In[]:=
wLaguerre[x_,a_]:=E^(-x)x^a
In[]:=
(*Charlier:b>0.Discreteorthogonalityover{0,1,2...}*)
In[]:=
wCharlier[x_,b_]:=b^x/Gamma[x+1]
In[]:=
(*Hermite:Continuousorthogonalityover(-∞,∞)*)
In[]:=
wHermite[x_]:=E^(-x^2)
In[]:=
In[]:=
(*************************************************************************************************)
In[]:=
(*Recurrencecoefficientsb𝑚ofthemaindiagonalandc𝑚ofthefirstsubdiagonaloftheJacobimatrix*)
In[]:=
In[]:=
bHahn[m_,a_,b_,N_]:=If[m0,(N)(a+1)/(a+b+2),(N-m)(a+m+1)(a+b+m+1)/(a+b+2m+1)/(a+b+2m+2)+m(b+m)(a+b+N+m+1)/(a+b+2m)/(a+b+2m+1)]
In[]:=
cHahn[m_,a_,b_,N_]:=If[m1,((N)(a+1)/(a+b+2))((b+1)(a+b+N+1+1)/(a+b+2)/(a+b+2+1)),((N-(m-1))(a+(m-1)+1)(a+b+(m-1)+1)/(a+b+2(m-1)+1)/(a+b+2(m-1)+2))(m(b+m)(a+b+N+m+1)/(a+b+2m)/(a+b+2m+1))]
In[]:=
bJP[m_,a_,b_]:=If[m==0,1/2-(b-a)/2/(2m+a+b+2),1/2-(b^2-a^2)/2/(2m+a+b)/(2m+a+b+2)]
In[]:=
cJP[m_,a_,b_]:=m(m+a)(m+b)(m+a+b)/(2m+a+b-1)/(2m+a+b)/(2m+a+b)/(2m+a+b+1)
In[]:=
In[]:=
bMeixner[m_,b_,c_]:=(m+(b+m)c)/(1-c)
In[]:=
cMeixner[m_,b_,c_]:=mc(b+m-1)/(1-c)/(1-c)
In[]:=
In[]:=
bKravchuk[m_,p_,N_]:=(N-m)p+m(1-p)
In[]:=
cKravchuk[m_,p_,N_]:=m(1-p)(N-m+1)p
In[]:=
bLaguerre[m_,a_]:=2m+a+1
In[]:=
cLaguerre[m_,a_]:=m(m+a)
In[]:=
In[]:=
bCharlier[m_,b_]:=b+m
In[]:=
cCharlier[m_,b_]:=bm
In[]:=
In[]:=
bHermite[m_]:=0
In[]:=
cHermite[m_]:=m/2
In[]:=
In[]:=
(*************************************************************************************************)
In[]:=
(*Jacobimatricesofsizem,J𝑚=
*)
b0 | 1 | 0... |
c1 | b1 | 1... |
0 | c2 | b2... |
In[]:=
In[]:=
JHahn[m_,a_,b_,N_]:=Table[cHahn[i,a,b,N]KroneckerDelta[i,j+1]+bHahn[i,a,b,N]KroneckerDelta[i,j]+KroneckerDelta[i,j-1],{i,0,m-1},{j,0,m-1}]
In[]:=
JJP[m_,a_,b_]:=Table[cJP[i,a,b]KroneckerDelta[i,j+1]+bJP[i,a,b]KroneckerDelta[i,j]+KroneckerDelta[i,j-1],{i,0,m-1},{j,0,m-1}]
In[]:=
JMeixner[m_,b_,c_]:=Table[cMeixner[i,b,c]KroneckerDelta[i,j+1]+bMeixner[i,b,c]KroneckerDelta[i,j]+KroneckerDelta[i,j-1],{i,0,m-1},{j,0,m-1}]
In[]:=
JKravchuk[m_,p_,N_]:=Table[cKravchuk[i,p,N]KroneckerDelta[i,j+1]+bKravchuk[i,p,N]KroneckerDelta[i,j]+KroneckerDelta[i,j-1],{i,0,m-1},{j,0,m-1}]
In[]:=
JLaguerre[m_,a_]:=Table[cLaguerre[i,a]KroneckerDelta[i,j+1]+bLaguerre[i,a]KroneckerDelta[i,j]+KroneckerDelta[i,j-1],{i,0,m-1},{j,0,m-1}]
In[]:=
JCharlier[m_,b_]:=Table[cCharlier[i,b]KroneckerDelta[i,j+1]+bCharlier[i,b]KroneckerDelta[i,j]+KroneckerDelta[i,j-1],{i,0,m-1},{j,0,m-1}]
In[]:=
JHermite[m_]:=Table[cHermite[i]KroneckerDelta[i,j+1]+bHermite[i]KroneckerDelta[i,j]+KroneckerDelta[i,j-1],{i,0,m-1},{j,0,m-1}]
In[]:=
In[]:=
(************************************************************************************************)
In[]:=
(*OrthogonalPolynomialsp𝑚(x)intheirmonicversion*)
In[]:=
Hahn[m_,x_,a_,b_,N_]:=Pochhammer[a+1,m]Pochhammer[-N,m]Sum[Pochhammer[-m,l]Pochhammer[-x,l]Pochhammer[a+b+m+1,l]/Pochhammer[-N,l]/Pochhammer[a+1,l]/l!,{l,0,m}]/Pochhammer[a+b+m+1,m]
In[]:=
JP[m_,x_,a_,b_]:=(-1)^mPochhammer[a+1,m]Sum[Pochhammer[-m,l]Pochhammer[a+b+m+1,l]x^l/Pochhammer[a+1,l]/l!,{l,0,m}]/Pochhammer[a+b+m+1,m]
In[]:=
In[]:=
Meixner[m_,x_,b_,c_]:=(c/(c-1))^mPochhammer[b,m]Sum[Pochhammer[-m,l]Pochhammer[-x,l]((c-1)/c)^l/Pochhammer[b,l]/l!,{l,0,m}]
In[]:=
Kravchuk[m_,x_,p_,N_]:=p^mPochhammer[-N,m]Sum[Pochhammer[-m,l]Pochhammer[-x,l](1/p)^l/Pochhammer[-N,l]/l!,{l,0,m}]
In[]:=
In[]:=
Laguerre[m_,x_,a_]:=(-1)^mPochhammer[a+1,m]Sum[Pochhammer[-m,l]x^l/Pochhammer[a+1,l]/l!,{l,0,m}]
In[]:=
Charlier[m_,x_,b_]:=(-b)^mSum[Pochhammer[-m,l]Pochhammer[-x,l](-1/b)^l/l!,{l,0,m}]
In[]:=
Hermite[m_,x_]:=(-1)^mPi^(1/2)Sum[Pochhammer[-m,l]x^l/Gamma[(-m+1+l)/2]/l!,{l,0,m}]
In[]:=
In[]:=
(*************************************************************************************************)(*TridiagonalStochasticMatrices*)
In[]:=
In[]:=
(*Firstwecomputetheconjugationmatricesσ𝑚*)
In[]:=
SigmaHahn[m_,x_,a_,b_,N_]:=Table[Hahn[i,x,a,b,N]KroneckerDelta[i,j],{i,0,m-1},{j,0,m-1}]
In[]:=
SigmaJP[m_,x_,a_,b_]:=Table[JP[i,x,a,b]KroneckerDelta[i,j],{i,0,m-1},{j,0,m-1}]
In[]:=
SigmaMeixner[m_,x_,b_,c_]:=Table[Meixner[i,x,b,c]KroneckerDelta[i,j],{i,0,m-1},{j,0,m-1}]
In[]:=
SigmaKravchuk[m_,x_,p_,N_]:=Table[Kravchuk[i,x,p,N]KroneckerDelta[i,j],{i,0,m-1},{j,0,m-1}]
In[]:=
SigmaLaguerre[m_,x_,a_]:=Table[Laguerre[i,x,a]KroneckerDelta[i,j],{i,0,m-1},{j,0,m-1}]
In[]:=
SigmaCharlier[m_,x_,b_]:=Table[Charlier[i,x,b]KroneckerDelta[i,j],{i,0,m-1},{j,0,m-1}]
In[]:=
SigmaHermite[m_,x_]:=Table[Hermite[i,x]KroneckerDelta[i,j],{i,0,m-1},{j,0,m-1}]
In[]:=
In[]:=
(*Nowwecomputethelastzeroofthem-thpolynomialp𝑚(x)numerically.Wedenoteitbyλ*)
In[]:=
LambdaHahn[m_,a_,b_,N_]:=x/.Solve[Hahn[m,x,a,b,N]==0,x][[m]]
In[]:=
LambdaJP[m_,a_,b_]:=x/.Solve[JP[m,x,a,b]==0,x][[m]]
In[]:=
LambdaMeixner[m_,b_,c_]:=x/.Solve[Meixner[m,x,b,c]==0,x][[m]]
In[]:=
LambdaKravchuk[m_,p_,N_]:=x/.Solve[Kravchuk[m,x,p,N]==0,x][[m]]
In[]:=
LambdaLaguerre[m_,a_]:=x/.Solve[Laguerre[m,x,a]==0,x][[m]]
In[]:=
LambdaCharlier[m_,b_]:=x/.Solve[Charlier[m,x,b]==0,x][[m]]
In[]:=
LambdaHermite[m_]:=Max[x/.Solve[Hermite[m,x]==0,x]]
In[]:=
In[]:=
(*Withthiswecancomputethestochasticmatricesofsizem,P𝑚*)
In[]:=
PHahn[m_,a_,b_,N_]:=Inverse[SigmaHahn[m,LambdaHahn[m,a,b,N],a,b,N]].JHahn[m,a,b,N].SigmaHahn[m,LambdaHahn[m,a,b,N],a,b,N]/LambdaHahn[m,a,b,N]
In[]:=
PJP[m_,a_,b_]:=Inverse[SigmaJP[m,LambdaJP[m,a,b],a,b]].JJP[m,a,b].SigmaJP[m,LambdaJP[m,a,b],a,b]/LambdaJP[m,a,b]
In[]:=
PMeixner[m_,b_,c_]:=Inverse[SigmaMeixner[m,LambdaMeixner[m,b,c],b,c]].JMeixner[m,b,c].SigmaMeixner[m,LambdaMeixner[m,b,c],b,c]/LambdaMeixner[m,b,c]
In[]:=
PKravchuk[m_,p_,N_]:=Inverse[SigmaKravchuk[m,LambdaKravchuk[m,p,N],p,N]].JKravchuk[m,p,N].SigmaKravchuk[m,LambdaKravchuk[m,p,N],p,N]/LambdaKravchuk[m,p,N]
In[]:=
PLaguerre[m_,a_]:=Inverse[SigmaLaguerre[m,LambdaLaguerre[m,a],a]].JLaguerre[m,a].SigmaLaguerre[m,LambdaLaguerre[m,a],a]/LambdaLaguerre[m,a]
In[]:=
PCharlier[m_,b_]:=Inverse[SigmaCharlier[m,LambdaCharlier[m,b],b]].JCharlier[m,b].SigmaCharlier[m,LambdaCharlier[m,b],b]/LambdaCharlier[m,b]
In[]:=
PHermite[m_]:=N[Inverse[SigmaHermite[m,LambdaHermite[m]]].JHermite[m].SigmaHermite[m,LambdaHermite[m]]/LambdaHermite[m]]
In[]:=
In[]:=
(*************************************************************************************************)
In[]:=
(*SteadyStates,π𝑚*)
In[]:=
SteadyHahn[m_,a_,b_,N_]:=Table[Hahn[i,LambdaHahn[m,a,b,N],a,b,N]^2/Sum[Hahn[i,k,a,b,N]^2wHahn[k,a,b,N],{k,0,N}],{i,0,m-1}]/Sum[Hahn[i,LambdaHahn[m,a,b,N],a,b,N]^2/Sum[Hahn[i,k,a,b,N]^2wHahn[k,a,b,N],{k,0,N}],{i,0,m-1}]
In[]:=
SteadyJP[m_,a_,b_]:=Table[JP[i,LambdaJP[m,a,b],a,b]^2/Integrate[JP[i,x,a,b]^2wJP[x,a,b](1-x)^b,{x,0,1}],{i,0,m-1}]/Sum[JP[i,LambdaJP[m,a,b],a,b]^2/Integrate[JP[i,x,a,b]^2wJP[x,a,b](1-x)^b,{x,0,1}],{i,0,m-1}]
In[]:=
SteadyMeixner[m_,b_,c_]:=Table[Meixner[i,LambdaMeixner[m,b,c],b,c]^2/Sum[Meixner[i,k,b,c]^2wMeixner[k,b,c],{k,0,Infinity}],{i,0,m-1}]/Sum[Meixner[i,LambdaMeixner[m,b,c],b,c]^2/Sum[Meixner[i,k,b,c]^2wMeixner[k,b,c],{k,0,Infinity}],{i,0,m-1}]
In[]:=
SteadyKravchuk[m_,p_,N_]:=Table[Kravchuk[i,LambdaKravchuk[m,p,N],p,N]^2/Sum[Kravchuk[i,k,p,N]^2wKravchuk[k,p,N],{k,0,N}],{i,0,m-1}]/Sum[Kravchuk[i,LambdaKravchuk[m,p,N],p,N]^2/Sum[Kravchuk[i,k,p,N]^2wKravchuk[k,p,N],{k,0,N}],{i,0,m-1}]
In[]:=
SteadyLaguerre[m_,a_]:=Table[Laguerre[i,LambdaLaguerre[m,a],a]^2/Integrate[Laguerre[i,x,a]^2wLaguerre[x,a],{x,0,Infinity}],{i,0,m-1}]/Sum[Laguerre[i,LambdaLaguerre[m,a],a]^2/Integrate[Laguerre[i,x,a]^2wLaguerre[x,a],{x,0,Infinity}],{i,0,m-1}]
In[]:=
SteadyCharlier[m_,b_]:=Table[Charlier[i,LambdaCharlier[m,b],b]^2/Sum[Charlier[i,k,b]^2wCharlier[k,b],{k,0,Infinity}],{i,0,m-1}]/Sum[Charlier[i,LambdaCharlier[m,b],b]^2/Sum[Charlier[i,k,b]^2wCharlier[k,b],{k,0,Infinity}],{i,0,m-1}]
In[]:=
SteadyHermite[m_]:=N[Table[Hermite[i,LambdaHermite[m]]^2/Integrate[Hermite[i,k]^2wHermite[k],{k,-Infinity,Infinity}],{i,0,m-1}]/Sum[Hermite[i,LambdaHermite[m]]^2/Integrate[Hermite[i,k]^2wHermite[k],{k,-Infinity,Infinity}],{i,0,m-1}]]
In[]:=
(************************************************************************************************)
In[]:=
(*ExpectedReturnTimes*)
In[]:=
ReturnTimesHahn[m_,a_,b_,N_]:=1/SteadyHahn[m,a,b,N]
In[]:=
ReturnTimesJP[m_,a_,b_]:=1/SteadyJP[m,a,b]
In[]:=
ReturnTimesMeixner[m_,b_,c_]:=1/SteadyMeixner[m,b,c]
In[]:=
ReturnTimesKravchuk[m_,p_,N_]:=1/SteadyKravchuk[m,p,N]
In[]:=
ReturnTimesLaguerre[m_,a_]:=1/SteadyLaguerre[m,a]
In[]:=
ReturnTimesCharlier[m_,b_]:=1/SteadyCharlier[m,b]
In[]:=
ReturnTimesHermite[m_]:=1/SteadyHermite[m]
In[]:=
In[]:=
(**************************************************************************************************)
In[]:=
(*LUDecomposition*)
In[]:=
(*J𝑚=L𝑚U𝑚=
=
*)
1 | 0 | 0 | 0 | 0... |
a2 | 1 | 0 | 0 | 0... |
0 | a4 | 1 | 0 | 0... |
0 | 0 | a6 | 1 | 0... |
0 | 0 | 0 | a8 | 1... |
a1 | 1 | 0 | 0 | 0... |
0 | a3 | 1 | 0 | 0... |
0 | 0 | a5 | 1 | 0... |
0 | 0 | 0 | a7 | 1... |
0 | 0 | 0 | 0 | a9... |
a1 | 1 | 0 | 0 | 0... |
a1a2 | a2+a3 | 1 | 0 | 0... |
0 | a3a4 | a4+a5 | 1 | 0... |
0 | 0 | a5a6 | a6+a7 | 1... |
0 | 0 | 0 | a7a8 | a8+a9... |
In[]:=
In[]:=
(*Wedefineseparatelytheodda2n+1andevena2ncoefficients*)
In[]:=
aHahn2n1[n_,a_,b_,N_]:=(N-n)(a+n+1)(a+b+n+1)/(a+b+2n+1)/(a+b+2n+2)
In[]:=
aHahn2n[n_,a_,b_,N_]:=n(b+n)(a+b+N+n+1)/(a+b+2n)/(a+b+2n+1)
In[]:=
aJP2n1[n_,a_,b_]:=(a+n+1)(a+b+n+1)/(a+b+2n+1)/(a+b+2n+2)
In[]:=
aJP2n[n_,a_,b_]:=n(b+n)/(a+b+2n)/(a+b+2n+1)
In[]:=
In[]:=
aMeixner2n1[n_,b_,c_]:=c(b+n)/(1-c)
In[]:=
aMeixner2n[n_,b_,c_]:=n/(1-c)
In[]:=
In[]:=
aKravchuk2n1[n_,p_,N_]:=(N-n)p
In[]:=
aKravchuk2n[n_,p_,N_]:=n(1-p)
In[]:=
In[]:=
aLaguerre2n1[n_,a_]:=a+n+1
In[]:=
aLaguerre2n[n_,a_]:=n
In[]:=
In[]:=
aCharlier2n1[n_,b_]:=b
In[]:=
aCharlier2n[n_,b_]:=n
In[]:=
In[]:=
(*ThisdecompositionisnotpossiblefortheHermitefamilysincethemaindiagonaloftherecurrencematrixisnull*)
In[]:=
In[]:=
(*WiththesecoefficientswedefinethecorrespondingL𝑚andU𝑚matrices*)
In[]:=
LHahn[m_,a_,b_,N_]:=Table[KroneckerDelta[i,j]+aHahn2n[i-1,a,b,N]KroneckerDelta[i,j+1],{i,1,m},{j,1,m}]
In[]:=
UHahn[m_,a_,b_,N_]:=Table[KroneckerDelta[i,j-1]+aHahn2n1[i-1,a,b,N]KroneckerDelta[i,j],{i,1,m},{j,1,m}]
In[]:=
LJP[m_,a_,b_]:=Table[KroneckerDelta[i,j]+aJP2n[i-1,a,b]KroneckerDelta[i,j+1],{i,1,m},{j,1,m}]
In[]:=
UJP[m_,a_,b_]:=Table[KroneckerDelta[i,j-1]+aJP2n1[i-1,a,b]KroneckerDelta[i,j],{i,1,m},{j,1,m}]
In[]:=
LMeixner[m_,b_,c_]:=Table[KroneckerDelta[i,j]+aMeixner2n[i-1,b,c]KroneckerDelta[i,j+1],{i,1,m},{j,1,m}]
In[]:=
UMeixner[m_,b_,c_]:=Table[KroneckerDelta[i,j-1]+aMeixner2n1[i-1,b,c]KroneckerDelta[i,j],{i,1,m},{j,1,m}]
In[]:=
LKravchuk[m_,p_,N_]:=Table[KroneckerDelta[i,j]+aKravchuk2n[i-1,p,N]KroneckerDelta[i,j+1],{i,1,m},{j,1,m}]
In[]:=
UKravchuk[m_,p_,N_]:=Table[KroneckerDelta[i,j-1]+aKravchuk2n1[i-1,p,N]KroneckerDelta[i,j],{i,1,m},{j,1,m}]
In[]:=
In[]:=
LLaguerre[m_,a_]:=Table[KroneckerDelta[i,j]+aLaguerre2n[i-1,a]KroneckerDelta[i,j+1],{i,1,m},{j,1,m}]
In[]:=
ULaguerre[m_,a_]:=Table[KroneckerDelta[i,j-1]+aLaguerre2n1[i-1,a]KroneckerDelta[i,j],{i,1,m},{j,1,m}]
In[]:=
In[]:=
LCharlier[m_,b_]:=Table[KroneckerDelta[i,j]+aCharlier2n[i-1,b]KroneckerDelta[i,j+1],{i,1,m},{j,1,m}]
In[]:=
UCharlier[m_,b_]:=Table[KroneckerDelta[i,j-1]+aCharlier2n1[i-1,b]KroneckerDelta[i,j],{i,1,m},{j,1,m}]
In[]:=
In[]:=
In[]:=
(************************************************************************************************)
In[]:=
(*StochasticBidiagonalFactorization*)
In[]:=
In[]:=
(*Westartbydefiningtheauxiliarmatrices*)
In[]:=
DHahn[m_,a_,b_,N_]:=Table[KroneckerDelta[i,j]/(aHahn2n1[i-1,a,b,N]Hahn[i-1,LambdaHahn[m,a,b,N],a,b,N]+Hahn[i,LambdaHahn[m,a,b,N],a,b,N]),{i,1,m},{j,1,m}]
In[]:=
DJP[m_,a_,b_]:=Table[KroneckerDelta[i,j]/(aJP2n1[i-1,a,b]JP[i-1,LambdaJP[m,a,b],a,b]+JP[i,LambdaJP[m,a,b],a,b]),{i,1,m},{j,1,m}]
In[]:=
DMeixner[m_,a_,b_]:=Table[KroneckerDelta[i,j]/(aMeixner2n1[i-1,a,b]Meixner[i-1,LambdaMeixner[m,a,b],a,b]+Meixner[i,LambdaMeixner[m,a,b],a,b]),{i,1,m},{j,1,m}]
In[]:=
DKravchuk[m_,p_,N_]:=Table[KroneckerDelta[i,j]/(aKravchuk2n1[i-1,p,N]Kravchuk[i-1,LambdaKravchuk[m,p,N],p,N]+Kravchuk[i,LambdaKravchuk[m,p,N],p,N]),{i,1,m},{j,1,m}]
In[]:=
DLaguerre[m_,a_]:=Table[KroneckerDelta[i,j]/(aLaguerre2n1[i-1,a]Laguerre[i-1,LambdaLaguerre[m,a],a]+Laguerre[i,LambdaLaguerre[m,a],a]),{i,1,m},{j,1,m}]
In[]:=
DCharlier[m_,b_]:=Table[KroneckerDelta[i,j]/(aCharlier2n1[i-1,b]Charlier[i-1,LambdaCharlier[m,b],b]+Charlier[i,LambdaCharlier[m,b],b]),{i,1,m},{j,1,m}]
In[]:=
In[]:=
(*WiththeseoneswecandefinethelowerΠ𝑚andupperΥ𝑚bidiagonalstochasticmatricessuchthatP𝑚=Π𝑚Υ𝑚*)
In[]:=
PiHahn[m_,a_,b_,N_]:=Inverse[SigmaHahn[m,LambdaHahn[m,a,b,N],a,b,N]].LHahn[m,a,b,N].Inverse[DHahn[m,a,b,N]]/LambdaHahn[m,a,b,N]
In[]:=
PiJP[m_,a_,b_]:=Inverse[SigmaJP[m,LambdaJP[m,a,b],a,b]].LJP[m,a,b].Inverse[DJP[m,a,b]]/LambdaJP[m,a,b]
In[]:=
PiMeixner[m_,a_,b_]:=Inverse[SigmaMeixner[m,LambdaMeixner[m,a,b],a,b]].LMeixner[m,a,b].Inverse[DMeixner[m,a,b]]/LambdaMeixner[m,a,b]
In[]:=
PiKravchuk[m_,p_,N_]:=Inverse[SigmaKravchuk[m,LambdaKravchuk[m,p,N],p,N]].LKravchuk[m,p,N].Inverse[DKravchuk[m,p,N]]/LambdaKravchuk[m,p,N]
In[]:=
PiLaguerre[m_,a_]:=Inverse[SigmaLaguerre[m,LambdaLaguerre[m,a],a]].LLaguerre[m,a].Inverse[DLaguerre[m,a]]/LambdaLaguerre[m,a]
In[]:=
PiCharlier[m_,b_]:=Inverse[SigmaCharlier[m,LambdaCharlier[m,b],b]].LCharlier[m,b].Inverse[DCharlier[m,b]]/LambdaCharlier[m,b]
In[]:=
In[]:=
In[]:=
UpsilonHahn[m_,a_,b_,N_]:=DHahn[m,a,b,N].UHahn[m,a,b,N].SigmaHahn[m,LambdaHahn[m,a,b,N],a,b,N]
In[]:=
UpsilonJP[m_,a_,b_]:=DJP[m,a,b].UJP[m,a,b].SigmaJP[m,LambdaJP[m,a,b],a,b]
In[]:=
UpsilonMeixner[m_,a_,b_]:=DMeixner[m,a,b].UMeixner[m,a,b].SigmaMeixner[m,LambdaMeixner[m,a,b],a,b]
In[]:=
UpsilonKravchuk[m_,p_,N_]:=DKravchuk[m,p,N].UKravchuk[m,p,N].SigmaKravchuk[m,LambdaKravchuk[m,p,N],p,N]
In[]:=
UpsilonLaguerre[m_,a_]:=DLaguerre[m,a].ULaguerre[m,a].SigmaLaguerre[m,LambdaLaguerre[m,a],a]
In[]:=
UpsilonCharlier[m_,b_]:=DCharlier[m,b].UCharlier[m,b].SigmaCharlier[m,LambdaCharlier[m,b],b]
In[]:=
In[]:=
(**************************************************************************************************)
In[]:=
(**************************************INSTRUCTIONS*************************************************)
In[]:=
(**************************************************************************************************)
In[]:=
In[]:=
(*REMEMBERALLTHEPREVIOUSCELLSHAVETOBEEVALUATED*)
In[]:=
In[]:=
In[]:=
(*Then,herecomesasummaryofthecommandstogetthestochasticmatrices,theirrespectivebidiagonalfactorizationsandthesteadystatesforthesevenfamilies.Let'sremindfirstallthesefamiliesandtheirpossiblechoiceofparameters*)
In[]:=
(*HAHN:a,b>-1;N=0,1,2...*)
In[]:=
(*JACOBI-PIÑEIRO:a,b>-1*)
In[]:=
(*MEIXNER:b>0;0<c<1*)
In[]:=
(*KRAVCHUK:0<p<1;N=0,1,2...*)
In[]:=
(*LAGUERRE:a>-1*)
In[]:=
(*CHARLIER:b>0*)
In[]:=
(*HERMITE:Therearenoparameters*)
In[]:=
In[]:=
(*StochasticMatrixofsizemcorrespondingtotheHahn/Jacobi-Piñeiro/Meixner/Kravchuk/Laguerre/Charlier/Hermitepolynomials*)
In[]:=
(*PHahn[m,a,b,N]/PJP[m,a,b]/PMeixner[m,b,c]/PKravchuk[m,p,N]/PLaguerre[m,a]/PCharlier[m,b]/PHermite[m]*)
In[]:=
In[]:=
(*LowerBidiagonalStochasticMatrixofsizemcorrespondingtotheHahn/Jacobi-Piñeiro/Meixner/Kravchuk/Laguerre/Charlierpolynomials*)(*PiHahn[m,a,b,N]/PiJP[m,a,b]/PiMeixner[m,b,c]/PiKravchuk[m,p,N]/PiLaguerre[m,a]/PiCharlier[m,b]*)
In[]:=
In[]:=
(*UpperBidiagonalStochasticMatrixofsizemcorrespondingtotheHahn/Jacobi-Piñeiro/Meixner/Kravchuk/Laguerre/Charlierpolynomials*)(*UpsilonHahn[m,a,b,N]/UpsilonJP[m,a,b]/UpsilonMeixner[m,b,c]/UpsilonKravchuk[m,p,N]/UpsilonLaguerre[m,a]/UpsilonCharlier[m,b]*)
In[]:=
In[]:=
(*SteadyStateofthetridiagonalstochasticmatrixofsizemcorrespondingtoHahn/Jacobi-Piñeiro/Meixner/Kravchuk/Laguerre/Charlier/Hermitepolynomials*)(*SteadyHahn[m,a,b,N]/SteadyJP[m,a,b]/SteadyMeixner[m,b,c]/SteadyKravchuk[m,p,N]/SteadyLaguerre[m,a]/SteadyCharlier[m,b]/SteadyHermite[m]*)
In[]:=
(*ExpectedReturnTimesforthemstatesoftheMarkovchainassociatedtothetridiagonalstochasticmatrixcorrespondingtotheHahn/Jacobi-Piñeiro/Meixner/Kravchuk/Laguerre/Charlier/Hermitepolynomials*)(*ReturnTimesHahn[m,a,b,N]/ReturnTimesJP[m,a,b]/ReturnTimesMeixner[m,b,c]/ReturnTimesKravchuk[m,p,N]/ReturnTimesLaguerre[m,a]/ReturnTimesCharlier[m,b]/ReturnTimesHermite[m]*)
(*Togetamatrixformat,implementtheinstruction//MatrixFormafterthematrix.Example:PHahn[5,0.4,1,10]//MatrixForm.IMPORTANT:BecarefulsincethisinstructiondoesNOTallowtodooperationswiththematrices.*)
In[]:=
In[]:=
(**************************************************************************************************)
In[]:=
(**************************************************************************************************)


Cite this as: Manuel Mañas, "Finite Markov Chains and Orthogonal Polynomials" from the Notebook Archive (2023), https://notebookarchive.org/2023-07-cf7w96a

Download

