# restart; read `c:/Users/Asus/Google Drive/Aek/Fibo/Prodinger.txt`; with(LinearAlgebra): # Section1: Prelim # Section2: Result in Carlitz and Prodinger # Section3: My Result ########################## # Section1: Prelim ########################## # C-finite of order nops(C): # Input: constants, C,A. # Try: [seq(CF(n,[1,1],[0,1]),n=0..10)]; CF := proc(n,C,A) option remember; local i,tt,temp; if C[nops(C)]=0 then ERROR(NotDefined); fi: tt := nops(C): if n >= 0 and n <= nops(A)-1 then return(A[n+1]); fi: if n >= nops(A) then add( C[i]*CF(n-i,C,A), i=1..tt); else temp := add( -C[i] *CF(n+(tt-i),C,A), i=1..tt-1); (CF(n+tt,C,A)+temp)/C[tt]; fi: end: #Try: [seq(Fib(n),n=0..6)]; Fib := proc(n) option remember; CF(n,[1,1],[0,1]); end: # Try: RiseFib(4,3); RiseFib := proc(n,r) option remember; local i; mul(Fib(n+i),i=0..r-1); end: # Try: RiseTwo(4,3,1,1,2,1); RiseTwo := proc(n,r,c1,c2,a,b) option remember; local i,t,W; mul(CF(n+i,[c1,c2],[a,b]),i=0..r-1); end: ################################# # Section2: Result by Carlitz and Prodinger ################################# # Remark 3.3: Main result with Fibo. # Input: matrix of size r+1 with entries # F_(n+i+j)^r # Try: Carlitz(15,34); # seq([seq(Carlitz(n,r),n=-3..3)],r=1..7); Carlitz := proc(n,r) option remember; local i,j,A; A := Matrix([seq([seq( Fib(n+i+j)^r ,j=0..r)],i=0..r)]); Determinant(A); end: # Formula of the determinant of Prodinger matrix # Try: ForCarlitz(15,34); ForCarlitz := proc(n,r) option remember; local i; (-1)^((n+1)*binomial(r+1,2)) *mul(Fib(i+1)^(r-i),i=0..r-1)^2 *mul(binomial(r,i),i=0..r); end: # Prodinger Matrix # Try: Prodinger(5,4); Prodinger := proc(n,r) option remember; local i,j,A; A := Matrix([seq([seq( RiseFib(n+i+j,r) ,j=0..r)],i=0..r)]); Determinant(A); end: # Formula of the determinant of Prodinger matrix # Try: ForProdinger(5,4); ForProdinger := proc(n,r) option remember; local i; (-1)^(binomial(r+2,3)+n*binomial(r+1,2)) *mul(Fib(i),i=1..r)^(r+1); end: # Try: ProLucas(5,4,1,1,2,1); ProLucas := proc(n,r,c1,c2,a,b) option remember; local i,j,A; A := Matrix([seq([seq( RiseTwo(n+i+j,r,c1,c2,a,b) ,j=0..r)],i=0..r)]); Determinant(A); end: # Try: ForProLucas(5,4,1,1,2,1); ForProLucas := proc(n,r,c1,c2,a,b) option remember; local i; (-1)^(binomial(r+1,3)+n*binomial(r+1,2)) *5^binomial(r+1,2)*mul(Fib(i),i=1..r)^(r+1); end: ########################## # Section3: My Results ########################## # Test d-by-d matrix with r products # Try: d:=4:seq([seq(Main(n,r,d),n=0..10)],r=d-1..d+7); Main := proc(n,r,d) option remember; local i,j,A, sol; A := Matrix([seq([seq( RiseFib(n+i+j,r) ,j=0..d-1)],i=0..d-1)]); sol := (-1)^(binomial(d+1,3)+n*binomial(d,2)) *mul((Fib(i)*Fib(r+1-i))^(d-i),i=1..d-1) *mul(RiseFib(n+i,r+1-d),i=d-1..2*(d-1)); Determinant(A)-sol; end: # Test d-by-d matrix with r products # Try: d:=4:seq([seq(Gen(n,r,d,-4,3,12,7),n=0..10)],r=d-1..d+7); Gen := proc(n,r,d,c1,c2,a,b) option remember; local i,j,D,A, sol; A := Matrix([seq([seq( RiseTwo(n+i+j,r,c1,c2,a,b) ,j=0..d-1)],i=0..d-1)]); sol := (-1)^(binomial(d+1,3)+n*binomial(d,2)) *c2^((n+d-2)*binomial(d,2)) *(b^2-c1*a*b-c2*a^2)^(binomial(d,2)) *mul((CF(i,[c1,c2],[0,1])*CF(r+1-i,[c1,c2],[0,1])) ^(d-i),i=1..d-1) *mul(RiseTwo(n+i,r+1-d,c1,c2,a,b),i=d-1..2*(d-1)); Determinant(A)-sol; end: