Je cherche un programme LaTeX permettant d'obtenir cette table entre 0 et 5 par pas de 0,01 pour la placer en annexe d'un exercice où la calculatrice est interdite. J'ai eu l'occasion de voir passer ce genre de programme sur des forums mais nul moteur de recherche n'en retrouve la trace. Je ne cherche pas une image pour la remettre dans un
Affichage de 5 parmi 12
Afficher 7 commentaire(s) en plus
|
Un tel tableau se construit assez facilement en utilisant le tableur intégré à Emacs (faut avoir fait l'effort d'apprendre à s'en servir, quand même). Il faut évidemment éditer ses fichiers .tex avec Emacs. Je prend modèle sur le tableau qui est sur cette page. Voici comment je l'obtiens avec Emacs et le mode mineur
Par défaut, c'est un environnement Voici à quoi ressemble le fichier source en .png ! Publiée 10 Jan '18, 19:55 Jean-jacques Rétorré Pathe ♦♦ J'hésite vraiment avant d'installer un produit nouveau et l'apprendre pour obtenir une table de valeurs qui sera ensuite exportée dans un document Latex. Un peu marteau-pilon pour écraser une mouche.
(10 Jan '18, 22:37)
pzorba75
1
S'il ne s'agit que d'un problème ponctuel, j'ai mis sur pastebin le tableau résultant (au dela de 4 il n'y a que des 1) http://ix.io/E1k Il faut avoir déclaré numprint dans l'entête pour avoir le type de colonne n{1}{4} J'ai mis sur pastebin le fichier source complet http://ix.io/E1j
(11 Jan '18, 11:58)
Jean-jacques Rétorré
1
@Jean-jacques Rétorré je ne vois pas la première colonne, i.e.
(11 Jan '18, 12:24)
touhami
Je prends le tableau fourni que je pourrai utiliser à ma guise dans mes prochains documents Latex. Je ne ferai pas d'installation de logiciels pour une utilisation vraiment limitée.
(11 Jan '18, 13:40)
pzorba75
1
Je ne suis pas sûr qu'il s'agisse d'une réponse à la question. Plutôt un commentaire. On peut obtenir le tableau de valeurs avec n'importe quel tableur et un convertisseur au format LaTeX. C'est juste un peu moins confortable et les possibilités sont plus limitées. Peu de tableurs sont capables d'effectuer des calculs symboliques comme celui d'Emacs.
(11 Jan '18, 15:34)
Jean-jacques Rétorré
Merci C'était pour tester si on pouvait écrire n'importe quoi sur ce site :-). Je joins la dernière version du fichier .tex avec ma dernière version, pour tester (charger avec Emacs, évidemment !) http://ix.io/E4V. Le même calcul effectué jusqu'à 4 http://ix.io/E4W
(12 Jan '18, 16:53)
Jean-jacques Rétorré
Affichage de 5 parmi 6
Afficher 1 commentaire(s) en plus
|
Le code : Ouvrir dans l'éditeur Overleaf
\documentclass[10pt, french]{article} \usepackage{fancyvrb,amsmath} \usepackage[]{babel} \usepackage[T1]{fontenc} \usepackage{colortbl} \usepackage{slashbox} \usepackage{numprint} \usepackage[width=18cm]{geometry} %%%% un peu de giac/xcas \makeatletter \newcommand{\executGiacmp}[1]{ \immediate\write18{giac <#1 } } % linux % \immediate\write18{giac <#1 } } % window \makeatother \begin{VerbatimOut}{XCASloinormale.cxx} loinormale(L):={ local x, dx, dy, I, T, k, p, c, t; x:=L[0]; dx:=L[1]; dy:=L[2]; c:=floor(dy/dx)+1; T:="\\begin{tabular}{*{"+c+"}{|c}|} \\hline"; for(p:=0; p<=x; p:=p+dy){ if(p==0)then{ for(k:=0; k<=dy; k:=k+dx){ if(k==0)then{T:=T+"\\cellcolor{yellow} \\backslashbox{$n$}{$p$} &"} else{ if(k==dy)then{T:=T+"\\cellcolor{yellow} \\numprint{"+eval(k-dx)+"} \\\\\\hline"} else{T:=T+"\\cellcolor{yellow} \\numprint{"+eval(k-dx)+"} &"} } }} else{ for(k:=0; k<=dy; k:=k+dx){ if(k==0)then{T:=T+"\\cellcolor{yellow} \\numprint{"+eval(p-dy)+"} &"} else{ I:=evalf(integrate((exp(-0.5*t^2))/sqrt(2*pi),t,-infinity,(p-dy)+(k-dx))); if(k==dy)then{T:=T+"\\numprint{"+round(I,5)+"} \\\\\\hline"} else{T:=T+"\\numprint{"+round(I,5)+"} &"} } }} } T:=T+"\\end{tabular}"; } :; \end{VerbatimOut} \begin{VerbatimOut}{XCASloinormale.giac} maple_mode(0); read("XCASloinormale.cxx"); Sortie:=fopen("XCASloinormale.tex"); donnees:=read("XCASloinormale.user"); Resultat:=cat("loinormale(",donnees); Resultat:=cat(Resultat,");"); Resultat:=expr(Resultat); fprint(Sortie,Unquoted,Resultat); fclose(Sortie); \end{VerbatimOut} \newenvironment{loinormale} {\VerbatimEnvironment\begin{VerbatimOut}{XCASloinormale.user}} {\end{VerbatimOut} \executGiacmp{XCASloinormale.giac} \input{XCASloinormale} } \begin{document} \begin{center} \Large\textbf{Loi normale} \end{center} \[ \Phi (n,p) = \sqrt{\dfrac{1}{2\pi}} \int_{-\infty}^{n+p} \text{e}^{-x^2/2} \] \small \begin{center} \begin{loinormale} "4, 0.01, 0.1" \end{loinormale} \end{center} \end{document} fonctionne chez moi avec la commande Autre solution : utiliser un langage pour lequel il existe un environnement dédié. Voici un exemple en asymptote rudimentaire mais que je peux améliorer au besoin. Ouvrir dans l'éditeur Overleaf
\documlentclass{article} \usepackage{asymptote} \begin{document} \begin{asy} size(500,200,IgnoreAspect); real x=0, y, pas=0.01; int n=200; for(int k=0; k<n; ++k){ y=(1+erf(x/sqrt(2)))/2; x=x+pas; label(format("%#.4f",y),(k%10,k%10-k)); } \ens{asy} \end{document} avec une compilation Publiée 12 Jan '18, 14:41 Bruno Bon travail. J'ai remarqué que le contenu de fichier .giac
Il est aussi préférable de séparer le fond
(12 Jan '18, 16:32)
touhami
Le code du tabular de XCASloinormale.tex est assez bourrin. Chaque nombre est dans un numprint et les alignements dans le tableau sont mauvais. Les calculs peuvent être faits par n'importe quel tableur et convertis au format LaTeX par un convertisseur idoine. Je sais qu'il en existe.
(12 Jan '18, 18:28)
Jean-jacques Rétorré
@jean-jacques Rétorré désolé que ça ne vous convienne pas. j'essaie juste de répondre au problème posé à savoir générer ce genre de tableau directement dans le fichier source. Je n'ai jamais prétendu que cela était parfait. Vous pouvez toujours modifier ce qui vous gène.
Laissons au demandeur choisir la solution qui lui conviendra le mieux.
Pour ma part m'aimant pas surcharger mes fichiers sources .tex et ayant une parfait méconnaissance des tableurs j'opterai pour une solution externe type asymptote/python puis un
(12 Jan '18, 19:22)
Bruno
@jean-jacques Rétorré Ici le code n'est pas destiné à être utilisé par un être humain, c'est comme un fichier .toc ou .aux, d'ailleurs on peut utiliser une extension moins attirante .tmp ou .dat.
(12 Jan '18, 20:15)
touhami
Pour moi donc ça me convient parfaitement, je ne suis pas l'auteur de la demande. Je faisais juste remarquer que le code XCAS est largement perfectible. Le non alignement des nombres en colonnes gène la lecture. Dans ma réponse, j'ai décrit le format des colonnes du tabular par {*{11}{n{1}{4}}} ce qui permet d'aligner et de formater les nombres du tableau en colonnes. ça ne doit pas être bien sorcier de modifier le code que produit XCAS.
(12 Jan '18, 20:21)
Jean-jacques Rétorré
Affichage de 5 parmi 6
Afficher 1 commentaire(s) en plus
|
On peut utiliser xintexpr pour cela. L'extension Le détail des calculs est expliqué dans les commentaires. Voici le résultat : édité pour pouvoir fonctionner avec version de xint de overleaf (2016/03/19 1.2g actuellement) (non car je n'ai pas assez de réputation pour téléverser une image) En bref, au vu de la table vaudrait mieux s'arrêter à 4 écart-types. Voici le code Ouvrir dans l'éditeur Overleaf
% -*- coding: iso-latin-1; -*- % Dimanche 25 février 2018 à 12:21:43 % Samedi 19 mai 2018: ne pas utiliser d'affectations simultanées \documentclass[french]{article} \usepackage[latin1]{inputenc} \usepackage[T1]{fontenc} \usepackage{babel} \usepackage[autolanguage, np]{numprint} \usepackage[hscale=0.85, vscale=0.85]{geometry} \usepackage{xintexpr} % dans le préambule les :, ;, ne sont pas encore frenchb-actifs donc ok. % l'assignation simultanée de valeurs nécessite xint 1.2p (2017/12/05) % au minimum % \xintdeffloatvar a_1, a_2, a_3, a_4, a_5, a_6 := % 0.0705230784, % 0.0422820123, % 0.0092705272, % 0.0001520143, % 0.0002765672, % 0.0000430638; \xintdeffloatvar a_1:= 0.0705230784; \xintdeffloatvar a_2:= 0.0422820123; \xintdeffloatvar a_3:= 0.0092705272; \xintdeffloatvar a_4:= 0.0001520143; \xintdeffloatvar a_5:= 0.0002765672; \xintdeffloatvar a_6:= 0.0000430638; \xintdeffloatfunc erfc(x) := % uniquement pour x positif % la formule prise de % https://en.wikipedia.org/wiki/Error_function#Approximation_with_elementary_functions % garantit à erf(x) = 1 - erfc(x) une erreur absolue d'au plus 3e-7. % % Ici on calcule erfc(x) avec environ 16 chiffres de précision % (au sens où chaque opération élémentaire est faite avec cette % précision). % % Pour x petit mais pas trop proche de zéro, la différence % 1 - erfc(x) aura encore suffisamment de chiffres significatifs % avant que l'erreur absolue de 3 10^{-7} ne supprime toute signification % aux chiffres suivants. Quoi qu'il en soit cela sera utilisé pour % la fonction de distribution cumulée de la loi normale Phi(z) % qui sera aux alentours de 0.5 et l'erreur absolue étant de l'ordre de 10^{-7}, % ça sera suffisant (avec une erreur < 0.6ulp). % % Pour x grand, la valeur calculée sera inférieure à 3 10^{-7} % et n'aura pas plus de signification que erfc(x) \approx 0. De toute façon % les deux donnent 1.00000 au niveau de Phi(z) ce qui est correct pour 5 chiffres % d'approximation. ((((((a_6 * x + a_5) * x + a_4) * x + a_3) * x + a_2) * x + a_1) * x + 1) ** -16 ; % fin de définition de erfc(x) \xintdeffloatvar rac2inv := sqrt(2)/2;% on le calcule une fois pour toutes % https://en.wikipedia.org/wiki/Standard_normal_table#Cumulative % On va calculer Phi(z) = 1/2(1 + erf(z/sqrt(2))) = 1 - erfc(z/sqrt(2))/2 \xintdeffloatfunc Phi(z) := 1 - 0.5 * erfc(rac2inv * z); % ATTENTION J'AVAIS MIS 0.5 erfc(x) QUI MARCHERAIT NORMALEMENT % MAIS LE "e" DE "erfc" EST INTERPRÉTÉ COMME SIGNALANT % UNE NOTATION SCIENTIFIQUE: 0.5e3 par exemple. % DONC LE "*" EST INDISPENSABLE, ON NE PEUT PAS COMPTER SUR LA % MULTIPLICATION TACITE DEVANT UN NOM DE FONCTION DÉBUTANT PAR "E" OU "e". \usepackage{array} \begin{document} % on pourrait aussi utiliser 0, 1, 2, ... pour \xintFor, % mais \xintFor* est plus rapide et la première chose que % fait \xintFor c'est de convertir au format pour \xintFor* % sans les virgules {\small \begin{tabular}{|>{\bfseries}c|*{10}{l|}} \hline z\xintFor* #1 in {0123456789}\do {&\multicolumn{1}{c|}{\textbf{\np{+0.0#1}}}}% \\\hline \xintFor* #1 in {01234}\do {% NOTE: SERAIT MIEUX SANS DOUTE DE S'ARRÊTER À 3 % QUITTE À AJOUTER UNE DERNIÈRE LIGNE 4.00, ETC \xintFor* #2 in {0123456789}\do {% \np{#1.#2}\xintFor* #3 in {0123456789}\do {% &\np{% on pourrait faire un macro ad hoc pour la virgule mais bon \xinttheiexpr[5] % arrondir à 5 chiffres après la virgule \xintfloatexpr Phi(#1.#2#3)\relax \relax }% }% fin de boucle avec #3 \\\hline }% fin de boucle avec #2 }% fin de boucle avec #1 \end{tabular} } \thispagestyle{empty} \end{document} Publiée 25 Fév '18, 16:03 jfbu La compilation ne fonctionne pas dans overleaf.com.
(25 Fév '18, 22:46)
pzorba75
@pzorba75 je ne connais pas overleaf.com mais je suppose que la version de xintexpr là-bas n'est pas assez récente : j'utilise ici affectation simultanée qui nécessite 1.2p (2017/12/05)
(05 Avr '18, 13:40)
jfbu
1
@pzorba75 avec beaucoup de retard je vérifie aujourd'hui seulement overleaf, et en effet ils ont d'après le log xint 2016/03/19 1.2g qui n'est pas assez à jour.
(19 Mai '18, 17:20)
jfbu
|
Un exemple de Guillaume Connan utilisant Xcas.
Pour avoir le bon intervalle, il doit falloir changer la ligne
T:=[[0,seq(0.00+k*0.01,k=0..9)],
seq([0.0+j*0.1,seq(evalf(normal_cdf(j*0.1+m*0.01)),m=0..9)],j=0..29)];
parj=0..49
je suppose.J'ai essayé de compiler l'exemple provenant du site de G. Connan. Sans succès, les environnements donnent
! LaTeX Error: File
XCAStablenormex.tex' not found.`Je ne comprends pas ce qu'il faut faire pour compiler cet exemple.
Je ne peux pas tester, Xcas n'est pas installé sur mon ordinateur. Une chose est certaine, il faut compiler avec l'option --shell-escape
J'utilise Xcas sur mon ordinateur pour du calcul formel simple, mais pas dans un programme compilant Latex comme je le fais avec TexMaker.
dans Texmaker aller dans option->configuration et ajouter l'option -shell-escape dans la commande de latex ou pdflatex suivant celle utilisée. Cela permet à la commande write18 de s'exécuter en appelant un exécutable autre que latex/pdflatex
quitte à utiliser un logiciel externe comme xcas, tu peux utiliser des logiciels comme asymptote ou sagemath pour lesquels il existe une extension dédiée ce qui rend le code beaucoup plus simple que l'on glisse entre des balise
\begin{asy}
et\end{asy}
par exempleaprès dans tous les cas il faut passer par un logiciel externe que ce soit xcas, sagemath ou asymptote
J'ai bien l'option shell-escape sur la définition de la commande de compilation et toujours la même erreur de compilation. Voici la partie de la log de compilation : openout3 = `XCAStablenorm.user'.
runsystem(giac XCAStablenorm.giac)...executed.
! LaTeX Error: File `XCAStablenormex.tex' not found.
Type X to quit or to proceed,
or enter new name. (Default extension: tex)
Enter file name: ! Emergency stop.
l.119 end{XCAStablenorm}
*** (cannot read from terminal in nonstop modes) Je n'y comprends rien.
Avez vous vu cette page sur MathemaTeX ?
! LaTeX Error: File
XCAStablenormex.tex' not found signifie que latex ne peut pas trouver le fichier
XCAStablenormex.tex` donc soit Xcas n'a pas pu créer le fichier soit il le place dans une endroit où latex ne peut pas le voir.Je ne sais pas où chercher le fichier XCAStablenormex.tex ni si ce fichier existe sur mon installation ou s'il est créé en compilant le document avec TexMaker. Je ne vois rien dans le fichier log de compilation, pour autant que la création d'un fichier envoie un message dans le fichier log avec le chemin où il vient d'être créé. Les pages indiquées sur le forum mathematex ne sont pas claires pour une "petit technicien" de mon acabit. Je crois que je vais abandonner cette idée de produire une table de distribution en source Latex et me contenter de vilaines images volées sur Internet.
Je viens d'installer Xcas. Le fichier .tex est bien créé par l'environnement
VerbatimOut
mais il reste des erreurs dans le code Xcas qui a du évolué depuis 2011 ! Il s'agit pour moi d'un problème de-shell-escape
As tu bien\write18 enabled
dans le fichier .log ?Je ne trouve pas de message write18 dans la log de compilation alors que les options -enable-shell-escape figurent pour la compilation Latex et PdfLatex.
@pzorba75 Attention ! Cette réponse était un commentaire plutôt qu'une réponse et a été convertie comme tel.