Maple
Son bon usage en mathématiques
Philippe Dumas, Xavier Gourdon
Springer-Verlag, 1997
Code Maple du Chapitre 6, Livre second.
# section 1, page 255. asympt(sum(1/k,k=1..n-1)/n^2,n); assume(x>0): asympt(arctan(k*x)/k,k); S:=sum(1/(3*k+2)/(3*k+4),k=0..infinity); F:=sum(x^n/n/(n+1),n=1..infinity); collect(F,ln(1-x),normal); hypergeom([1,1],[2],z); hypergeom([2,2],[1],z); simplify(hypergeom([2,2],[1],z),hypergeom); `convert/Sum`:=proc(expr,n::name) local L,u,Num,Den,tosubs; L:=indets(expr,specfunc(anything,hypergeom)); for u in L do Num:=convert(map(pochhammer,op(1,u),n),`*`); Den:=convert(map(pochhammer,op(2,u),n),`*`); tosubs[u]:=Sum(simplify(Num/Den*op(3,u)^n/GAMMA(n+1),GAMMA), n=0..infinity) od; subs({seq(u=tosubs[u],u=L)},expr) end: # convert/Sum convert(hypergeom([2,2],[1],z),Sum,k); value("); S:=convert(hypergeom([2, 2],[3],x),Sum,n); convert(op(1,subs(x=1,S)),parfrac,n): map(Sum,expand("*x^n),op(2,S)); value("); f:=arcsin(sqrt(x))/sqrt(x-x^2): series(f,x); with(share): readshare(gfun,analysis): with(gfun): ?gfun ?gfun[listtodiffeq] s:=series(f,x,10); s:=series(s,x,9): deq:=seriestodiffeq(s,y(x)); subs(y(x)=f,deq[1]): expand("): collect(",arcsin,simplify); assume(x>0,x<1); map(simplify,",radical); x:='x': rec:=diffeqtorec(deq[1],y(x),u(n)); U:=rsolve(rec,u(n)); sum(U*x^n,n=0..infinity); asympt(U,n,2); with(share): readshare(gfun,analysis): with(gfun): f:=arcsin(x)^2: s:=series(f,x,25): deq:=seriestodiffeq(s,y(x)): rec:=diffeqtorec(deq[1],y(x),u(n)): rec1:=map(factor,op(select(has,rec,n))); newrec:=subs(n=2*k,seq(u(2*k+2*l)=v(k+l),l=0..1),rec1); V:=rsolve({newrec,v(1)=1},v(k)); T:=1: x0:=-1/2: pattern:=piecewise(x<0,-x^2-1,x^2+1): signal:=subs(x=x-floor((x-x0)/T)*T,pattern): plot(signal,x=x0-T..x0+2*T,scaling=constrained); assume(n,integer): a0:=2/T*int(pattern,x=x0..x0+T); a:=2/T*int(pattern*cos(n*x*2*Pi/T),x=x0..x0+T); b:=2/T*int(pattern*sin(n*x*2*Pi/T),x=x0..x0+T); b:=subs(eps=(-1)^n,collect(subs((-1)^n=eps,b),{n,eps}, distributed)); N:=5: Fouriersum:=a0/2+add(subs(n=k,a)*cos(2*k*Pi*x/T) +subs(n=k,b)*sin(2*k*Pi*x/T),k=1..N): plot({signal,Fouriersum},x=x0-T..x0+2*T, scaling=constrained); Besselsum:=a0^2/2+add(subs(n=k,a^2+b^2) ,k=1..N): energy:=2/T*int(pattern^2,x=x0..x0+T): Besselinequality:=evalf(energy>Besselsum); rate:=evalf(Besselsum/energy); # section 2, page 268. # exercice 6.12, page 269. with(share): readshare(gfun,analysis): with(gfun): orec:={u(0)=1,u(1)=1,u(n+2)=u(n+1)+(n+1)*u(n)}: odeq:=rectodiffeq(orec,u(n),y(x)); dsolve(odeq,y(x)); erec:=borel(orec,u(n)); edeq:=rectodiffeq(erec,u(n),y(x)); dsolve(edeq,y(x)); # fin exercice 6.12. # section 3, page 271. # probleme page 271. F:=1/n^2: kummer(F,3,n); # fin probleme. # probleme page 276. T:=2*Pi: t0:=0: pattern:=piecewise(t < Pi,1,0): signal:=subs(t=t-floor((t-t0)/T)*T,pattern): a0:=1: b:=(1-(-1)^n)/Pi/n: N:=20: signalapprox:=a0/2+add(b*sin(n*t),n=1..N): plot([signal,signalapprox],t=-Pi..3*Pi); # fin probleme. # section 4, page 280. # probleme page 280. z[0]:=1:z[1]:=1+I:z[2]:=-1+I:z[3]:=-I:z[4]:=1: g:=piecewise( seq(op([t<=j/4,4*(z[j-1]*(j/4-t)+z[j]*(t-(j-1)/4))]),j=1..4)); plots[complexplot](g,t=0..1); # fin probleme. # section 5, page 281. # exercice 6.1, page 281. u:=((4*n+1)!)^2/((2*n+1)!)^3: DA:=asympt(u,n): combine(DA,power,symbolic); # fin exercice 6.1. # exercice 6.2, page 282. u:=1/(4*k+1)^2/(4*k+3)^2: convert(u,parfrac,k); # fin exercice 6.2. # exercice 6.4, page 283. with(share): readshare(gfun,analysis): with(gfun): f:=sin(a*arcsin(x))^2; s:=series(f,x,25); deq:=seriestodiffeq(s,y(x)); rec:=diffeqtorec(deq[1],y(x),u(n)); rec1:=map(factor,op(select(has,rec,n))); newrec:=subs(n=2*k,seq(u(2*k+2*l)=v(k+l),l=0..1),rec1); V:=rsolve({newrec,v(1)=a^2},v(k)); F:=sum(V*x^(2*k),k=1..infinity); series(f-F,x,20); map(simplify,",GAMMA); simplify(F,GAMMA); # fin exercice 6.4. # exercice 6.6, page 284. DA:=asympt(epsilon/(sqrt(n)+epsilon),n,2); DA:=asympt(epsilon/sqrt(n+epsilon),n,2); DA:=asympt(epsilon/ln(n+epsilon),n,3); asympt(2*Pi*sqrt(n^4+n^2+1),n,5); DA:=asympt(sin(subs(2*Pi*n^2=0,")),n,7); DA:=asympt(epsilon*n^(1/4)*sin(1/sqrt(n))/(sqrt(n)+epsilon),n,2); asympt((exp(I*Pi/n)-1),n,3); # fin exercice 6.6. # exercice 6.7, page 285. u:=(1-tanh(n))^tanh(1/n): limit(u,n=infinity); asympt(tanh(1/n),n); series(ln(1-(1-epsilon)/(1+epsilon)),epsilon,3); subs(epsilon=exp(-2*n),"); asympt(tanh(1/n)*(-2*n+ln(2)),n,3); DA:=asympt(exp("),n); # fin exercice 6.7. # exercice 6.8, page . u:=n!/n^n*r^n: combine(subs(n=n+1,u)/u,power,symbolic): limit(",n=infinity); # fin exercice 6.8. # exercice 6.9, page 287. sum((2*k+2)!/(k+2)!*x^k/k!,k=0..infinity); sum((k+1)^3*x^k/k!,k=0..infinity): factor("); F:=sum(x^n/n/(n+2),n=1..infinity): F:=expand(F); U:=normal(remove(has,F,{ln,hypergeom})): V:=factor(select(has,F,ln)): W:=factor(select(has,F,hypergeom)): S:=select(has,W,hypergeom): T:=remove(has,W,hypergeom): S:=convert(S,Sum,n): convert(op(1,subs(x=1,S)),parfrac,n): map(Sum,expand("*x^n),op(2,S)): W:=value(")*T: F:=collect(U+V+W,ln,normal); # fin exercice 6.9. # exercice 6.10, page 288. term:=(2*n+3)!/(n+1)!/(n+3)!: sum(term*x^(n+1),n=0..infinity): S:=simplify(",radical); F:=simplify((S+subs(x=-x,S))/2,radical); asympt(convert(term,GAMMA),n): map(combine,",power,symbolic); series(F,x=1/4,1): evalc(subs(x=1/4,O(0)=0,")); term:=((2*k+6)!)^2/((k+3)!)^4/16^(k+3)/(2*k+1): s:=sum(term,k); simplify((subs(k=k+1,s)-s)/term,GAMMA); normal(expand(")); subs(k=0,s); asympt(expand(ln(convert(s,GAMMA))),k): combine(",ln); # fin exercice 6.10. # exercice 6.11, page 290. p:=3: e:=2: Rho:=p/(1+e*cos(theta)): prec:=20: window:=[-10..10,-10..10]: orbit[-1]:=plot([Rho*cos(theta),Rho*sin(theta),theta=0..2*Pi], view=window,scaling=constrained,color=red,thickness=2): for i from 0 to prec-1 do P:=convert(series(subs(cos(theta)=x,Rho),x,i+1),polynom); rho[0,i]:=subs(x=cos(theta),P); Q:=convert(series(subs(cos(theta)=1/x,Rho),x,i+1),polynom); rho[1,i]:=subs(x=1/cos(theta),Q); orbit[i]:=plot([[rho[0,i]*cos(theta),rho[0,i]*sin(theta), theta=0..2*Pi],[rho[1,i]*cos(theta), rho[1,i]*sin(theta),theta=0..2*Pi]], view=window,scaling=constrained,color=[blue,green]) od: plots[display]({orbit[-1],plots[display]( [seq(orbit[i],i=0..prec-1)],insequence=true)}); # fin exercice 6.11. # exercice 6.12, page 292. with(share): readshare(gfun,analysis): with(gfun): orec:={u(n+2)+u(n+1)+u(n)=n}: odeq:=rectodiffeq(orec,u(n),y(x)): dsolve(odeq,y(x)): OGF:=op(2,"); rsolve(orec,u(n)); orec:={(n+4)*u(n+2)+u(n+1)-(n+1)*u(n)}: erec:=borel(orec,u(n)): edeq:=rectodiffeq(erec,u(n),y(x)): dsolve(edeq,y(x)): EGF:=op(2,"); series(EGF,x,3); K:=remove(has,remove(has,EGF,exp),x): EGF:=subs(K=_C1+_C2+_C3-K,EGF); rsolve(orec,u(n)); orec:={u(n+4)+5*u(n+2)+u(n),u(0)=1,u(1)=1,u(2)=2,u(3)=6}: odeq:=rectodiffeq(orec,u(n),y(x)); OGF:=solve(odeq,y(x)): DEC:=convert(OGF,fullparfrac,x); orec:={(4+n)*u(n)+(6+n)*u(n+1)+u(n+2),u(0)=alpha,u(1)=beta}: erec:=borel(orec,u(n)): edeq:=rectodiffeq(erec,u(n),y(x)): dsolve(edeq,y(x)): EGF:=op(2,"): EGF:=combine(EGF,exp): EGF:=collect(EGF,exp(-x),factor); S:=solve({beta+4*alpha=1,16*beta+65*alpha=0},{alpha,beta}): EGF1:=subs(S,EGF): R:=remove(has,EGF1,exp): d:=3: PI:=add(pi[i]*n^i,i=0..d): nnn:=20: RTE:=convert(series(R,x,nnn+1),polynom): sys:={seq(subs(n=nn,(-1)^n*PI)=coeff(RTE,x,nn),nn=0..nnn)}: inc:={seq(pi[i],i=0..d)}: solve(sys,inc): P:=subs(",PI); PS:=Sum(1/factorial(p),p=0..n): TE1:=convert(series(EGF1,x,nnn+1),polynom): expr:=(-1)^n*add(add(c[k,j]*n^k*subs(n=n-j,PS),j=0..d-k),k=0..d): sys:={seq(value(subs(n=nn,expr))=coeff(TE1,x,nn),nn=d..nnn)}: inc:={seq(seq(c[k,j],j=0..k),k=0..d)}: solve(sys,inc): EXPR:=collect(subs(",(-1)^n*add(add(c[k,j]*n^k* subs(n=n-j,SUM(n)),j=0..d-k),k=0..d)),SUM); # fin exercice 6.12.