diff options
author | Manuel Pégourié-Gonnard <mpg@elzevir.fr> | 2008-05-13 19:05:08 +0000 |
---|---|---|
committer | Manuel Pégourié-Gonnard <mpg@elzevir.fr> | 2008-05-13 19:05:08 +0000 |
commit | c6168f59843ce21988e1c11aae4861378182fdfb (patch) | |
tree | 71a6e442878e0a400ab6a92c6e26f57affb78c0d /Master/texmf-dist/tex/latex/tablor | |
parent | fa8296a6b6724e1cb73c5fa2832ddc824f794e5a (diff) |
tablor v2.03
git-svn-id: svn://tug.org/texlive/trunk@8112 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/tablor')
-rw-r--r-- | Master/texmf-dist/tex/latex/tablor/tablor.cfg | 9 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/tablor/tablor.sty | 336 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/tablor/tablorutf8.sty | 366 |
3 files changed, 644 insertions, 67 deletions
diff --git a/Master/texmf-dist/tex/latex/tablor/tablor.cfg b/Master/texmf-dist/tex/latex/tablor/tablor.cfg index a6e964edfb8..07aa2e6badb 100644 --- a/Master/texmf-dist/tex/latex/tablor/tablor.cfg +++ b/Master/texmf-dist/tex/latex/tablor/tablor.cfg @@ -24,3 +24,12 @@ \newcommand{\editeur}{texmaker } +% Déclaration des fontes utilisées +% ================================ +% +% Remplacez "[upright]{fourier}" par la fonte qui vous convient pour les maths +% (lmodern, mathpazo, etc.) + + +\newcommand{\fonte}{usepackage[upright]{fourier}} + diff --git a/Master/texmf-dist/tex/latex/tablor/tablor.sty b/Master/texmf-dist/tex/latex/tablor/tablor.sty index 4b5a9e57334..d42c65e07c4 100644 --- a/Master/texmf-dist/tex/latex/tablor/tablor.sty +++ b/Master/texmf-dist/tex/latex/tablor/tablor.sty @@ -1,6 +1,6 @@ \NeedsTeXFormat{LaTeX2e}[1995/12/01] -\ProvidesPackage{tablor}[24/03/2008 v2.01 la machine à créer des tableaux de signes et variations] +\ProvidesPackage{tablor}[24/03/2008 v2.03 la machine à créer des tableaux de signes et variations] % \copyleft Connan le Barbare \copyright % avec l'efficace participation de Jean-Michel Boucart @@ -75,6 +75,7 @@ \newboolean{windows}\setboolean{windows}{false} + %% on configure tablor dans un fichier extérieur pour la plateforme %% et l'éditeur @@ -94,15 +95,16 @@ + %% En-tête pour le fichier metapost contenant les codes %% de tous les tableaux produits - \begin{VerbatimOut}{tete.mp} + \begin{VerbatimOut}[commandchars=?§£]{tete.mp} input tableauVariation; verbatimtex %&latex \documentclass{article} - \usepackage[upright]{fourier} + \\?fonte \usepackage{amsmath} \newcommand{\Mathbold}[1]{\mbox{\boldmath$#1$\unboldmath}} \begin{document} @@ -110,6 +112,8 @@ \end{VerbatimOut} + + %% Nettoie les fichiers log dont le nom dépend du choix de l'utilisateur %% Par défaut, c'est le nom du fichier tex courant (\jobname) %% Clôt le fichier metapost contenant le récapitulatif de tous les tableaux @@ -191,15 +195,12 @@ - - - %% %% Code giac/Xcas pour les Tableaux de Variations %% -\begin{VerbatimOut}{XcasTV.cxx} +\begin{VerbatimOut}[commandchars=?§£]{XcasTV.cxx} TV(L,F,nom,nomv,f,ftt,nmr):={ nl:=size(L); f:=unapply(f,x); @@ -250,11 +251,13 @@ newLigneVariations(btex $\\hbox{\\bf Variations de }\\atop{\\displaystyle \\Math if(k0==1){"1"}else{"0"}+ ");"; - if(nz>2){ for(r:=1; r<=nz-2;r++){ krm:=evalf(limite(f(x),x=Z[r-1],1))< evalf(limite(f(x),x=Z[r],-1)); + if(nz>2){ for(r:=1; r<=nz-2;r++){ krm:=evalf(limite(f(x),x=Z[r-1],1))< evalf(limite(f(x),x=Z[r],-1)); krp:=evalf(limite(f(x),x=Z[r],1))> evalf(limite(f(x),x=Z[r+1],-1)) ; lmrm:=limite(f(x),x=Z[r],-1)==-infinity;lmrp:=limite(f(x),x=Z[r],1)==-infinity; lp:=lp+if(member(Z[r],F)){ - "limGauche(btex $"+if(lmrm==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[r],-1)))}+"$ etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex $"+if(lmrp==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[r],1)))}+"$ etex,"+if(krp==1){"1);"}else{"0);"}} + "limGauche(btex + $"+if(lmrm==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[r],-1)))}+"$ + etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex $"+if(lmrp==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[r],1)))}+"$ etex,"+if(krp==1){"1);"}else{"0);"}} else{"valPos(btex $"+latex(simplifier(f(Z[r])))+"$ etex,"+if(sign(evalf(fp(Z[r]-0.01)))==sign(fp(Z[r]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0); "}}} @@ -270,7 +273,7 @@ intro:="input tableauVariation; verbatimtex %&latex \\documentclass{article} - \\usepackage[upright]{fourier} + \\?fonte \\usepackage{amsmath} \\newcommand{\\Mathbold}[1]{\\mbox{\\boldmath$#1$\\unboldmath}} \\begin{document} @@ -386,7 +389,249 @@ return(MetaL); \end{VerbatimOut} +%% +%% +%% TV avec une zone interdite : on rajoute comme argument l'intervalle interdit +%% par exemple, pour sqrt(x^2-1) : TVZ([-infinity,100],[],[-1,1],"f","x",sqrt(x^2-1),1,1) +%% + +\begin{VerbatimOut}[commandchars=?§£]{XcasTVZ.cxx} + +TVZ(L,F,FF,nom,nomv,f,ftt,nmr):={ +nl:=size(L); +if(FF[0]>L[0]){Imin:=FF[0];LL:=L}else{Imin:=L[0];LL:=[L[1]]}; +if(FF[1]<L[1]){Imax:=FF[1];LL:=L}else{Imax:=L[1];LL:=[L[0]]}; +FF:=[Imin,Imax]; +f:=unapply(f,x); +fp:=fonction_derivee(f); +Z:=concat(LL,F); +Z:=concat(Z,FF); +S:=resoudre(fp(x),x); + si size(S)>0 alors pour j de 0 jusque size(S)-1 faire + kk:=(evalf(S[j])>=evalf(L[0])) and (evalf(S[j])<=evalf(L[nl-1])); + kK:=(evalf(S[j])<evalf(Imin)) or (evalf(S[j])>evalf(Imax)); + Kk:=(kk) and kK; + if(Kk==1){Z:=append(Z,simplifier(S[j]))}; + fpour + fsi; + +Z:=sort(Z); +nz:=size(Z); + + + si Z[0]==Z[1] alors Z:=augment(Z[0],Z[2..nz-1]);nz:=nz-1; + fsi; +pour u de 1 jusque nz-2 faire + si Z[u]==Z[u+1] alors Z:=augment(Z[0..u-1],Z[u+1..nz-1]);nz:=nz-1; + fsi; +fpour; +nz:=size(Z); +for(k:=1;k<nz;k++){ +if ((Z[k]>Imin)and(Z[k]<Imax)){Z:=augment(Z[0..k-1],Z[k+1..nz-1]);nz:=nz-1; +} +} +nz:=size(Z); + +l0:=" newLigneVariables(btex $"+nomv+"$ etex);";lp:=" "; lf:=" ";lsp:=" "; +pour m de 0 jusque nz-1 faire l0:=l0+"val(btex $"+latex(Z[m])+"$ etex); +";fpour; + + k0:= evalf(limite(f(x),x=Z[0],1))> evalf(limite(f(x),x=Z[1],-1)); + kz:=evalf(limite(f(x),x=Z[nz-1],-1))> evalf(limite(f(x),x=Z[nz-2],1)); + +lsi:=" +newLigneSignes(btex $\\hbox{ Signe de }\\atop{\\displaystyle "+nom+"'("+nomv+")}$ etex);"+ + if(Z[0]==Imin){"debutNonDef;"}else{if(Z[0]==-infinity){if(sign(evalf(fp(if(Z[1]==+infinity){0}else{Z[1]-10^(-5)})))==1){"plus;"}else{"moins;"}}else{if(member(Z[0],F)==0){ + if(fp(Z[0])==0){"valBarre(btex 0 etex);"}else{" "}+ + if(sign(fp(Z[0]+10^(-5)))==1){"plus;"}else{"moins;"}}else{"nonDefBarre;"+ + if(sign(fp((Z[0]+10^(-5))))==1){"plus;"}else{"moins;"} }}} + +if(nz>2){ for(r:=1; r<=nz-2;r++){ ksp:=evalf(fp(Z[r]+0.01))>0; + lsp:=lsp+if(Z[r]==Imin){"debutNonDef;"}else{ + if(Z[r]==Imax){"finNonDef;"+ + if(ksp==1){"plus;"}else{"moins;"}}else{ + if(member(Z[r],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+ + if(ksp==1){"plus;"}else{"moins;"} + }}}}; + +lsf:=if(Z[0]==Imax){"finNonDef;"}else{if(member(Z[nz-1],F)==0){""}else{"nomDefBarre; +"}} +lm0:=limite(f(x),x=Z[0],1)==-infinity; + li:=" +newLigneVariations(btex $\\hbox{\\bf Variations de }\\atop{\\displaystyle \\Mathbold{"+nom+"}}$ etex);"+ + if(member(Z[0],F)==0){"valPos(btex $"+if(lm0==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[0],1)))}+"$ etex,"} + else{"nonDefBarre;limDroite(btex $"+if(lm0==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[0],1)))}+"$ etex,"}+ + if(k0==1){"1"}else{"0"}+ + ");"; + +if(nz>2){ + for(r:=1; r<=nz-2;r++){ + krm:=evalf(limite(f(x),x=Z[r-1],1))< evalf(limite(f(x),x=Z[r],-1)); + krp:=evalf(limite(f(x),x=Z[r],1))> evalf(limite(f(x),x=Z[r+1],-1)) ; + lmrm:=limite(f(x),x=Z[r],-1)==-infinity;lmrp:=limite(f(x),x=Z[r],1)==-infinity; + lp:=lp+if(Z[r]==Imin){"limGauche(btex $"+if(lmrm==1){ + "-\\infty"}else{ + latex(simplifier(limite(f(x),x=Z[r],-1)))} + +"$ etex,"+if(krm==1){ + "1);"}else{"0);"} + +"debutNonDef;" + }//fsi Zr=Imin + else{ + if (Z[r]==Imax) {"finNonDef;limDroite(btex $"+if(lmrp==1){ + "-\\infty"}else{latex(simplifier(limite(f(x),x=Z[r],1)))} + +"$ etex,"+if(krp==1){ + "1);"}else{"0);"} + } + else { + if(member(Z[r],F)){ + "limGauche(btex $"+if(lmrm==1){ + "-\\infty"}else{ + latex(simplifier(limite(f(x),x=Z[r],-1)))} + +"$ etex,"+if(krm==1){ + "1);"}else{"0);"} + +"nonDefBarre;limDroite(btex $"+if(lmrp==1){ + "-\\infty"}else{latex(simplifier(limite(f(x),x=Z[r],1)))} + +"$ etex,"+if(krp==1){ + "1);"}else{"0);"} + }//fsi (member Zr F) + else{"valPos(btex$"+latex(simplifier(f(Z[r])))+"$etex,"+ + if(sign(evalf(fp(Z[r]-0.01)))==sign(fp(Z[r]+0.01))){ + "0.5);"}else{ + if(krp==1){ + "1);"}else{"0);"}//felse(krp) + }//felse(valpos) + }//felse(member Zr F) + } //felse(Zr=Imax) + }//felse(Zr=Imin) + };//ffor + }//fsi nz + +lnz:=limite(f(x),x=Z[nz-1],-1)==-infinity; + lf:=if(member(Z[nz-1],F)==0){"valPos(btex $"+if(lnz==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[nz-1],-1)))}+"$ etex,"}else{"nonDefBarre;limGauche(btex $"+if(lnz==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[nz-1],-1)))}+"$ etex,"}+ + if(kz==1){"1);"}else{"0); +"}; + + +intro:="input tableauVariation; + verbatimtex +%&latex + \\documentclass{article} + \\?fonte + \\usepackage{amsmath} + \\newcommand{\\Mathbold}[1]{\\mbox{\\boldmath$#1$\\unboldmath}} + \\begin{document} + etex; + +" + + +MetaL:=if(ftt==2){if(nz>2){intro+"beginTableau("+nmr+")"+ + l0+lsi+lsp+lsf+" +endTableau; +end +";}else{ +intro+"beginTableau("+nmr+")"+ + l0+ +lsi+lsf+" +endTableau; +end"; +} +}else{ if(ftt==0){if(nz>2){intro+"beginTableau("+nmr+")"+ + l0+ +li+ +lp+ +lf ++" +endTableau; +end";}else{intro+"beginTableau("+nmr+")"+ + l0+ +li+ +lf ++" +endTableau; +end";}}else{ +if(nz>2){intro+"beginTableau("+nmr+")"+ + l0+ +lsi+lsp+lsf+ +li+ +lp+ +lf ++" +endTableau; +end";}else{intro+"beginTableau("+nmr+")"+ + l0+ +lsi+lsf+ +li+ +lf ++" +endTableau; +end";} +}} + + + +MetaLfc:=if(ftt==2){if(nz>2){" + +beginTableau("+nmr+")"+ + l0+lsi+lsp+lsf+" +endTableau; + +";}else{ +intro+"beginTableau("+nmr+")"+ + l0+ +lsi+lsf+" +endTableau; + +"; +} +}else{ if(ftt==0){if(nz>2){"beginTableau("+nmr+")"+ + l0+ +li+ +lp+ +lf ++" +endTableau; + +";}else{"beginTableau("+nmr+")"+ + l0+ +li+ +lf ++" +endTableau; + +";}}else{ +if(nz>2){"beginTableau("+nmr+")"+ + l0+ +lsi+lsp+lsf+ +li+ +lp+ +lf ++" +endTableau; + +";}else{"beginTableau("+nmr+")"+ + l0+ +lsi+lsf+ +li+ +lf ++" +endTableau; + +";} +}} + + +sortie:=fopen("XCasmpfc.mp"); +fprint(sortie,Unquoted,MetaLfc); +fclose(sortie); + + +return(MetaL); + } +:; + +\end{VerbatimOut} %% @@ -396,7 +641,7 @@ return(MetaL); -\begin{VerbatimOut}{XcasTVapp.cxx} +\begin{VerbatimOut}[commandchars=?§£]{XcasTVapp.cxx} @@ -493,7 +738,7 @@ intro:="input tableauVariation; verbatimtex %&latex \\documentclass{article} - \\usepackage[upright]{fourier} + \\?fonte \\usepackage{amsmath} \\newcommand{\\Mathbold}[1]{\\mbox{\\boldmath$#1$\\unboldmath}} \\begin{document} @@ -629,7 +874,7 @@ return(MetaL); -\begin{VerbatimOut}{XcasTVI.cxx} +\begin{VerbatimOut}[commandchars=?§£]{XcasTVI.cxx} TVI(L,F,nom,nomv,f,ftt,ao,nmr):={ @@ -769,7 +1014,7 @@ input tableauVariation; verbatimtex %&latex \\documentclass{article} - \\usepackage[upright]{fourier} + \\?fonte \\usepackage{amsmath} \\newcommand{\\Mathbold}[1]{\\mbox{\\boldmath$#1$\\unboldmath}} \\begin{document} @@ -898,7 +1143,7 @@ return(MetaL); -\begin{VerbatimOut}{XcasTVIapp.cxx} +\begin{VerbatimOut}[commandchars=?§£]{XcasTVIapp.cxx} TVIapp(L,F,nom,nomv,f,ftt,ao,nmr):={ @@ -1059,7 +1304,7 @@ input tableauVariation; verbatimtex %&latex \\documentclass{article} - \\usepackage[upright]{fourier} + \\?fonte \\usepackage{amsmath} \\newcommand{\\Mathbold}[1]{\\mbox{\\boldmath$#1$\\unboldmath}} \\begin{document} @@ -1193,7 +1438,7 @@ return(MetaL); -\begin{VerbatimOut}{XcasTabSignL.cxx} +\begin{VerbatimOut}[commandchars=?§£]{XcasTabSignL.cxx} TS(L,D,nmr):={ @@ -1235,7 +1480,7 @@ MetaL:=" input tableauVariation; verbatimtex %&latex \\documentclass{article} - \\usepackage[upright]{fourier} + \\?fonte \\usepackage{amsmath} \\newcommand{\\Mathbold}[1]{\\mbox{\\boldmath$#1$\\unboldmath}} \\begin{document} @@ -1310,7 +1555,7 @@ MetaL:=" input tableauVariation; verbatimtex %&latex \\documentclass{article} - \\usepackage[upright]{fourier} + \\?fonte \\usepackage{amsmath} \\newcommand{\\Mathbold}[1]{\\mbox{\\boldmath$#1$\\unboldmath}} \\begin{document} @@ -1371,7 +1616,7 @@ return(MetaL); -\begin{VerbatimOut}{XcasTabSignQ.cxx} +\begin{VerbatimOut}[commandchars=?§£]{XcasTabSignQ.cxx} TSq(nomf,L,Fo,D,nmr):={ L:=apply(f->unapply(f,x),L); Fo:=apply(f->unapply(f,x),Fo); @@ -1436,7 +1681,7 @@ MetaL:=" input tableauVariation; verbatimtex %&latex \\documentclass{article} - \\usepackage[upright]{fourier} + \\?fonte \\usepackage{amsmath} \\newcommand{\\Mathbold}[1]{\\mbox{\\boldmath$#1$\\unboldmath}} \\begin{document} @@ -1520,7 +1765,7 @@ MetaL:=" input tableauVariation; verbatimtex %&latex \\documentclass{article} - \\usepackage[upright]{fourier} + \\?fonte \\usepackage{amsmath} \\newcommand{\\Mathbold}[1]{\\mbox{\\boldmath$#1$\\unboldmath}} \\begin{document} @@ -1598,7 +1843,7 @@ return(MetaL); -\begin{VerbatimOut}{XcasTabSign.cxx} +\begin{VerbatimOut}[commandchars=?§£]{XcasTabSign.cxx} TSa(a,b,c,d,nmr):={ zA:=resoudre(a*x+b=0,x)[0]; zB:=resoudre(c*x+d=0,x)[0]; @@ -1608,7 +1853,7 @@ zmax:=max(zA,zB); verbatimtex %&latex \\documentclass{article} - \\usepackage[upright]{fourier} + \\?fonte \\usepackage{amsmath} \\newcommand{\\Mathbold}[1]{\\mbox{\\boldmath$#1$\\unboldmath}} \\begin{document} @@ -1660,7 +1905,7 @@ return(Meta); -\begin{VerbatimOut}{XcasTSc.cxx} +\begin{VerbatimOut}[commandchars=?§£]{XcasTSc.cxx} TSc(g,D,nmr):={ f:=unapply(g,x); Z:=NULL; @@ -1725,7 +1970,7 @@ MetaL:=" input tableauVariation; verbatimtex %&latex \\documentclass{article} - \\usepackage[upright]{fourier} + \\?fonte \\usepackage{amsmath} \\newcommand{\\Mathbold}[1]{\\mbox{\\boldmath$#1$\\unboldmath}} \\begin{document} @@ -2006,6 +2251,45 @@ fclose(Sortie); + + + + +\begin{VerbatimOut}{XCasTVZ.giac} +maple_mode(0); +read("XcasTVZ.cxx"); +Sortie:=fopen("XCasmpTVZ.mp"); +vect.xcas.user := read("XCasTVZ.user"); +vxo := vect.xcas.user; +dim.vxo := dim(vxo); +nbr.line.vxo := dim.vxo; +Resultat:=cat(" "); +rslt := vxo[0]; RslT:=cat(rslt); +Resultat:=cat(Resultat,RslT); +fprint(Sortie,Unquoted,Resultat); +fclose(Sortie); +\end{VerbatimOut} + +\newenvironment{TVZ}% +{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTVZ.user}}% +{\end{VerbatimOut} +\dresse{TVZ}} + +\newenvironment{TVZ*}[1]{% +\setcounter{TVnbis}{\theTVn} +\setcounter{TVn}{#1} +\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTVZ.user}}% +{\end{VerbatimOut}\dressetoile{TVZ}} + + + + + + + + + + \begin{VerbatimOut}{XCasTVapp.giac} maple_mode(0); read("XcasTVapp.cxx"); diff --git a/Master/texmf-dist/tex/latex/tablor/tablorutf8.sty b/Master/texmf-dist/tex/latex/tablor/tablorutf8.sty index c0ab9fe1e3c..d89eda8b40b 100644 --- a/Master/texmf-dist/tex/latex/tablor/tablorutf8.sty +++ b/Master/texmf-dist/tex/latex/tablor/tablorutf8.sty @@ -1,6 +1,6 @@ \NeedsTeXFormat{LaTeX2e}[1995/12/01] -\ProvidesPackage{tablor}[24/03/2008 v2.01 la machine à créer des tableaux de signes et variations] +\ProvidesPackage{tablor}[24/03/2008 v2.03 la machine à créer des tableaux de signes et variations] % \copyleft Connan le Barbare \copyright % avec l'efficace participation de Jean-Michel Boucart @@ -75,6 +75,7 @@ \newboolean{windows}\setboolean{windows}{false} + %% on configure tablor dans un fichier extérieur pour la plateforme %% et l'éditeur @@ -94,15 +95,16 @@ + %% En-tête pour le fichier metapost contenant les codes %% de tous les tableaux produits - \begin{VerbatimOut}{tete.mp} + \begin{VerbatimOut}[commandchars=?§£]{tete.mp} input tableauVariation; verbatimtex %&latex \documentclass{article} - \usepackage[upright]{fourier} + \\?fonte \usepackage{amsmath} \newcommand{\Mathbold}[1]{\mbox{\boldmath$#1$\unboldmath}} \begin{document} @@ -110,6 +112,8 @@ \end{VerbatimOut} + + %% Nettoie les fichiers log dont le nom dépend du choix de l'utilisateur %% Par défaut, c'est le nom du fichier tex courant (\jobname) %% Clôt le fichier metapost contenant le récapitulatif de tous les tableaux @@ -191,15 +195,12 @@ - - - %% %% Code giac/Xcas pour les Tableaux de Variations %% -\begin{VerbatimOut}{XcasTV.cxx} +\begin{VerbatimOut}[commandchars=?§£]{XcasTV.cxx} TV(L,F,nom,nomv,f,ftt,nmr):={ nl:=size(L); f:=unapply(f,x); @@ -250,11 +251,13 @@ newLigneVariations(btex $\\hbox{\\bf Variations de }\\atop{\\displaystyle \\Math if(k0==1){"1"}else{"0"}+ ");"; - if(nz>2){ for(r:=1; r<=nz-2;r++){ krm:=evalf(limite(f(x),x=Z[r-1],1))< evalf(limite(f(x),x=Z[r],-1)); + if(nz>2){ for(r:=1; r<=nz-2;r++){ krm:=evalf(limite(f(x),x=Z[r-1],1))< evalf(limite(f(x),x=Z[r],-1)); krp:=evalf(limite(f(x),x=Z[r],1))> evalf(limite(f(x),x=Z[r+1],-1)) ; lmrm:=limite(f(x),x=Z[r],-1)==-infinity;lmrp:=limite(f(x),x=Z[r],1)==-infinity; lp:=lp+if(member(Z[r],F)){ - "limGauche(btex $"+if(lmrm==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[r],-1)))}+"$ etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex $"+if(lmrp==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[r],1)))}+"$ etex,"+if(krp==1){"1);"}else{"0);"}} + "limGauche(btex + $"+if(lmrm==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[r],-1)))}+"$ + etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex $"+if(lmrp==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[r],1)))}+"$ etex,"+if(krp==1){"1);"}else{"0);"}} else{"valPos(btex $"+latex(simplifier(f(Z[r])))+"$ etex,"+if(sign(evalf(fp(Z[r]-0.01)))==sign(fp(Z[r]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0); "}}} @@ -270,7 +273,7 @@ intro:="input tableauVariation; verbatimtex %&latex \\documentclass{article} - \\usepackage[upright]{fourier} + \\?fonte \\usepackage{amsmath} \\newcommand{\\Mathbold}[1]{\\mbox{\\boldmath$#1$\\unboldmath}} \\begin{document} @@ -386,7 +389,249 @@ return(MetaL); \end{VerbatimOut} +%% +%% +%% TV avec une zone interdite : on rajoute comme argument l'intervalle interdit +%% par exemple, pour sqrt(x^2-1) : TVZ([-infinity,100],[],[-1,1],"f","x",sqrt(x^2-1),1,1) +%% + +\begin{VerbatimOut}[commandchars=?§£]{XcasTVZ.cxx} + +TVZ(L,F,FF,nom,nomv,f,ftt,nmr):={ +nl:=size(L); +if(FF[0]>L[0]){Imin:=FF[0];LL:=L}else{Imin:=L[0];LL:=[L[1]]}; +if(FF[1]<L[1]){Imax:=FF[1];LL:=L}else{Imax:=L[1];LL:=[L[0]]}; +FF:=[Imin,Imax]; +f:=unapply(f,x); +fp:=fonction_derivee(f); +Z:=concat(LL,F); +Z:=concat(Z,FF); +S:=resoudre(fp(x),x); + si size(S)>0 alors pour j de 0 jusque size(S)-1 faire + kk:=(evalf(S[j])>=evalf(L[0])) and (evalf(S[j])<=evalf(L[nl-1])); + kK:=(evalf(S[j])<evalf(Imin)) or (evalf(S[j])>evalf(Imax)); + Kk:=(kk) and kK; + if(Kk==1){Z:=append(Z,simplifier(S[j]))}; + fpour + fsi; + +Z:=sort(Z); +nz:=size(Z); + + + si Z[0]==Z[1] alors Z:=augment(Z[0],Z[2..nz-1]);nz:=nz-1; + fsi; +pour u de 1 jusque nz-2 faire + si Z[u]==Z[u+1] alors Z:=augment(Z[0..u-1],Z[u+1..nz-1]);nz:=nz-1; + fsi; +fpour; +nz:=size(Z); +for(k:=1;k<nz;k++){ +if ((Z[k]>Imin)and(Z[k]<Imax)){Z:=augment(Z[0..k-1],Z[k+1..nz-1]);nz:=nz-1; +} +} +nz:=size(Z); + +l0:=" newLigneVariables(btex $"+nomv+"$ etex);";lp:=" "; lf:=" ";lsp:=" "; +pour m de 0 jusque nz-1 faire l0:=l0+"val(btex $"+latex(Z[m])+"$ etex); +";fpour; + + k0:= evalf(limite(f(x),x=Z[0],1))> evalf(limite(f(x),x=Z[1],-1)); + kz:=evalf(limite(f(x),x=Z[nz-1],-1))> evalf(limite(f(x),x=Z[nz-2],1)); + +lsi:=" +newLigneSignes(btex $\\hbox{ Signe de }\\atop{\\displaystyle "+nom+"'("+nomv+")}$ etex);"+ + if(Z[0]==Imin){"debutNonDef;"}else{if(Z[0]==-infinity){if(sign(evalf(fp(if(Z[1]==+infinity){0}else{Z[1]-10^(-5)})))==1){"plus;"}else{"moins;"}}else{if(member(Z[0],F)==0){ + if(fp(Z[0])==0){"valBarre(btex 0 etex);"}else{" "}+ + if(sign(fp(Z[0]+10^(-5)))==1){"plus;"}else{"moins;"}}else{"nonDefBarre;"+ + if(sign(fp((Z[0]+10^(-5))))==1){"plus;"}else{"moins;"} }}} + +if(nz>2){ for(r:=1; r<=nz-2;r++){ ksp:=evalf(fp(Z[r]+0.01))>0; + lsp:=lsp+if(Z[r]==Imin){"debutNonDef;"}else{ + if(Z[r]==Imax){"finNonDef;"+ + if(ksp==1){"plus;"}else{"moins;"}}else{ + if(member(Z[r],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+ + if(ksp==1){"plus;"}else{"moins;"} + }}}}; + +lsf:=if(Z[0]==Imax){"finNonDef;"}else{if(member(Z[nz-1],F)==0){""}else{"nomDefBarre; +"}} +lm0:=limite(f(x),x=Z[0],1)==-infinity; + li:=" +newLigneVariations(btex $\\hbox{\\bf Variations de }\\atop{\\displaystyle \\Mathbold{"+nom+"}}$ etex);"+ + if(member(Z[0],F)==0){"valPos(btex $"+if(lm0==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[0],1)))}+"$ etex,"} + else{"nonDefBarre;limDroite(btex $"+if(lm0==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[0],1)))}+"$ etex,"}+ + if(k0==1){"1"}else{"0"}+ + ");"; + +if(nz>2){ + for(r:=1; r<=nz-2;r++){ + krm:=evalf(limite(f(x),x=Z[r-1],1))< evalf(limite(f(x),x=Z[r],-1)); + krp:=evalf(limite(f(x),x=Z[r],1))> evalf(limite(f(x),x=Z[r+1],-1)) ; + lmrm:=limite(f(x),x=Z[r],-1)==-infinity;lmrp:=limite(f(x),x=Z[r],1)==-infinity; + lp:=lp+if(Z[r]==Imin){"limGauche(btex $"+if(lmrm==1){ + "-\\infty"}else{ + latex(simplifier(limite(f(x),x=Z[r],-1)))} + +"$ etex,"+if(krm==1){ + "1);"}else{"0);"} + +"debutNonDef;" + }//fsi Zr=Imin + else{ + if (Z[r]==Imax) {"finNonDef;limDroite(btex $"+if(lmrp==1){ + "-\\infty"}else{latex(simplifier(limite(f(x),x=Z[r],1)))} + +"$ etex,"+if(krp==1){ + "1);"}else{"0);"} + } + else { + if(member(Z[r],F)){ + "limGauche(btex $"+if(lmrm==1){ + "-\\infty"}else{ + latex(simplifier(limite(f(x),x=Z[r],-1)))} + +"$ etex,"+if(krm==1){ + "1);"}else{"0);"} + +"nonDefBarre;limDroite(btex $"+if(lmrp==1){ + "-\\infty"}else{latex(simplifier(limite(f(x),x=Z[r],1)))} + +"$ etex,"+if(krp==1){ + "1);"}else{"0);"} + }//fsi (member Zr F) + else{"valPos(btex$"+latex(simplifier(f(Z[r])))+"$etex,"+ + if(sign(evalf(fp(Z[r]-0.01)))==sign(fp(Z[r]+0.01))){ + "0.5);"}else{ + if(krp==1){ + "1);"}else{"0);"}//felse(krp) + }//felse(valpos) + }//felse(member Zr F) + } //felse(Zr=Imax) + }//felse(Zr=Imin) + };//ffor + }//fsi nz + +lnz:=limite(f(x),x=Z[nz-1],-1)==-infinity; + lf:=if(member(Z[nz-1],F)==0){"valPos(btex $"+if(lnz==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[nz-1],-1)))}+"$ etex,"}else{"nonDefBarre;limGauche(btex $"+if(lnz==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[nz-1],-1)))}+"$ etex,"}+ + if(kz==1){"1);"}else{"0); +"}; + + +intro:="input tableauVariation; + verbatimtex +%&latex + \\documentclass{article} + \\?fonte + \\usepackage{amsmath} + \\newcommand{\\Mathbold}[1]{\\mbox{\\boldmath$#1$\\unboldmath}} + \\begin{document} + etex; + +" + + +MetaL:=if(ftt==2){if(nz>2){intro+"beginTableau("+nmr+")"+ + l0+lsi+lsp+lsf+" +endTableau; +end +";}else{ +intro+"beginTableau("+nmr+")"+ + l0+ +lsi+lsf+" +endTableau; +end"; +} +}else{ if(ftt==0){if(nz>2){intro+"beginTableau("+nmr+")"+ + l0+ +li+ +lp+ +lf ++" +endTableau; +end";}else{intro+"beginTableau("+nmr+")"+ + l0+ +li+ +lf ++" +endTableau; +end";}}else{ +if(nz>2){intro+"beginTableau("+nmr+")"+ + l0+ +lsi+lsp+lsf+ +li+ +lp+ +lf ++" +endTableau; +end";}else{intro+"beginTableau("+nmr+")"+ + l0+ +lsi+lsf+ +li+ +lf ++" +endTableau; +end";} +}} + + + +MetaLfc:=if(ftt==2){if(nz>2){" + +beginTableau("+nmr+")"+ + l0+lsi+lsp+lsf+" +endTableau; + +";}else{ +intro+"beginTableau("+nmr+")"+ + l0+ +lsi+lsf+" +endTableau; + +"; +} +}else{ if(ftt==0){if(nz>2){"beginTableau("+nmr+")"+ + l0+ +li+ +lp+ +lf ++" +endTableau; + +";}else{"beginTableau("+nmr+")"+ + l0+ +li+ +lf ++" +endTableau; + +";}}else{ +if(nz>2){"beginTableau("+nmr+")"+ + l0+ +lsi+lsp+lsf+ +li+ +lp+ +lf ++" +endTableau; + +";}else{"beginTableau("+nmr+")"+ + l0+ +lsi+lsf+ +li+ +lf ++" +endTableau; + +";} +}} + + +sortie:=fopen("XCasmpfc.mp"); +fprint(sortie,Unquoted,MetaLfc); +fclose(sortie); + + +return(MetaL); + } +:; + +\end{VerbatimOut} %% @@ -396,7 +641,7 @@ return(MetaL); -\begin{VerbatimOut}{XcasTVapp.cxx} +\begin{VerbatimOut}[commandchars=?§£]{XcasTVapp.cxx} @@ -493,7 +738,7 @@ intro:="input tableauVariation; verbatimtex %&latex \\documentclass{article} - \\usepackage[upright]{fourier} + \\?fonte \\usepackage{amsmath} \\newcommand{\\Mathbold}[1]{\\mbox{\\boldmath$#1$\\unboldmath}} \\begin{document} @@ -629,7 +874,7 @@ return(MetaL); -\begin{VerbatimOut}{XcasTVI.cxx} +\begin{VerbatimOut}[commandchars=?§£]{XcasTVI.cxx} TVI(L,F,nom,nomv,f,ftt,ao,nmr):={ @@ -769,7 +1014,7 @@ input tableauVariation; verbatimtex %&latex \\documentclass{article} - \\usepackage[upright]{fourier} + \\?fonte \\usepackage{amsmath} \\newcommand{\\Mathbold}[1]{\\mbox{\\boldmath$#1$\\unboldmath}} \\begin{document} @@ -898,7 +1143,7 @@ return(MetaL); -\begin{VerbatimOut}{XcasTVIapp.cxx} +\begin{VerbatimOut}[commandchars=?§£]{XcasTVIapp.cxx} TVIapp(L,F,nom,nomv,f,ftt,ao,nmr):={ @@ -1059,7 +1304,7 @@ input tableauVariation; verbatimtex %&latex \\documentclass{article} - \\usepackage[upright]{fourier} + \\?fonte \\usepackage{amsmath} \\newcommand{\\Mathbold}[1]{\\mbox{\\boldmath$#1$\\unboldmath}} \\begin{document} @@ -1193,7 +1438,7 @@ return(MetaL); -\begin{VerbatimOut}{XcasTabSignL.cxx} +\begin{VerbatimOut}[commandchars=?§£]{XcasTabSignL.cxx} TS(L,D,nmr):={ @@ -1235,7 +1480,7 @@ MetaL:=" input tableauVariation; verbatimtex %&latex \\documentclass{article} - \\usepackage[upright]{fourier} + \\?fonte \\usepackage{amsmath} \\newcommand{\\Mathbold}[1]{\\mbox{\\boldmath$#1$\\unboldmath}} \\begin{document} @@ -1310,7 +1555,7 @@ MetaL:=" input tableauVariation; verbatimtex %&latex \\documentclass{article} - \\usepackage[upright]{fourier} + \\?fonte \\usepackage{amsmath} \\newcommand{\\Mathbold}[1]{\\mbox{\\boldmath$#1$\\unboldmath}} \\begin{document} @@ -1371,7 +1616,7 @@ return(MetaL); -\begin{VerbatimOut}{XcasTabSignQ.cxx} +\begin{VerbatimOut}[commandchars=?§£]{XcasTabSignQ.cxx} TSq(nomf,L,Fo,D,nmr):={ L:=apply(f->unapply(f,x),L); Fo:=apply(f->unapply(f,x),Fo); @@ -1436,7 +1681,7 @@ MetaL:=" input tableauVariation; verbatimtex %&latex \\documentclass{article} - \\usepackage[upright]{fourier} + \\?fonte \\usepackage{amsmath} \\newcommand{\\Mathbold}[1]{\\mbox{\\boldmath$#1$\\unboldmath}} \\begin{document} @@ -1520,7 +1765,7 @@ MetaL:=" input tableauVariation; verbatimtex %&latex \\documentclass{article} - \\usepackage[upright]{fourier} + \\?fonte \\usepackage{amsmath} \\newcommand{\\Mathbold}[1]{\\mbox{\\boldmath$#1$\\unboldmath}} \\begin{document} @@ -1598,7 +1843,7 @@ return(MetaL); -\begin{VerbatimOut}{XcasTabSign.cxx} +\begin{VerbatimOut}[commandchars=?§£]{XcasTabSign.cxx} TSa(a,b,c,d,nmr):={ zA:=resoudre(a*x+b=0,x)[0]; zB:=resoudre(c*x+d=0,x)[0]; @@ -1608,7 +1853,7 @@ zmax:=max(zA,zB); verbatimtex %&latex \\documentclass{article} - \\usepackage[upright]{fourier} + \\?fonte \\usepackage{amsmath} \\newcommand{\\Mathbold}[1]{\\mbox{\\boldmath$#1$\\unboldmath}} \\begin{document} @@ -1660,7 +1905,7 @@ return(Meta); -\begin{VerbatimOut}{XcasTSc.cxx} +\begin{VerbatimOut}[commandchars=?§£]{XcasTSc.cxx} TSc(g,D,nmr):={ f:=unapply(g,x); Z:=NULL; @@ -1725,7 +1970,7 @@ MetaL:=" input tableauVariation; verbatimtex %&latex \\documentclass{article} - \\usepackage[upright]{fourier} + \\?fonte \\usepackage{amsmath} \\newcommand{\\Mathbold}[1]{\\mbox{\\boldmath$#1$\\unboldmath}} \\begin{document} @@ -1876,7 +2121,7 @@ fclose(Sortie); \end{VerbatimOut} \newenvironment{TSa} -{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\\#\~]{XCas.user}} +{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCas.user}} {\end{VerbatimOut} \dresse{} } @@ -1905,7 +2150,7 @@ fclose(Sortie); \end{VerbatimOut} \newenvironment{TSq}% -{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\\#\~]{XCasQ.user}} +{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasQ.user}} {\end{VerbatimOut}\dresse{Q}} @@ -1913,7 +2158,7 @@ fclose(Sortie); \newenvironment{TSq*}[1]% {\setcounter{TVnbis}{\theTVn} \setcounter{TVn}{#1} -\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\\#\~]{XCasQ.user}} +\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasQ.user}} {\end{VerbatimOut}\dressetoile{Q}} @@ -1933,14 +2178,14 @@ fclose(Sortie); \end{VerbatimOut} \newenvironment{TS}% -{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\\#\~]{XCasL.user}} +{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasL.user}} {\end{VerbatimOut}\dresse{L}} \newenvironment{TS*}[1] {\setcounter{TVnbis}{\theTVn} \setcounter{TVn}{#1} -\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\\#\~]{XCasL.user}} +\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasL.user}} {\end{VerbatimOut}\dressetoile{L}} @@ -1965,12 +2210,12 @@ fclose(Sortie); \newenvironment{TSc*}[1]% {\setcounter{TVnbis}{\theTVn} \setcounter{TVn}{#1} -\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\\#\~]{XCasTSc.user}} +\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTSc.user}} {\end{VerbatimOut}\dressetoile{TSc}} \newenvironment{TSc}% -{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\\#\~]{XCasTSc.user}} +{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTSc.user}} {\end{VerbatimOut}\dresse{TSc}} @@ -1990,14 +2235,14 @@ fclose(Sortie); \end{VerbatimOut} \newenvironment{TV}% -{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\\#\~]{XCasTV.user}}% +{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTV.user}}% {\end{VerbatimOut} \dresse{TV}} \newenvironment{TV*}[1]{% \setcounter{TVnbis}{\theTVn} \setcounter{TVn}{#1} -\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\\#\~]{XCasTV.user}}% +\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTV.user}}% {\end{VerbatimOut}\dressetoile{TV}} @@ -2006,6 +2251,45 @@ fclose(Sortie); + + + + +\begin{VerbatimOut}{XCasTVZ.giac} +maple_mode(0); +read("XcasTVZ.cxx"); +Sortie:=fopen("XCasmpTVZ.mp"); +vect.xcas.user := read("XCasTVZ.user"); +vxo := vect.xcas.user; +dim.vxo := dim(vxo); +nbr.line.vxo := dim.vxo; +Resultat:=cat(" "); +rslt := vxo[0]; RslT:=cat(rslt); +Resultat:=cat(Resultat,RslT); +fprint(Sortie,Unquoted,Resultat); +fclose(Sortie); +\end{VerbatimOut} + +\newenvironment{TVZ}% +{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTVZ.user}}% +{\end{VerbatimOut} +\dresse{TVZ}} + +\newenvironment{TVZ*}[1]{% +\setcounter{TVnbis}{\theTVn} +\setcounter{TVn}{#1} +\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTVZ.user}}% +{\end{VerbatimOut}\dressetoile{TVZ}} + + + + + + + + + + \begin{VerbatimOut}{XCasTVapp.giac} maple_mode(0); read("XcasTVapp.cxx"); @@ -2022,14 +2306,14 @@ fclose(Sortie); \end{VerbatimOut} \newenvironment{TVapp}% -{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\\#\~]{XCasTVapp.user}}% +{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTVapp.user}}% {\end{VerbatimOut} \dresse{TVapp}} \newenvironment{TVapp*}[1]{% \setcounter{TVnbis}{\theTVn} \setcounter{TVn}{#1} -\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\\#\~]{XCasTVapp.user}}% +\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTVapp.user}}% {\end{VerbatimOut}\dressetoile{TVapp}} @@ -2058,14 +2342,14 @@ fclose(Sortie); \end{VerbatimOut} \newenvironment{TVI}% -{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\\#\~]{XCasTVI.user}}% +{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTVI.user}}% {\end{VerbatimOut}\dresse{TVI}} \newenvironment{TVI*}[1]% {\setcounter{TVnbis}{\theTVn} \setcounter{TVn}{#1} -\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\\#\~]{XCasTVI.user}}% +\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTVI.user}}% {\end{VerbatimOut}\dressetoile{TVI}} @@ -2089,14 +2373,14 @@ fclose(Sortie); \end{VerbatimOut} \newenvironment{TVIapp}% -{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\\#\~]{XCasTVIapp.user}}% +{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTVIapp.user}}% {\end{VerbatimOut}\dresse{TVIapp}} \newenvironment{TVIapp*}[1]% {\setcounter{TVnbis}{\theTVn} \setcounter{TVn}{#1} -\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\\#\~]{XCasTVIapp.user}}% +\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTVIapp.user}}% {\end{VerbatimOut}\dressetoile{TVIapp}} |