{VERSION 6 0 "IBM INTEL LINUX" "6.0" } {USTYLETAB {CSTYLE "Maple Input" -1 0 "Courier" 0 1 255 0 0 1 0 1 0 0 1 0 0 0 0 1 }{CSTYLE "2D Math" -1 2 "Times" 0 1 0 0 0 0 0 0 2 0 0 0 0 0 0 1 }{CSTYLE "2D Output" 2 20 "" 0 1 0 0 255 1 0 0 0 0 0 0 0 0 0 1 } {PSTYLE "Normal" -1 0 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 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 0 }3 3 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }} {SECT 0 {EXCHG {PARA 0 "" 0 "" {TEXT -1 77 "First try the linear algeb ra based desingularization algorithm on an example:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1987 "restart;\n\n# Desingularize the trailin g coefficient as much as possible;\n# remove all singularities that ca n be removed:\ndesing_trailing := proc(L, domain)\n\011local EXPAND,ta u,x,d,ds,c,i,j,l,s,vars,zero,a0,A0;\n\011tau,x := op(domain);\n\011if \+ not type(L, polynom(anything,domain)) or coeff(L,tau,0)=0 then\n\011 \011error \"wrong input\"\n\011fi;\n\n\011d := indets(L,\{algext,radic al\});\n\011if (indets(L) union d) minus \{x,tau\}=\{\} then\n\011\011 EXPAND := proc(A) expand(A) end\n\011else\n\011\011if d=\{\} then Norm alizer:=normal else Normalizer:=evala fi;\n\011\011# This to make sure that expanding products works OK if\n\011\011# there are parameters o r algebraic numbers.\n\011\011EXPAND := proc(A,B) collect(A,B,Normaliz er) end\n\011fi;\n\n\011a0 := tcoeff(L,tau);\n\011d := LREtools[disper sion](lcoeff(L,tau),a0,x,'maximal');\n\011if not type(d,integer) then \+ d:=0 fi;\n\011A0[0] := a0;\n\011j := max(seq(i[2],i=sqrfree(a0,x)[2])) ;\n\011for i to d do\n\011\011A0[i] := A0[i-1]*gcd(subs(x=x+i,a0),a0^j )\n\011od;\n\011ds := add( add(c[i,j]*x^i, i=0..degree(A0[j],x)-1)\n \011 * Normalizer(A0[d]/A0[j]) * tau^j, j=0..d);\n\011vars := indets(d s) minus indets([args,x,tau]);\n\011zero := collect(rem(collect(mult(d s,L,domain),x),A0[d],x),\n\011 domain,distributed);\n\011ds := subs( s olve(\{coeffs(zero,\{tau,x\})\},vars), ds);\n\011if ds=0 then return 1 fi;\n\011do\n\011\011l := lcoeff(coeff(ds,tau,0),x);\n\011\011s := EX PAND(subs(solve(l, vars), ds),domain);\n\011\011if coeff(s,tau,0)=0 th en\n\011\011\011ds := EXPAND(subs(solve(l-1,vars), ds),domain);\n\011 \011\011break\n\011\011fi;\n\011\011ds := s\n\011od;\n\011for i from d to 1 by -1 do\n\011 for j from degree(coeff(ds,tau,i),x) to 0 by -1 d o\n\011\011l := coeff(coeff(ds,tau,i),x,j);\n\011\011if has(l,vars) th en\n\011\011\011ds := EXPAND(subs(solve(l,vars), ds),domain)\n\011\011 fi\n\011 od\n\011od;\n\011ds := sort(collect(evala(Primpart(ds,tau,'i' )),tau),tau);\n\011Normalizer( i/A0[d]*lcoeff(A0[d]/a0,x) )*ds\nend:\n \n\n# Multiplication in the ring C(x)[tau] where\n# tau * f(x) = f(x+1) * tau.\n#\nmult := proc(L1,L2,domain)\n\011local i,tau,x;\n \011tau,x := op(domain);\n\011sort(collect(add(coeff(L1,tau,i)*\n\011 \+ subs(x=x+i,L2)*tau^i,i=ldegree(L1,tau)..degree(L1,tau))\n\011 ,tau,Nor malizer),tau)\nend:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "sol \+ := 1/(z+1)^2/z^1/(z-1)^0/(z-2)^2;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#> %$solG*&\"\"\"F&*(),&%\"zGF&F&F&\"\"#F&F*F&),&F*F&F+!\"\"F+F&F." }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "L := E-subs(z=z+1,sol)/sol; " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"LG,&%\"EG\"\"\"*,,&%\"zGF'\"\" #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 40 "L := sort(collect(numer(L),E,factor),E); " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"LG,&*(),&%\"zG\"\"\"\"\"#F*F+F *),&F)F*F*!\"\"F+F*%\"EGF*F**(,&F)F*F*F*F*F)F*),&F)F*F+F.F+F*F." }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "Rt := desing_trailing(L, [E, z]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#RtG,$**\"\"#!\"\"%\"zGF(,&F )\"\"\"F+F+!\"#,**(\"\"%F+F)F+)%\"EGF'F+F(*&,(*&\"\"$F+)F)F'F+F+*&\"\" &F+F)F+F+F/F+F+F1F+F+*&F'F+F)F+F+F'F+F+F(" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 44 "Lt := collect(mult(Rt,L, [E,z]), E, factor);" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%#LtG,**(\"\"#\"\"\"),&%\"zGF(\"\"%F( F'F()%\"EG\"\"$F(F(*.F/F(F'!\"\"F+F(,&F+F(F/F(F(F*F(F.F'F1*,F/F(F'F1,& F+F(F'F(F(,&F+F(F(F1F'F.F(F(*$),&F+F(F'F1F'F(F(" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 82 "The t-singularities z=0 and z=-1 are gone; those are the ones that can be removed." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 71 "Now we'll try the algorithm described in the paper on the same example." }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 560 "# Remove at least all appar ant singularities\n# (and sometimes but not always more).\ndesing_tra iling := proc(L, domain)\n\011local tau,x,a0,d,L2,i,s,t;\n\011tau,x := op(domain);\n\011a0 := tcoeff(L,tau);\n\011d := LREtools[dispersion]( lcoeff(L,tau),a0,x,'maximal');\n\011if not type(d,integer) then d := 0 fi;\n\011L2 := L;\n\011for i to d do\n\011 # Clear the tau^i coeffic ient of L2:\n\011 L2 := collect( L2 - coeff(L2,tau,i)*\n\011 subs( x=x+i,L/a0)*tau^i, tau, Normalizer)\n\011od;\n\011L2 := primpart(L2, t au);\n\011gcdex(a0,coeff(L2,tau,0),x,'s','t');\n\011sort(collect(s*L+t *L2, tau, Normalizer),tau)\nend:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 26 "desing_trailing(L, [E,z]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,**&,**$)%\"zG\"\"$\"\"\"!\"\"*&\"#6F*)F(\"\"#F*F+*&\"# SF*F(F*F+\"#[F+F*)%\"EGF)F*F*F&F**&\"\"%F*F.F*F+*&F6F*F(F*F*" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "collect(%,E,factor);" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#,&*(,&%\"zG\"\"\"\"\"$F'F'),&F&F'\"\"% F'\"\"#F')%\"EGF(F'!\"\"*&F&F'),&F&F'F,F/F,F'F'" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 73 "The t-singularity z=-1 is gone, but the t-singularit y z=0 is still there." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{MARK "7 3 0" 71 } {VIEWOPTS 1 1 0 1 1 1803 1 1 1 1 }{PAGENUMBERS 0 1 2 33 1 1 }