{VERSION 2 3 "SUN SPARC SOLARIS" "2.3" } {USTYLETAB {CSTYLE "Maple Input" -1 0 "Courier" 0 1 255 0 0 1 0 1 0 0 1 0 0 0 0 }{CSTYLE "2D Math" -1 2 "Times" 0 1 0 0 0 0 0 0 2 0 0 0 0 0 0 }{CSTYLE "2D Output" 2 20 "" 0 1 0 0 255 1 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 256 "terminal" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE " " -1 257 "" 1 24 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 258 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 259 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 260 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE " " -1 261 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 262 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 263 "fixed" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 }{PSTYLE "Normal" -1 0 1 {CSTYLE "" -1 -1 "Times" 1 14 0 0 0 0 2 2 2 0 0 0 0 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "Tex t Output" -1 2 1 {CSTYLE "" -1 -1 "Courier" 1 10 0 0 255 1 0 0 0 0 0 1 3 0 0 }1 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "Heading 1" 0 3 1 {CSTYLE "" -1 -1 "" 1 18 0 0 0 0 0 1 0 0 0 0 0 0 0 }1 0 0 0 6 6 0 0 0 0 0 0 -1 0 }{PSTYLE "Warning" 2 7 1 {CSTYLE "" -1 -1 "" 0 1 0 0 255 1 0 0 0 0 0 0 1 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "Error" 7 8 1 {CSTYLE "" -1 -1 "" 0 1 255 0 255 1 0 0 0 0 0 0 0 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "Maple Output" 0 11 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 }3 3 0 -1 -1 -1 0 0 0 0 0 0 -1 0 } {PSTYLE "" 11 12 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 } 1 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "R3 Font 0" -1 256 1 {CSTYLE "" -1 -1 "Helvetica" 1 14 0 0 0 0 2 1 2 0 0 0 0 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "R3 Font 2" -1 257 1 {CSTYLE "" -1 -1 "Courier " 1 14 0 0 0 0 2 2 2 0 0 0 0 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 } {PSTYLE "" 3 258 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 } 3 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }} {SECT 0 {EXCHG {PARA 0 "" 0 "" {TEXT 256 13 "celine_gb.mws" }{MPLTEXT 1 0 0 "" }}{PARA 258 "" 0 "" {TEXT 257 81 "Math 262a, Fall 1999, Glenn Tesler, 12/2/99\nSums via noncommutative Grobner bases" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 100 "Load Chyzak's software. See his web sit e for numerous papers with more examples along these lines: " }{TEXT 263 47 "http://pauillac.inria.fr/algo/chyzak/mgfun.html" }}{PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 72 "restart; with(Mgfun): with(Holonomy): with(Gro ebner): with(Ore_algebra):" }}}{EXCHG {PARA 3 "" 0 "" {TEXT -1 48 "Exa mple 1. Similar to Sister Celine's algorithm" }{MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 66 "Define a noncommutative algebra wi th n,k,x, and shifts for n and k" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 68 "A := skew_algebra(shift=[Sn,n],shift=[Sk,k],comm=[x],polynom=[n,k]); " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"AG%,Ore_algebraG" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 62 "Describe the summand binomial(n,k)*x^k by a rectangular system" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 74 "F := (n,k) -> binomial(n,k)*x^k;\nrect_F := hypergeom_to_dfinite(F(n,k),A);" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"FG:6$%\"nG%\"kG6\"6$%)operatorG%&a rrowGF)*&-%)binomialG6$9$9%\"\"\")%\"xGF2F3F)F)" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%'rect_FG7$,(*&%#SnG\"\"\",(%\"nGF)F)F)%\"kG!\"\"F)F)F +F-F-F),(*&%#SkGF),&F,F)F)F)F)F)*&%\"xGF)F+F)F-*&F3F)F,F)F)" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 396 "Term order to eliminate k: to see if k^a1 * Sk^a2 Sn^a3 n^a4 > k^b1 * Sk^b2 Sn^b3 n^b4, first compare k^a1 and k^b1 in grlex order; and if they're equal, break the tie by \+ comparing Sk^a2 Sn^a3 n^a4 and Sk^b2 Sn^b3 n^b4 in grlex (Sk>Sn>n) ord er. This turns out to be more efficient that using lex order (k>Sk>Sn >n) since we only care to eliminate k, rather than successivly elimina te k; Sk; Sn." }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 40 "T := termorder(A,l exdeg([k],[Sk,Sn,n]));" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"TG%+term _orderG" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 84 "Grobner basis with low er elements free of k (if any elements free of k exist at all)" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "GB := gbasis(rect_F,T);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%#GBG7%,.*&%#SnG\"\"\"%#SkGF)F)*(F*F)F(F)% \"nGF)F)*&F*F)F,F)!\"\"F*F.*&%\"xGF)F,F)F.F0F.,,*&F(F)F,F)F.F(F.*&F(F) %\"kGF)F)F,F)F)F),**&F*F)F4F)F)F*F)F/F.*&F0F)F4F)F)" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 29 "Select the elements free of k" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "kfree_GB := select(p -> not has(p,k), GB);" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%)kfree_GBG7#,.*&%#SnG\"\"\"%#SkGF)F) *(F*F)F(F)%\"nGF)F)*&F*F)F,F)!\"\"F*F.*&%\"xGF)F,F)F.F0F." }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 45 "This says that F(n,k) satisfies the recur sion" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 54 "recop := kfree_GB[1]:\nappl yopr(recop,' F'(n,k),A) = 0;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#/,(*&, &%\"nG!\"\"F(\"\"\"F)-%\"FG6$F',&%\"kGF)F)F)F)F)*&,&F'F)F)F)F)-F+6$F0F -F)F)*&,&*&%\"xGF)F'F)F(F6F(F)-F+6$F'F.F)F)\"\"!" }}}{EXCHG {PARA 0 " " 0 "" {TEXT -1 245 "As with Celine's algorithm, we would now sum this recursion over all k to get f(n)=sum(F(n,k),k=-infinity..infinity). \+ But we are working at the level of recursion operators; substituting S k -> 1 gives the recursion operator applicable to f(n). " }{MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "frecop := subs(Sk= 1,recop);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%'frecopG,.%#SnG\"\"\"*& F&F'%\"nGF'F'F)!\"\"F*F'*&%\"xGF'F)F'F*F,F*" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "factor(\");" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#*&, &%\"nG\"\"\"F&F&F&,(%#SnGF&%\"xG!\"\"F*F&F&" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 26 "frecop2:=select(has,\",Sn);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%(frecop2G,(%#SnG\"\"\"%\"xG!\"\"F)F'" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 20 "Thus, f(n) satisfies" }}{PARA 0 "> " 0 " " {MPLTEXT 1 0 27 "applyopr(frecop2,f(n),A)=0;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/,&-%\"fG6#,&%\"nG\"\"\"F*F*F**&,&%\"xG!\"\"F.F*F*-F&6# F)F*F*\"\"!" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 18 "which is solved by " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "rsolve(\",f(n));" }}{PARA 11 " " 1 "" {XPPMATH 20 "6#*&-%\"fG6#\"\"!\"\"\"),&%\"xGF(F(F(%\"nGF(" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 86 "and then using initial conditions \+ gives the complete answer to the original summation." }{MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 3 "" 0 "" {TEXT -1 22 "Example 2. Double sum" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 64 "h := (2*k+2*j+n+m)! * (x/4)^(k+j) / ((k+n)! * (j+m)! \+ * k! * j!);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"hG*.-%*factorialG6# ,*%\"kG\"\"#%\"jGF+%\"nG\"\"\"%\"mGF.F.),$%\"xG#F.\"\"%,&F*F.F,F.F.-F' 6#,&F*F.F-F.!\"\"-F'6#,&F,F.F/F.F9-F'6#F*F9-F'6#F,F9" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 18 "We want to compute" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "H(n,m,x) = Sum(Sum(h,j=0..infinity),k=0..infinity);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/-%\"HG6%%\"nG%\"mG%\"xG-%$SumG6$-F+ 6$*.-%*factorialG6#,*%\"kG\"\"#%\"jGF5F'\"\"\"F(F7F7),$F)#F7\"\"%,&F4F 7F6F7F7-F16#,&F4F7F'F7!\"\"-F16#,&F6F7F(F7F@-F16#F4F@-F16#F6F@/F6;\"\" !%)infinityG/F4FI" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 166 "and as with Celine's algorithm, we will do so by finding a recurrence/diffeq sati sfied by the summand, with the coefficients of the recurrence/diffeq f ree of j and k." }{MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 82 "A := skew_algebra(diff=[Dx,x],shift=[Sk,k],shift=[Sj, j],comm=[n,m],polynom=\{k,j\});" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>% \"AG%,Ore_algebraG" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 32 "Term order \+ to eliminate j and k:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 43 "T := termo rder(A,lexdeg([k,j],[Sj,Sk,Dx]));" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#> %\"TG%+term_orderG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 36 "rect_ h := hypergeom_to_dfinite(h,A);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%' rect_hG7%,B*&,,*$%\"kG\"\"#\"\"%*&F*\"\"\"%\"nGF.F,F/F,F*\"\")F,F.F.%# SkGF.F.*(%\"xGF.F*F.%\"jGF.!\")*(F3F.F*F.%\"mGF.!\"%*&F3F.F4F+F8*(F3F. F4F.F/F.F8*(F3F.F4F.F7F.F8F3!\"#*&F/F.F3F.!\"$*&F*F.F3F.!\"'*&F3F.F4F. F@*(F3F.F*F.F/F.F8*&F3F.F/F+!\"\"*&F3F.F7F.F>*&F3F.F*F+F8*(F3F.F/F.F7F .F<*&F3F.F7F+FD,(*&%#DxGF.F3F.F.F*FDF4FD,B*&,,*$F4F+F,F4F0F,F.*&F4F.F7 F.F,F7F,F.%#SjGF.F.F2F5F6F8F9F8F:F8F;F8F3FF?F@FAF@FBF8FCFDFEF>FFF 8FGF " 0 "" {MPLTEXT 1 0 23 "GB := gbasis(r ect_h,T):" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 66 "I suppressed printin g the output because it is so large! There are" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "nops(GB);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"#5" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 102 "different polynomials in it. The number of terms, and the particular variables, occurring in each are " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "map(p->[nops(p),indets(p)],GB); " }}{PARA 12 "" 1 "" {XPPMATH 20 "6#7,7$\"$3$<(%\"xG%\"nG%#SkG%#DxG%\" mG%#SjG7$\"$7&F&7$\"\"$<&F'%\"kG%\"jGF*7$\"#t<)F'F(F2F)F*F+F,7$\"#GF67 $\"$$>F67$\"$/\"F67$\"$o%F67$\"#:<(F'F(F2F)F*F+7$\"#;<(F'F(F2F*F+F," } }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 210 "We see the first two expression s are free of k and j. The other expressions are irrelevant. But to \+ give an idea what a Grobner basis is like (output is MUCH larger than \+ the input), we show its small elements:" }{MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 47 "prettypol := p -> collect(p,[Dx,Sk, Sj],factor);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%*prettypolG:6#%\"pG6 \"6$%)operatorG%&arrowGF(-%(collectG6%9$7%%#DxG%#SkG%#SjG%'factorGF(F( " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 61 "for r in [3,4,5,9,10] d o print(` GB`[r]=prettypol(GB[r])) od;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/&%$~GBG6#\"\"$,(*&%#DxG\"\"\"%\"xGF+!\"\"%\"kGF+%\"jGF+" }} {PARA 12 "" 1 "" {XPPMATH 20 "6#/&%$~GBG6#\"\"%,,*&,&*&,&*$%\"xGF'!\") *&%#SjG\"\"\"F.\"\"$\"\")F2%#SkGF2F2*&F.F'F1F2!#CF2%#DxGF3F2*&,&*&,&*( F.\"\"#,(%\"nGF2%\"mGF2F>F2F2F1F2\"#7*&F.F3,*F@\"\"&FAF3\"#:F2%\"kGF'F 2!\"%F2F5F2F2*(F.F3,*\"#HF2FGFHF@\"\"(FA\"\"*F2F1F2FHF2F8F>F2*&,&*&,&* *F.F2,&FAF2F2F2F2,(FAF2F>F2F@F3F2F1F2F'*&F.F>,4*&F@F2FAF2\"#5FG\"#?FA \"#C*$FAF>F3*$F@F>FLF@\"#M*&FGF2FAF2F4\"#UF2*&FGF2F@F2F4F2!\"#F2F5F2F2 *(F.F>,4F@\"#IFA\"#SFG!#?FfnFEFjnF/FenFMFhnF/FW\"#9\"#YF2F2F1F2F[oF2F8 F2F2*&,&**,&F@F2FA!\"\"F2,&F@F2FAF2F2,&FGF2F2F2F2F1F2F'**F.F2F?F2,(F@F 2FAF2F2F2F2,*F@F3FAF2FGF'\"\"'F2F2FgoF2F5F2F2*,F.F2F?F2F[pF2,*F@F2FAF3 FGFHF>F2F2F1F2Fgo" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#/&%$~GBG6#\"\"&,* *&,&*&,&*&%#SjG\"\"\"%\"xG\"\"#!\"%*$F0\"\"$\"\"%F/%#SkGF/F/*&F.F/F0F4 F2F/%#DxGF1F/*&,&*&,&*(F0F/,(F/F/%\"mG!\"\"%\"kGF1F/F.F/F5*&F0F1,(F'F/ %\"nGF1F?F1F/F1F/F6F/F/*(F0F1FCF/F.F/!\"#F/F8F/F/*&,&*(,&FAF/F/F/F/,&F DF/F?F/F/F.F/F5*(F0F/,(FDF/F?F/F1F/F/,(FDF/F?F/F/F/F/F/F/F6F/F/**F0F/F MF/FNF/F.F/F@" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#/&%$~GBG6#\"\"*,**&%# DxG\"\"#%\"xG\"\"$!\"%*(F,F+,(\"\"&\"\"\"%\"nGF+%\"mGF+F2F*F2!\"#*(,&% \"kGF2F2F2F2,(F8F2F3F2F2F2F2%#SkGF2\"\"%*(F,F2,(F3F2F4F2F+F2F2,(F3F2F4 F2F2F2F2!\"\"" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#/&%$~GBG6#\"#5,**&,&* $%\"xG\"\"$!\"%*&%#SjG\"\"\"F,\"\"#\"\"%F1%#DxGF2F1*&,&*(F,F1,(%\"kGF2 !\"\"F1%\"mGF:F1F0F1F.*&F,F2,(\"\"&F1%\"nGF2F;F2F1!\"#F1F4F1F1*(F9F1,& F9F1F;F:F1F0F1F3*(F,F1,(F?F1F;F1F2F1F1,(F?F1F;F1F1F1F1F:" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 90 "Select the operators that are free of k a nd j (i.e., GB[1] and GB[2], not printed above):" }}{PARA 0 "> " 0 " " {MPLTEXT 1 0 46 "GB_no_kj := select(p -> not has(p,\{k,j\}), GB):" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "nops(GB_no_kj);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"#" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "indets(GB_no_kj[1]), indets(GB_no_kj[2]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6$<(%\"xG%\"nG%#SkG%#DxG%\"mG%#SjGF#" }}}{EXCHG {PARA 0 " " 0 "" {TEXT -1 250 "Let H = sum_\{k,j\} h. If h satisfies\n \+ C(x,n,m,Dx,Sk,Sj) * h(x,n,m,k,j) = 0\nthen summing this over all k,j \+ gives\n C(x,n,m,Dx,1,1) * H(x,n,m) = 0\ni.e., a differential \+ equation w.r.t. x that H satisfies. We have two such operators C." } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "CT := subs(Sk=1,Sj=1,GB_no _kj): map(prettypol,CT);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#7$,.*(%\"x G\"\"%,&!\"\"\"\"\"F&F'F*%#DxG\"\"&!#K*(F&\"\"$,.%\"mG!\"&%\"nGF2*&F3F *F&F*\"#?!#=F*F&\"$/\"*&F&F*F1F*F5F*F+F'!#;*(F&\"\"#,:*$F3F;!\"#*&F&F* F3F;\"#5*(F&F*F3F*F1F*F5F&\"$&=!#>F**&F3F*F1F*F2F3!#8*&F&F*F1F;F@F8\"# %)F1FEF4FG*$F1F;F>F*F+F/F-*(F&F*,JF8\"$B$*&F&F*F3F/F@*$F3F/F)F?\"#'*F9 F*F1!#BF3FOFFFNF=!#5F&\"$y$*&F&F*F1F/F@*$F1F/F)FD!#C*(F&F*F3F*F1F;\"#I FA\"$#>*&F3F*F1F;!\"'*&F3F;F1F*FY*(F1F*F&F*F3F;FVFHFPF4FKF*F+F;F9*&,X* &F1F;F3F;\"#KFHFinF&!%_6F3\"#;FD\"#kF4!%/>F=FinFU!%c5FenF^oFR!$_$FLF_o *(F3F*F&F*F1F/!$g\"*&F3F'F&F*!#S*(F&F*F1F;F3F;!$S#*(F&F*F1F*F3F/Fao*&F &F*F1F'FcoF?!%37F1F[oFMF[oFSF[oFXF\\oFZF\\oF8F]oFA!%;CFFFho*&F1F/F3F*F [o*&F3F/F1F*F[oF*F+F*F**(,&F3F*F1F*F*,(F3F*F1F*F;F*F;,(F3F*F1F*F*F*F;! \"%,,*,F&F/,&F3F*F1F)F*F]pF*F(F*F+F'F9*,F&F;FcpF*F]pF*,.F3F)F4F'F&\"#= !\"$F*F1F)F8F'F*F+F/F-*,F&F*FcpF*F]pF*,:F?\"\"'F=F)F3FYFA\"#7FDFgpF4\" #UF&\"#x!\"(F*F1FYF8F\\qFFFjpFHF)F*F+F;F9**FcpF*F]pF*,FFLF;F?\"#:FenFj pFZF)F=F)FDFgpF3F>FUFjpFAFVF4\"#RFXF)F)F*F8FbqF&\"#NFRF;F1F>FFFaqFHF)F *F+F*F9**FcpF*F]pF*F^pF;F_pF;F`p" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 86 "Since we have two differential equations w.r.t. x that H satisfies , we take their GCD:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 63 "GCD := skew _gcdex(op(CT),Dx,A): GCD := GCD[1]: prettypol(GCD);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#,,*,%\"xG\"\"$,&%\"nG\"\"\"%\"mG!\"\"F),&F(F)F*F)F), &F+F)F%\"\"%F)%#DxGF.!\"%*,F%\"\"#F'F)F,F),.F(F+*&F(F)F%F)F.F%\"#=!\"$ F)F*F+*&F%F)F*F)F.F)F/F&!\")*,F%F)F'F)F,F),:*&F%F)F(F2\"\"'*$F(F2F+F(! \"'*(F%F)F(F)F*F)\"#7*&F(F)F*F)F6F4\"#UF%\"#x!\"(F)F*F>F7FB*&F%F)F*F2F <*$F*F2F+F)F/F2F0**F'F)F,F),F*&F%F)F(F&F2F;\"#:*(F*F)F%F)F(F2F<*&F(F2F *F)F+F=F+FAF6F(!\"#*(F%F)F(F)F*F2F +/- m, we \+ can factor out (n-m)(n+m):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 55 "GCD2 \+ := simplify(GCD / ((n-m)*(n+m))): prettypol(GCD2);" }}{PARA 12 "" 1 " " {XPPMATH 20 "6#,,*(%\"xG\"\"$,&!\"\"\"\"\"F%\"\"%F)%#DxGF*!\"%*(F%\" \"#,.%\"nGF(*&F0F)F%F)F*F%\"#=!\"$F)%\"mGF(*&F%F)F4F)F*F)F+F&!\")*(F%F ),:*&F%F)F0F.\"\"'*$F0F.F(F0!\"'*(F%F)F0F)F4F)\"#7*&F0F)F4F)F3F1\"#UF% \"#x!\"(F)F4FF5FGF4FH*(F4F)F%F)F 0F.!#C*(F%F)F0F)F4F.FOF=!$?\"F*F)F9FK*&F%F)F0F&F6FDF*F)F+F)F)*&,(F0F)F 4F)F.F)F.,(F0F)F4F)F)F)F.F(" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 63 "In normal notation, here is the differential equation to solve:" } {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 26 "applyop r(GCD2,H(x),A) = 0;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#/,,*&,@*&%\"mG \"\"#%\"nGF)!\"'*&F*\"\"\"F(F-!#E!\"%F-*$F(F)!#8F*!#7F(F2*$F*\"\"%!\" \"*$F(\"\"$F+*$F*F)F1*&F*F)F(F-!#=*$F*F7F+*$F(F4F5*&F*F7F(F-F/*&F*F-F( F)F:*&F(F7F*F-F/F--%\"HG6#%\"xGF-F-*&,F*&F*F-FCF-!$c\"F*\"\")FC!$S\"F> F4*&FCF-F(F)!#gF9F4*&FCF-F(F7!\")F8F4F,\"#7*&FCF-F(F-FGF(FH*(F(F-FCF-F *F)!#C*(FCF-F*F-F(F)FQ*(FCF-F*F-F(F-!$?\"F4F-*&FCF-F*F)FK*&FCF-F*F7FMF 0F4F--%%diffG6$F@FCF-F-*&,:FC\"#G*&FCF)F(F)FQFO\"#CFFFhn*$FCF)!$3$*(FC F)F*F-F(F-!#[*&F*F-FCF)!$o\"*&FCF)F(F-F^oFJF4FUF4*&FCF)F*F)FQFSFNF--FX 6$FWFCF-F-*&,.F_oFH*$FCF7!$W\"*&FCF7F(F-!#K*&FCF7F*F-FhoF]oFHFinFhnF-- FX6$FaoFCF-F-*&,&FeoF4*$FCF4!#;F--FX6$FjoFCF-F-\"\"!" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "Heq := \":" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 243 "It's fourth order, so there are 4 linearly independent s olutions.. We can solve it by Laurent series, and then it is expresse d as a single summation instead of a double summation; our solution wi ll be a linear combination of 4 Laurent series." }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 48 "Hlaurent := sum(b[k]*x^(k+alpha),k=0..infinity );" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%)HlaurentG-%$sumG6$*&&%\"bG6#% \"kG\"\"\")%\"xG,&F,F-%&alphaGF-F-/F,;\"\"!%)infinityG" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 36 "Applying the operator termwise gives" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 72 "termwise := collect(expand(applyopr (GCD2,b[k]*x^(k+alpha),A)),x,factor);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%)termwiseG,&*,&%\"bG6#%\"kG\"\"\")%\"xGF*F+)F-%&alphaGF+,,%\"nGF+ \"\"#F+F*F2F/F2%\"mGF+F2,,F1F+F+F+F*F2F/F2F3F+F2!\"\"*2F'F+F,F+F.F+,&F *F+F/F+F+,(F*F+F/F+F3F+F+,(F*F+F/F+F1F+F+,*F1F+F*F+F/F+F3F+F+F-F5\"\"% " }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 83 "Shift the index in the second term to collect the coeff. of x^(k+alpha) in the sum:" }{MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 113 "xkcoeff := factor(s implify(op(1,termwise)/x^(k+alpha)))+factor(simplify(subs(k=k+1,op(2,t ermwise))/x^(k+alpha)));" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%(xkcoeff G,&*(&%\"bG6#%\"kG\"\"\",,%\"nGF+\"\"#F+F*F.%&alphaGF.%\"mGF+F.,,F-F+F +F+F*F.F/F.F0F+F.!\"\"*,&F(6#,&F*F+F+F+F+,(F*F+F+F+F/F+F+,*F*F+F+F+F/F +F0F+F+,*F*F+F+F+F/F+F-F+F+,,F-F+F*F+F+F+F/F+F0F+F+\"\"%" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 16 "So b[k+1]/b[k] =" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "bratio := factor(solve(xkcoeff,b[k+1])/b[k]);" }} {PARA 12 "" 1 "" {XPPMATH 20 "6#>%'bratioG,$*.,,%\"nG\"\"\"\"\"#F)%\"k GF*%&alphaGF*%\"mGF)F*,,F(F)F)F)F+F*F,F*F-F)F*,(F+F)F)F)F,F)!\"\",*F+F )F)F)F,F)F-F)F0,*F+F)F)F)F,F)F(F)F0,,F(F)F+F)F)F)F,F)F-F)F0#F)\"\"%" } }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 81 "We find alpha using b[k]=0 for k <0 but b[0]<>0. This gives the indicial equation" }}{PARA 0 "> " 0 " " {MPLTEXT 1 0 21 "subs(k=-1,xkcoeff)=0;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#/,&*(&%\"bG6#!\"\"\"\"\",(%\"nGF*%&alphaG\"\"#%\"mGF*F.,*F,F*F)F *F-F.F/F*F.F)*,&F'6#\"\"!F*F-F*,&F-F*F/F*F*,&F-F*F,F*F*,(F,F*F-F*F/F*F *\"\"%F4" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "subs(b[-1]=0,\" );" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/,$*,&%\"bG6#\"\"!\"\"\"%&alphaG F*,&F+F*%\"mGF*F*,&F+F*%\"nGF*F*,(F/F*F+F*F-F*F*\"\"%F)" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "solve(\",alpha);" }}{PARA 11 "" 1 " " {XPPMATH 20 "6&,$%\"mG!\"\"\"\"!,&%\"nGF%F$F%,$F(F%" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 359 "Thus there are 4 different Laurent serie s solutions to the equation, beginning with terms x^(-m), x^(-n), x^(- n-m), x^0. It's a 4th order equation, so these span all solutions. T he original double sum given clearly begins with x^0, so we may dispos e of the other solutions (provided n,m<>0 and n<>-m). Then the term r atio for the Taylor series we want is " }{MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "bxratio := subs(alpha=0,bratio)*x; " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%(bxratioG,$*0,*%\"nG\"\"\"\"\"#F )%\"kGF*%\"mGF)F*,*F(F)F)F)F+F*F,F)F*,&F+F)F)F)!\"\",(F+F)F)F)F,F)F/,( F+F)F)F)F(F)F/,*F(F)F+F)F)F)F,F)F/%\"xGF)#F)\"\"%" }}}{EXCHG {PARA 0 " " 0 "" {TEXT -1 277 "Note that if n or m = 0, or n=-m, the usual metho d of solving this differential equation would give additional solution s with logarithms, which would still be linearly independent of this s olution we are developing, so this solution is actually valid even in \+ these other cases." }{MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 58 "Also in the original double sum, the coefficient of x^0 i s" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "x0coeff := subs(k=0,j= 0,h);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%(x0coeffG*(-%*factorialG6#, &%\"nG\"\"\"%\"mGF+F+-F'6#F*!\"\"-F'6#F,F/" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 66 "So we have found the Taylor series using hypergeometric f unctions." }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 96 "Hhyper := x0coeff * hy pergeom(['(n+m+2)/2'$2, '(n+m+1)/2'$2], [m+1,n+1,n+m+1], 2^2 * 2^2 * x /4);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%'HhyperG**-%*factorialG6#,&% \"nG\"\"\"%\"mGF+F+-F'6#F*!\"\"-F'6#F,F/-%*hypergeomG6%7&,(F*#F+\"\"#F ,F7F+F+F6,(F*F7F,F7F7F+F97%,&F*F+F+F+,(F*F+F,F+F+F+,&F,F+F+F+,$%\"xG\" \"%F+" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 16 "Normal notation:" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 49 "read gmisc: # routine to put it in usual notation" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 79 "`` (x0coeff) * fmat_pFq(['(n+m)/`2`+1'$2,'(n+m+1)/`2`'$2],[m+1,n+1,n+m+1] , 4*x);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#**-%!G6#*(-%*factorialG6#,& %\"nG\"\"\"%\"mGF-F--F)6#F,!\"\"-F)6#F.F1F-&F%6#\"\"%F-&%\"FG6#\"\"$F- -%'MATRIXG6#7%7+,&*&F+F-%\"2GF1F-F-F-%\",GF@FC*&,(F,F-F.F-F-F-F-FBF1FC FD%\"~GFF7+FFFFFFFFFFFFFF%\";G,$%\"xGF67+,&F.F-F-F-FC,&F,F-F-F-FCFEFFF FFFFFF-" }}}{EXCHG {PARA 3 "" 0 "" {TEXT -1 17 "Example 3: q-sums" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "restart; read(gmisc);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 17 "Chyzak's software" }{MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 63 "with(Mgfun): with(Holonomy): with(Groebner): with(Ore_algebra):" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 99 "Chyzak's q-functions are different than Koepf's; Koepf's are mo re powerful, let's use them instead." }{MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "with(qsum);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%OCopyright~1998,~~Harald~Boeing~&~Wolfram~KoepfG" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#%;Konrad-Zuse-Zentrum~BerlinG" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#7#%*qsum/initG" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 98 "This is the summand of the q-analogue of the Chu-Van dermonde identity (Koepf p. 60 # 4.18; p. 158)" }{MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 47 "h := qphihyperterm([q^(-n),b ],[c],q,c*q^n/b,k);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"hG*,-%,qpoc hhammerG6%)%\"qG,$%\"nG!\"\"F*%\"kG\"\"\"-F'6%%\"bGF*F.F/)*(%\"cGF/)F* F,F/F2F-F.F/-F'6%F5F*F.F--F'6%F*F*F.F-" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 107 "The annihilators are generated by these ones. Let qn de note q^n and qk denote q^k, and clear denominators." }{MPLTEXT 1 0 0 " " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 145 "rect_h := [Sn - qsimpl ify(subs(n=n+1,h)/h), Sk - qsimplify(subs(k=k+1,h)/h) ];\nrect_h := su bs(q^k=qk,q^n=qn,rect_h);\nrect_h := map(numer,rect_h);" }}{PARA 11 " " 1 "" {XPPMATH 20 "6#>%'rect_hG7$,&%#SnG\"\"\"*(,&*&)%\"qG%\"nGF(F-F( F(!\"\"F(F()F-%\"kGF(,&F+F(F0F/F/F/,&%#SkGF(*.,&F,F/F0F(F(,&F/F(*&%\"b GF(F0F(F(F(%\"cGF(F9F/,&F/F(*&F:F(F0F(F(F/,&F/F(*&F-F(F0F(F(F/F/" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%'rect_hG7$,&%#SnG\"\"\"*(,&*&%#qnGF( %\"qGF(F(!\"\"F(F(%#qkGF(,&F+F(F/F.F.F.,&%#SkGF(*.,&F,F.F/F(F(,&F.F(*& %\"bGF(F/F(F(F(%\"cGF(F7F.,&F.F(*&F8F(F/F(F(F.,&F.F(*&F-F(F/F(F(F.F." }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%'rect_hG7$,**(%#SnG\"\"\"%#qnGF)% \"qGF)F)*&F(F)%#qkGF)!\"\"*(F-F)F*F)F+F)F.F-F),2*&%#SkGF)%\"bGF)F)**F2 F)F3F)F+F)F-F)F.**F2F)F3F)%\"cGF)F-F)F.*,F2F)F3F)F6F)F-\"\"#F+F)F)*&F6 F)F*F)F.**F6F)F*F)F3F)F-F)F)*&F6F)F-F)F)*(F6F)F3F)F-F8F." }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 83 "Set up an Ore algebra for these operators : Sn H(q^n, q^k) = H(q*q^n, q^k), etc." }{MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 86 "A := skew_algebra(qdilat=[Sn ,qn=q^n],qdilat=[Sk,qk=q^k],comm=[q,b,c],polynom=[qn,qk]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"AG%,Ore_algebraG" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 47 "Term order to eliminate k (in the form qk=q^k):" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "T := termorder(A,lexdeg([qk],[Sk,Sn ,qn]));" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"TG%+term_orderG" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "GB := gbasis(rect_h,T);" }} {PARA 12 "" 1 "" {XPPMATH 20 "6#>%#GBG7&,P*(%#SnG\"\"\"%#SkGF)%\"bGF)! \"\"**%\"qG\"\"$%#qnGF)F*F)F+F)F,**F.\"\"%F0\"\"#F*F)F+F)F)*,F.F/F0F)F (F)F*F)F+F)F)*,F.F2F+F)F*F)F(F)F0F3F,*.F.F/%\"cGF)F+F)F*F)F(F)F0F3F,** F(F)F7F)F0F)F.F)F)**F.F)F(F)F*F)F+F)F,**F.F3F0F)F*F)F+F)F,*.F7F)F+F)F* F)F0F3F.F/F(F3F)*.F7F)F+F)F*F)F(F3F0F)F.F)F,*,F+F)F*F)F(F3F0F)F.F3F,** F(F)F.F/F7F)F0F3F,*.F.F)F7F)F+F)F*F)F(F)F0F)F)*(F(F3F*F)F+F)F)*,F.F2F7 F)F+F)F0F/F(F)F)*,F+F)F7F)F.F3F(F)F0F3F,*,F+F)F*F)F(F)F0F)F.F3F3*(F.F2 F7F)F0F/F,*(F.F/F7F)F0F3F)*(F.F)F7F)F0F)F,*(F.F)F*F)F+F)F)*(F.F3F7F)F0 F3F),**(F(F)F0F)F.F)F,*&F(F)%#qkGF)F)*(FLF)F0F)F.F)F)FLF,,:*.F7F)F+F)F *F)F0F3F.F3FLF)F)*.F.F)F0F)F*F)F+F)F7F)FLF)F,*,F.F)F7F)F0F3F+F)FLF)F,* *F7F)F0F)F+F)FLF)F)*.F7F)F+F)F*F)F0F3F(F)F.F)F,*,F7F)F+F)F*F)F(F)F0F)F )*,F+F)F*F)F(F)F0F)F.F)F)F'F,**F.F)F0F)F*F)F+F)F,*(F.F)F7F)F0F3F)*&F*F )F+F)F)*&F7F)F0F)F,,2FXF)**F*F)F+F)F.F)FLF)F,**F*F)F+F)F7F)FLF)F,*,F*F )F+F)F7F)FLF3F.F)F)FYF,FRF)*&F7F)FLF)F)*(F7F)F+F)FLF3F," }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 71 "prettypol := p -> sort(collect(p,\{ Sn,Sk\},factor),[n,k,b,c,Sn,Sk],tdeg);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%*prettypolG:6#%\"pG6\"6$%)operatorG%&arrowGF(-%%sortG6%-%(coll ectG6%9$<$%#SnG%#SkG%'factorG7(%\"nG%\"kG%\"bG%\"cGF4F5%%tdegGF(F(" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 66 "for r from 1 to nops(GB) do print(` GB`[r] = prettypol(GB[r])) od;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#/&%$~GBG6#\"\"\",**,,&!\"\"F'*&%\"qG\"\"#%#qnGF'F'F',&*(F-F'F/F' %\"cGF'F'F+F'F'%\"bGF'%#SnGF.%#SkGF'F'*,F-F'F*F',&*&F/F'F-F'F'F+F'F'F3 F'F5F'F'*,F-F'F/F'F*F'F7F'F2F'F+*&,&**F*F',*F1F'F,F'F-F+F+F'F'F3F'F5F' F+*,F-F'F/F'F*F',&*(F-F'F/F'F3F'F'F+F'F'F2F'F'F'F4F'F'" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/&%$~GBG6#\"\"#,&*&,&*&%#qnG\"\"\"%\"qGF-!\"\"%#qk GF-F-%#SnGF-F-*&F0F-,&F+F-F/F-F-F-" }}{PARA 12 "" 1 "" {XPPMATH 20 "6# /&%$~GBG6#\"\"$,(*,,&*&%#qnG\"\"\"%\"cGF-F-!\"\"F-F-,&*&F,F-%\"qGF-F-F /F-F-%\"bGF-%#SnGF-%#SkGF-F/**F0F-,&**F2F-F,F-%#qkGF-F.F-F-F/F-F-F3F-F 5F-F-**F,F-,&*&F9F-F3F-F-F/F-F-F0F-F.F-F/" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/&%$~GBG6#\"\"%,&**,&*&%#qkG\"\"\"%\"cGF-F-!\"\"F-F-,&* &%\"qGF-F,F-F-F/F-F-%\"bGF-%#SkGF-F-*(,&%#qnGF/F,F-F-,&*&F,F-F3F-F-F/F -F-F.F-F/" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 73 "Only the first one i s free of qk (=q^k, the only way k enters into this):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "GB_no_qk := select(p -> not has(p,qk),GB);" }} {PARA 12 "" 1 "" {XPPMATH 20 "6#>%)GB_no_qkG7#,P*(%#SnG\"\"\"%#SkGF)% \"bGF)!\"\"**%\"qG\"\"$%#qnGF)F*F)F+F)F,**F.\"\"%F0\"\"#F*F)F+F)F)*,F. F/F0F)F(F)F*F)F+F)F)*,F.F2F+F)F*F)F(F)F0F3F,*.F.F/%\"cGF)F+F)F*F)F(F)F 0F3F,**F(F)F7F)F0F)F.F)F)**F.F)F(F)F*F)F+F)F,**F.F3F0F)F*F)F+F)F,*.F7F )F+F)F*F)F0F3F.F/F(F3F)*.F7F)F+F)F*F)F(F3F0F)F.F)F,*,F+F)F*F)F(F3F0F)F .F3F,**F(F)F.F/F7F)F0F3F,*.F.F)F7F)F+F)F*F)F(F)F0F)F)*(F(F3F*F)F+F)F)* ,F.F2F7F)F+F)F0F/F(F)F)*,F+F)F7F)F.F3F(F)F0F3F,*,F+F)F*F)F(F)F0F)F.F3F 3*(F.F2F7F)F0F/F,*(F.F/F7F)F0F3F)*(F.F)F0F)F7F)F,*(F.F)F*F)F+F)F)*(F.F 3F7F)F0F3F)" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "nops(GB_no_q k);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"\"" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 253 "So we have a k-free (rather q^k - free) recursion for the summand F(n,k).\nLet f(n) = sum_k F(n,k). Clearly sum_k Sk^r F( n,k) = sum_k F(n,k) = f(n) too, so summing this recursion over k gives a recursion for f(n).\nIn operator form, we just set Sk to 1:" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "f_recops := subs(Sk=1,GB_no_qk);" } }{PARA 12 "" 1 "" {XPPMATH 20 "6#>%)f_recopsG7#,P*&%#SnG\"\"\"%\"bGF)! \"\"*(%\"qG\"\"$%#qnGF)F*F)F+*(F-\"\"%F/\"\"#F*F)F)**F-F.F/F)F(F)F*F)F )**F-F1F*F)F(F)F/F2F+*,%\"cGF)F-F.F*F)F(F)F/F2F+**F(F)F6F)F/F)F-F)F)*( F-F)F(F)F*F)F+*(F-F2F/F)F*F)F+*,F6F)F*F)F/F2F-F.F(F2F)*,F6F)F*F)F(F2F/ F)F-F)F+**F*F)F(F2F/F)F-F2F+**F(F)F-F.F6F)F/F2F+*,F-F)F6F)F*F)F(F)F/F) F)*&F(F2F*F)F)*,F-F1F6F)F*F)F/F.F(F)F)*,F*F)F6F)F-F2F(F)F/F2F+**F*F)F( F)F/F)F-F2F2*(F-F1F6F)F/F.F+*(F-F.F6F)F/F2F)*(F-F)F/F)F6F)F+*&F*F)F-F) F)*(F-F2F6F)F/F2F)" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "facto r(f_recops);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#7#*&,&!\"\"\"\"\"*&%\" qG\"\"#%#qnGF'F'F',:*,%\"bGF'%\"cGF'F)F*%#SnGF'F+F*F'*(F)F*F/F'F+F*F&* (F)F*F+F'F.F'F'**F.F'F0F'F+F'F)F*F&*(F)F'F+F'F/F'F'**F0F'F/F'F+F'F)F'F &*,F)F'F/F'F.F'F0F'F+F'F&*,F/F'F.F'F0F*F+F'F)F'F'*&F.F'F)F'F&*(F)F'F0F 'F.F'F'*&F0F*F.F'F&*&F0F'F.F'F'F'" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "f_recops := simplify(f_recops[1] / (-1 + qn*q^2));" } }{PARA 12 "" 1 "" {XPPMATH 20 "6#>%)f_recopsG,:*,%\"bG\"\"\"%\"cGF(%\" qG\"\"#%#SnGF(%#qnGF+F(*(F*F+F)F(F-F+!\"\"*(F*F+F-F(F'F(F(**F'F(F,F(F- F(F*F+F/*(F*F(F-F(F)F(F(**F,F(F)F(F-F(F*F(F/*,F*F(F)F(F'F(F,F(F-F(F/*, F)F(F'F(F,F+F-F(F*F(F(*&F'F(F*F(F/*(F*F(F,F(F'F(F(*&F,F+F'F(F/*&F,F(F' F(F(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "prettypol(\");" }} {PARA 12 "" 1 "" {XPPMATH 20 "6#,(*(,&*(%\"qG\"\"\"%#qnGF(%\"cGF(F(!\" \"F(F(%\"bGF(%#SnG\"\"#F(*&,.**F'F.F)F.F,F(F*F(F(**F'F(F)F(F,F(F*F(F+* &F'F(F,F(F(F,F(*(F'F.F)F(F,F(F+F&F+F(F-F(F(*(F'F(,&F,F(*&F)F(F*F(F+F(, &*&F)F(F'F(F(F+F(F(F(" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 44 "Thus, f( n) = f(n,q) satisfies the recursion:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "qrec := applyopr(f_recops,f(n),A): qrec = 0;" }}{PARA 12 "" 1 " " {XPPMATH 20 "6#/,(*&,&%\"bG!\"\"**%\"qG\"\"\")F*%\"nGF+F'F+%\"cGF+F+ F+-%\"fG6#,&F-F+\"\"#F+F+F+*&,.**F*F3F,F3F'F+F.F+F+F)F(*&F*F+F'F+F+F'F +*(F*F3F,F+F'F+F(*(F*F+F,F+F.F+F(F+-F06#,&F-F+F+F+F+F+*&,*F9F+*(F*F3F. F+F,F3F(F8F+F7F(F+-F06#F-F+F+\"\"!" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 114 "The hypergeometric solutions of this are found by the q-analog ue of Petkovsek's Hyper; this is in Koepf's package:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 74 "qsol := qrecsolve(qrec,q,f(n),return=qhypergeome tric); qsol := qsol[1][1]:" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%%qsolG 7#7$*&-%,qpochhammerG6%*&%\"cG\"\"\"%\"bG!\"\"%\"qG%\"nGF--F)6%F,F0F1F /1\"\"!F1" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 290 "It only found one, \+ and the recursion was 2nd order. We will find that a multiple of this satisfies two initial conditions, but were that not so, we could use \+ reduction of order to find a second solution..\nThe summand h has fini te support (k=0,1,...,n), so it's easy to compute some values:" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 110 "sumh := N -> factor(qsimplify(sum( subs(n=N,k=K,h),K=0..N)));\nqsol_n := N -> factor(qsimplify(subs(n=N,q sol)));" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%%sumhG:6#%\"NG6\"6$%)oper atorG%&arrowGF(-%'factorG6#-%*qsimplifyG6#-%$sumG6$-%%subsG6%/%\"nG9$/ %\"kG%\"KG%\"hG/F=;\"\"!F:F(F(" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%'q sol_nG:6#%\"NG6\"6$%)operatorG%&arrowGF(-%'factorG6#-%*qsimplifyG6#-%% subsG6$/%\"nG9$%%qsolGF(F(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "'[sumh(N),qsol_n(N)]'$N=0..3;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6&7 $\"\"\"F$7$,$*(,&%\"bGF$%\"cG!\"\"F$,&F+F$F*F$F+F)F+F+F&7$,$*,F(F$,&F) F+*&%\"qGF$F*F$F$F$,&F+F$F1F$F+F,F+F)!\"#F+F.7$,$*0F(F$F0F$,&F)F+*&F*F $F2\"\"#F$F$,&F+F$F9F$F+F3F+F,F+F)!\"$F+F6" }}}{EXCHG {PARA 11 "" 1 " " {TEXT -1 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 204 "We don't even \+ have to rescale this solution: it satisfies the first two initial cond itions (and we have redundantly checked more) already! So we have pro ved the q-analogue of the Chu-Vandermonde identity" }}{PARA 0 "> " 0 " " {MPLTEXT 1 0 71 "fmat_pphiq([q^(-n),b],[c],q,c*q^n/b) = ``;\nSum(h,k =0..infinity) = qsol;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/*(&%!G6#\"\" #\"\"\"&%$phiG6#F)F)-%'MATRIXG6#7%7))%\"qG,$%\"nG!\"\"%\",G%\"bG%\"~GF 9F9F97)F9F9F9%\";GF3F7*(%\"cGF))F3F5F)F8F67)F=F9F9F9F9F9F9F)F&" }} {PARA 12 "" 1 "" {XPPMATH 20 "6#/-%$SumG6$*,-%,qpochhammerG6%)%\"qG,$% \"nG!\"\"F,%\"kG\"\"\"-F)6%%\"bGF,F0F1)*(%\"cGF1)F,F.F1F4F/F0F1-F)6%F7 F,F0F/-F)6%F,F,F0F//F0;\"\"!%)infinityG*&-F)6%*&F7F1F4F/F,F.F1-F)6%F7F ,F.F/" }}}{EXCHG {PARA 3 "" 0 "" {TEXT -1 55 "Example 4. Legendre pol ynomials (from Chyzak's papers)" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 195 "Here are three operators that annihilate the Legendre Polynomials \n(see Chyzak's paper Holonomic systems and automatic proofs of identi ties, pp. 24ff & 48ff; and the Introduction in Koepf's book)." }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 124 "DE := (1-x^2)*Dx^2 - 2*x*Dx +n*(n+1);\nRE := (n+2)*Sn^2 - (2*n+3) * x * Sn + (n+1);\nRDE := (1-x^2 )*Dx*Sn + (n+1)*x*Sn - (n+1);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#DE G,(*&,&\"\"\"F(*$%\"xG\"\"#!\"\"F(%#DxGF+F(*&F*F(F-F(!\"#*&%\"nGF(,&F1 F(F(F(F(F(" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#REG,**&,&%\"nG\"\"\" \"\"#F)F)%#SnGF*F)*(,&F(F*\"\"$F)F)%\"xGF)F+F)!\"\"F(F)F)F)" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%$RDEG,**(,&\"\"\"F(*$%\"xG\"\"#!\"\"F(%#Dx GF(%#SnGF(F(*(,&%\"nGF(F(F(F(F*F(F.F(F(F1F,F,F(" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 21 "We use Grobner bases " }{TEXT 259 3 "(a)" }{TEXT -1 43 " to derive RE from the other two, and then " }{TEXT 260 3 "(b)" } {TEXT -1 33 " to derive DE from the other two." }{MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "" 0 "" {TEXT 258 3 "(a)" }{TEXT -1 61 " create elimina tion term order to remove Dx from two of these" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 40 "U := termorder(A,lexdeg([Dx],[n,x,Sn]));" }}{PARA 8 " " 1 "" {TEXT -1 79 "Error, (in termorder) rational indeterminates not \+ allowed to build a term order" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 96 " Redefine the algebra so that only polynomials in x,n are allowed, rath er than rational functions" }{MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 61 "A_poly:=skew_algebra(diff=[Dx,x],shift=[Sn,n],po lynom=[x,n]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%'A_polyG%,Ore_algeb raG" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 120 "(Page 25) Get recurrence \+ equation by taking the diff eq and the mixed diff eq/recurrence eq, an d eliminating Dx from it." }{MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "U := termorder(A_poly,lexdeg([Dx],[n,x,Sn]));" } }{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"UG%+term_orderG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "bas := map(expand,[DE,RDE]);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%$basG7$,,*$%#DxG\"\"#\"\"\"*&F(F)%\"xGF)!\"\" *&F,F*F(F*!\"#*$%\"nGF)F*F1F*,.*&F(F*%#SnGF*F**(F(F*F4F*F,F)F-*(F,F*F4 F*F1F*F**&F,F*F4F*F*F1F-F-F*" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "GBR := gbasis(bas,U);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%$GBRG 7',4*&%#SnG\"\"#%\"nGF)!\"\"*&F(F)F*\"\"\"!\"%*$F(F)F.*(%\"xGF-F(F-F*F -\"\"(*&F1F-F(F-\"\"'*(F1F-F(F-F*F)F)F*!\"$!\"#F-*$F*F)F+,0*(%#DxGF-F( F-F*F-F+F8F-F*F)*(F1F-F;F-F*F-F-*&F1F-F;F-F-*&F;F-F(F-F+F-F-,2*(F;F-F( F-F1F-F+*&F;F-F*F-F+F;F+*&F(F-F*F-!\"'F(!\"&*&F(F-F*F)F7*(F;F-F(F)F*F- F-*&F;F-F(F)F),.F>F+*(F;F-F(F-F1F)F-F0F+F3F+F*F-F-F-,,*$F;F)F+*&F;F)F1 F)F-F=F)F8F+F*F+" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 38 "noDx := select(f->not has(f,Dx), GBR);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%% noDxG7#,4*&%#SnG\"\"#%\"nGF)!\"\"*&F(F)F*\"\"\"!\"%*$F(F)F.*(%\"xGF-F( F-F*F-\"\"(*&F1F-F(F-\"\"'*(F1F-F(F-F*F)F)F*!\"$!\"#F-*$F*F)F+" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "nops(noDx);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "factor(noDx[1]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#*&,&%\"nG\"\" \"\"\"#F&F&,.*&%#SnGF'F%F&!\"\"*(%\"xGF&F*F&F%F&F'F%F+*$F*F'!\"#F+F&*& F-F&F*F&\"\"$F&" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 525 "Notes:\n1. fa ctor is Maple's built-in command for COMMUTATIVE factorization. In ge neral it is not meaningful for a noncommutative polynomial because the multiplication rules are different. HOWEVER, if we obtain a result \+ a(n) b(n,Sn) c(Sn) then the commutative and noncommutative multiplica tion rules coincide, so it's valid (where b(n,Sn) is interpreted as us ual with the n's on the left and Sn's on the right, no matter how Mapl e chooses to display it).\n2. We can force the n's on the left, Sn's o n the right, as follows:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "sort(\" ,[n,x,Sn,Dx],plex);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#*&,&%\"nG\"\"\" \"\"#F&F&,.*(F%F&%\"xGF&%#SnGF&F'*&F%F&F+F'!\"\"F%F-*&F*F&F+F&\"\"$*$F +F'!\"#F-F&F&" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "op(2,\");" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,.*(%\"nG\"\"\"%\"xGF&%#SnGF&\"\"#*& F%F&F(F)!\"\"F%F+*&F'F&F(F&\"\"$*$F(F)!\"#F+F&" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 14 "collect(\",Sn);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,**&,&!\"#\"\"\"%\"nG!\"\"F'%#SnG\"\"#F'*&,&*&%\"xGF'F(F'F+F/\" \"$F'F*F'F'F(F)F)F'" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 70 "This is th e pure recurrence equation RE above! (Rather, its negative.)" } {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 261 3 "(b)" }{TEXT -1 68 " Likewise, create an elimination order to remove Sn from 2 equations" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "V := termorder(A_poly,lexdeg([Sn],[x,n,Dx]));" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"VG%+term_orderG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "bas2 := map(expand,[RE,RDE]);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%%bas2G7$,.*&%\"nG\"\"\"%#SnG\"\"#F)*$F*F+F+*(F(F)%\"x GF)F*F)!\"#*&F.F)F*F)!\"$F(F)F)F),.*&%#DxGF)F*F)F)*(F4F)F*F)F.F+!\"\"F -F)F0F)F(F6F6F)" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "GBD := g basis(bas2,V);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%$GBDG7&,B*(%\"xG\" \"\"%#DxGF)%\"nGF)!\"#*&F(\"\"#F+F)!\"\"F+F)*&F*F.F+F)F)*$F+F.F.*(F(F. F*F.F+F)F,*&F(F)F*F)F,*$F*F.F)*$F+\"\"$F)*&F*F.F(F.F,*&F*F)F(F6F.*&F(F .F+F.F,*(F*F)F(F6F+F)F.*(F*F.F(\"\"%F+F)F)*&F*F.F(F " 0 "" {MPLTEXT 1 0 39 "Snfree := select(f->not ha s(f,Sn),GBD);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%'SnfreeG7#,B*(%\"xG \"\"\"%#DxGF)%\"nGF)!\"#*&F(\"\"#F+F)!\"\"F+F)*&F*F.F+F)F)*$F+F.F.*(F( F.F*F.F+F)F,*&F(F)F*F)F,*$F*F.F)*$F+\"\"$F)*&F*F.F(F.F,*&F*F)F(F6F.*&F (F.F+F.F,*(F*F)F(F6F+F)F.*(F*F.F(\"\"%F+F)F)*&F*F.F(F " 0 "" {MPLTEXT 1 0 13 "nops(Snfree);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "factor(Snfree[1]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6 #**,&%\"nG\"\"\"F&F&F&,&%\"xGF&!\"\"F&F&,&F(F&F&F&F&,,*$%#DxG\"\"#F)*& F-F.F(F.F&*&F(F&F-F&F.*$F%F.F)F%F)F&" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "select(has,\",Dx);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6 #,,*$%#DxG\"\"#!\"\"*&F%F&%\"xGF&\"\"\"*&F)F*F%F*F&*$%\"nGF&F'F-F'" }} }{EXCHG {PARA 0 "" 0 "" {TEXT -1 245 "be careful doing the above comma nd; it only works correctly if the expression is a product of >1 facto rs. If it had just ONE factor, the above expression would be a sum, n ot a product, so the selection would choose monomials with Dx in the s um." }{MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "c ollect(\",Dx,factor);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,(*(,&%\"xG\" \"\"!\"\"F'F',&F&F'F'F'F'%#DxG\"\"#F'*&F&F'F*F'F+*&%\"nGF',&F.F'F'F'F' F(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "sort(\",[n,x,Sn,Dx],p lex);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,(*&,&%\"nG\"\"\"F'F'F'F&F'! \"\"*&%\"xGF'%#DxGF'\"\"#*(,&F*F'F(F'F',&F*F'F'F'F'F+F,F'" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 31 "And this is the negative of DE!" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 133 " Page 48: Legendre polynomials, continued. Find a generating function \+ for the Legendre polynomials P[n](x), using these annihilators:" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "DE; RDE; RE;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,(*&,&\"\"\"F&*$%\"xG\"\"#!\"\"F&%#DxGF)F&*&F(F&F+F&!\" #*&,&%\"nGF&F&F&F&F0F&F&" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,**(,&\"\" \"F&*$%\"xG\"\"#!\"\"F&%#DxGF&%#SnGF&F&*(,&%\"nGF&F&F&F&F(F&F,F&F&F/F* F*F&" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,**&,&%\"nG\"\"\"\"\"#F'F'%#Sn GF(F'*(,&F&F(\"\"$F'F'%\"xGF'F)F'!\"\"F&F'F'F'" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 302 "The generating function is F(x,y) = sum_n P[n](x) \+ * y^n.\nAnnihilators of P[n](x)*y^n are similar to ones for P[n](x)\n \+ each annihilator C(Sn,n,Dx,x) of P[n](x) gives an annihilator C(Sn/y ,n,Dx,x) for P[n](x) * y^n.\n Also, Dy * y^n = n*y^(n-1) so (y Dy - \+ n) annihilates y^n without touching P[n](x)." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 125 "G := map(expand,\n [DE,\n numer(norm al(subs(Sn=Sn/y,RE))),\n numer(normal(subs(Sn=Sn/y,RDE))),\n \+ y*Dy-n]);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%\"GG7&,,*$%#DxG\"\"# \"\"\"*&F(F)%\"xGF)!\"\"*&F,F*F(F*!\"#*$%\"nGF)F*F1F*,.*&F1F*%#SnGF)F* *$F4F)F)**F,F*F4F*%\"yGF*F1F*F/*(F,F*F4F*F7F*!\"$*&F1F*F7F)F**$F7F)F*, .*&F(F*F4F*F**(F(F*F4F*F,F)F-*(F1F*F,F*F4F*F**&F,F*F4F*F**&F1F*F7F*F-F 7F-,&*&F7F*%#DyGF*F*F1F-" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 72 "A := skew_algebra(shift=[Sn,n],diff=[Dx,x],diff=[Dy,y],polynom=[n,x,y ]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"AG%,Ore_algebraG" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 117 "The sum is over n, so find n-free recurrence/diffeqs for the summand (just like it's k-free when the s um is over k):" }{MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "T := termorder(A,lexdeg([n],[x,Dx,y,Dy,Sn]));" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"TG%+term_orderG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "GN := gbasis(G,T);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%#GNG7),,**%\"xG\"\"\"%#SnGF)%\"yGF)%#DyGF)!\"\"*&%#Dx GF)F*F)F-*(F/F)F*F)F(\"\"#F)F+F)*&F+F1F,F)F),,*$F/F1F-*&F/F1F(F1F)*&F( F)F/F)F1*&F+F1F,F1F-*&F+F)F,F)!\"#,,*(F(F)F*F)F+F)F)*$F+F1F-**F(F)F*F) F+F1F,F)F1*&F+\"\"$F,F)F-*(F*F1F+F)F,F)F-,,*(F*F)F+F1F,F1F-*(F*F)F+F)F ,F)F-*,F/F)F(F)F*F)F+F)F,F)F)*&F/F)F+F)F-*(F/F)F+F1F,F)F-,.**F(F)F/F)F +F1F,F)F)*&F+F?F,F1F)F2F?*(F/F)F(F)F+F)F)**F/F)F*F)F+F)F,F)F-F+F),0**F /F)F(F)F*F)F+F)F)*&F/F)F+F1F)*(F/F)F+F?F,F)F)**F/F)F*F1F+F)F,F)F-*&F*F )F+F)F)*(F*F)F+F1F,F)\"\"%*(F*F)F+F?F,F1F1,&F8F-%\"nGF)" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 52 "Get all the n-free recurrence/diffeqs thi s produced:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "SN := select((p,v)-> not has(p,v), GN, n);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%#SNG7(,,** %\"xG\"\"\"%#SnGF)%\"yGF)%#DyGF)!\"\"*&%#DxGF)F*F)F-*(F/F)F*F)F(\"\"#F )F+F)*&F+F1F,F)F),,*$F/F1F-*&F/F1F(F1F)*&F(F)F/F)F1*&F+F1F,F1F-*&F+F)F ,F)!\"#,,*(F(F)F*F)F+F)F)*$F+F1F-**F(F)F*F)F+F1F,F)F1*&F+\"\"$F,F)F-*( F*F1F+F)F,F)F-,,*(F*F)F+F1F,F1F-*(F*F)F+F)F,F)F-*,F/F)F(F)F*F)F+F)F,F) F)*&F/F)F+F)F-*(F/F)F+F1F,F)F-,.**F(F)F/F)F+F1F,F)F)*&F+F?F,F1F)F2F?*( F/F)F(F)F+F)F)**F/F)F*F)F+F)F,F)F-F+F),0**F/F)F(F)F*F)F+F)F)*&F/F)F+F1 F)*(F/F)F+F?F,F)F)**F/F)F*F1F+F)F,F)F-*&F*F)F+F)F)*(F*F)F+F1F,F)\"\"%* (F*F)F+F?F,F1F1" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 111 "Recurrence/di ffeqs for the sum are obtained from one for the summand as before by s etting Sn=1 instead of Sk=1:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "ON \+ := subs(Sn=1,SN);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%#ONG7(,,*(%\"xG \"\"\"%\"yGF)%#DyGF)!\"\"%#DxGF,*&F-F)F(\"\"#F)F*F)*&F*F/F+F)F),,*$F-F /F,*&F-F/F(F/F)*&F(F)F-F)F/*&F*F/F+F/F,*&F*F)F+F)!\"#,,*&F(F)F*F)F)*$F *F/F,*(F(F)F*F/F+F)F/*&F*\"\"$F+F)F,F6F,,,F5F,F6F,**F(F)F-F)F*F)F+F)F) *&F-F)F*F)F,*(F-F)F*F/F+F)F,,.**F(F)F-F)F*F/F+F)F)*&F*F=F+F/F)F0F=*(F- F)F(F)F*F)F)*(F-F)F*F)F+F)F,F*F),0FEF)*&F-F)F*F/F)*(F-F)F*F=F+F)F)FFF, F*F)F0\"\"%FDF/" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 80 "Axy := s kew_algebra(diff=[Dx,x],diff=[Dy,y]);\nTxy := termorder(Axy,tdeg(Dx,Dy ));" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%$AxyG%,Ore_algebraG" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%$TxyG%+term_orderG" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 118 "Since we know the generating function for the Legen dre polynomials, we may test it on them. Get simplified equations:" } {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "GF := g basis(ON,Txy,Axy);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#GFG7$,,*&%\"y G\"\"#%#DyG\"\"\"!\"\"F(F,*(%\"xGF+F(F+F*F+F)F.F+F*F,,**(%#DxGF+F.F+F( F+F)F1F,*&F1F+F(F)F,F(F+" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "fn := (1-2*x*y+y^2)^(-1/2);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#fnG *$,(*$%\"yG\"\"#\"\"\"F*F**&%\"xGF*F(F*!\"##!\"\"F)" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 38 "map(oper -> applyopr(oper,fn,Axy),GF);" } }{PARA 12 "" 1 "" {XPPMATH 20 "6#7$,&*&,&%\"xG\"\"\"%\"yG!\"\"F(,(*$F) \"\"#F(F(F(*&F'F(F)F(!\"##F*F-F(*(,(F.F-F,F*F*F(F(F+#!\"$F-,&F)F-F'F/F (F0,&*&F)F(F+F0F(*(F2F(F+F3F)F(F(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "normal(\");" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#7$\"\" !F$" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 52 "Or if we didn't know the g .f. we could solve for it:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 71 "eqx : = applyopr(GF[2],f[y](x),Axy);\neqy := applyopr(GF[1],f[x](y),Axy);" } }{PARA 11 "" 1 "" {XPPMATH 20 "6#>%$eqxG,&*&%\"yG\"\"\"-&%\"fG6#F'6#% \"xGF(F(*&,(*&F.F(F'F(\"\"#*$F'F2!\"\"F4F(F(-%%diffG6$F)F.F(F(" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%$eqyG,&*&,&%\"xG\"\"\"%\"yG!\"\"F)-& %\"fG6#F(6#F*F)F)*&,(*&F(F)F*F)\"\"#*$F*F4F+F+F)F)-%%diffG6$F,F*F)F)" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "dsolve(eqx,f[y](x));" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#/-&%\"fG6#%\"yG6#%\"xG*&,(*&F*\"\"\"F( F.\"\"#*$F(F/!\"\"F1F.#F1F/%$_C1GF." }}}{EXCHG {PARA 0 "" 0 "" {TEXT 262 8 "A priori" }{TEXT -1 45 ", the constant _C1 is constant w.r.t. x only:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "subs(_C1=c(y),\");" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#/-&%\"fG6#%\"yG6#%\"xG*&,(*&F*\"\"\"F( F.\"\"#*$F(F/!\"\"F1F.#F1F/-%\"cGF'F." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 35 "subs(_C1=d(x),dsolve(eqy,f[x](y)));" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/-&%\"fG6#%\"xG6#%\"yG*&,(*&F(\"\"\"F*F.\"\"#*$F*F/! \"\"F1F.#F1F/-%\"dGF'F." }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 271 "c(y), d(x) are reconciled by having them both be independent of x,y, i.e., \+ just a single numeric constant. The recurrence & diffeqs we began wit h do not contain any information on initial conditions, so we cannot s ay what this constant is without additional information." }}}}{MARK "5 6 0 0" 0 }{VIEWOPTS 1 1 0 1 1 1803 }