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 n'en retrouve plus de trace avec google. Je ne cherche pas une image pour la remettre dans un includegraphics mais bien un programme Latex.

Posée 09 Jan, 07:48

pzorba75's gravatar image

pzorba75
1711415
Taux d'acceptation : 10%

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)]; par j=0..49 je suppose.

(09 Jan, 12:46) Bruno Bruno's gravatar image

J'ai essayé de compiler l'exemple provenant du site de G. Connan. Sans succès, les environnements donnent ! LaTeX Error: FileXCAStablenormex.tex' not found.`

Je ne comprends pas ce qu'il faut faire pour compiler cet exemple.

(09 Jan, 13:50) pzorba75 pzorba75's gravatar image

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

(09 Jan, 16:19) Bruno Bruno's gravatar image

J'utilise Xcas sur mon ordinateur pour du calcul formel simple, mais pas dans un programme compilant Latex comme je le fais avec TexMaker.

(09 Jan, 16:21) pzorba75 pzorba75's gravatar image

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

(09 Jan, 16:47) Bruno Bruno's gravatar image

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 exemple

après dans tous les cas il faut passer par un logiciel externe que ce soit xcas, sagemath ou asymptote

(09 Jan, 16:58) Bruno Bruno's gravatar image

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.

(09 Jan, 17:15) pzorba75 pzorba75's gravatar image

Avez vous vu cette page sur MathemaTeX ?

! LaTeX Error: File XCAStablenormex.tex' not found signifie que latex ne peut pas trouver le fichierXCAStablenormex.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.

(09 Jan, 22:42) touhami touhami's gravatar image

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.

(10 Jan, 07:15) pzorba75 pzorba75's gravatar image

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 ?

(10 Jan, 11:49) Bruno Bruno's gravatar image

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.

(10 Jan, 13:17) pzorba75 pzorba75's gravatar image

@pzorba75 Attention ! Cette réponse était un commentaire plutôt qu'une réponse et a été convertie comme tel.

(11 Jan, 00:18) Pathe ♦♦ Pathe's gravatar image
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 :Loi-normale, voici comment je l'obtiens avec Emacs et le mode mineur orgtbl.

  1. Ajouter usepackage{comment} à l'entête
  2. activer le mode orgtbl : M-x orgtbl-mode
  3. Créer un gabarit pour une zone de saisie dans un environnement comment et une zone de réception entre deux balises : M-x orgtbl-insert-radio-table. Donnez un nom pour identifier la table (Loi-normale-centrée-réduite par exemple).
  4. Remplir la première ligne du tableau : x puis 0.00,0.01...,0.09
  5. Ajouter autant de lignes vierges que l'on veut, puis saisir les formules : en colonne 1 $1=@-1+0.1, dans les autres colonnes ($2 à $11) $2 = 1-utpn($1+@1,0,1);%.4f etc... Tapez 0 pour amorcer en @2$1
  6. C-u C-c C-c pour générer le tableau

Par défaut, c'est un tabular qui est créé avec des r. Pour avoir la maîtrise de l'environnement il suffit de remplacer nil par t comme paramètre qui suit :splice . Bien entendu, il faut alors décrire l'environnement du tableau dans une syntaxe correcte. Voilà à quoi ressemble le fichier source en png alt text

Lien permanent

Publiée 10 Jan, 19:55

Jean-jacques%20R%C3%A9torr%C3%A9's gravatar image

Jean-jacques Rétorré
2054
Taux d'acceptation : 50%

Modifiée 12 Jan, 16:41

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, 22:37) pzorba75 pzorba75's gravatar image
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, 11:58) Jean-jacques Rétorré Jean-jacques%20R%C3%A9torr%C3%A9's gravatar image
1

@Jean-jacques Rétorré je ne vois pas la première colonne, i.e. x=0.00.

(11 Jan, 12:24) touhami touhami's gravatar image

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, 16:53) Jean-jacques Rétorré Jean-jacques%20R%C3%A9torr%C3%A9's gravatar image

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 pdflatex -shell-escape monfichier.tex

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 latex monfichier.tex + asy monfichier-1.asy + latex monfichier.tex

Lien permanent

Publiée 12 Jan, 14:41

Bruno's gravatar image

Bruno
1286
Taux d'acceptation : 50%

Bon travail.

J'ai remarqué que le contenu de fichier .giac 6>> donnees:=read("XCASloinormale.user"); 7>> 8>> Resultat:=cat("loinormale(",donnees); ... est envoyé au fichier .tex aussi ce qui produit des lignes indésirables dans la sorties.

Il est aussi préférable de séparer le fond eval(p-dy), ... de la forme "\\cellcolor{yellow} \\numprint{". Vous pouvez utiliser les options de l'extension colortbl et array.

(12 Jan, 16:32) touhami touhami's gravatar image

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:28) Jean-jacques Rétorré Jean-jacques%20R%C3%A9torr%C3%A9's gravatar image

@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 includegraphics

(12 Jan, 19:22) Bruno Bruno's gravatar image

@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, 20:15) touhami touhami's gravatar image

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, 20:21) Jean-jacques Rétorré Jean-jacques%20R%C3%A9torr%C3%A9's gravatar image

La solution de Guillaume Connan sur ce forum fonctionne si l'on remplace [1,0.5,1.96] par "[1,0.5,1.96]" dans l'environnement XCAStablenorm avec la commande pdflatex -shell-escape monfichier.tex

Celui de son site présente des erreurs lors de l'exécution du code Xcas.

(13 Jan, 17:59) Bruno Bruno's gravatar image
Affichage de 5 parmi 6 Afficher 1 commentaire(s) en plus

On peut utiliser xintexpr pour cela. L'extension xinttools est automatiquement chargée et avec \xintFor il est facile de faire des tables.

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}
Lien permanent

Publiée 25 Fév, 16:03

jfbu's gravatar image

jfbu
212
Taux d'acceptation : 0%

Modifiée 19 Mai, 17:52

La compilation ne fonctionne pas dans overleaf.com.

(25 Fév, 22:46) pzorba75 pzorba75's gravatar image

@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, 13:40) jfbu jfbu's gravatar image
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, 17:20) jfbu jfbu's gravatar image

@pzorba75 j'ai modifié le code pour qu'il fonctionne avec xint d'avant 1.2p, et... ça marche sur overleaf !

(19 Mai, 17:53) jfbu jfbu's gravatar image

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.

Lien permanent

Publiée 11 Jan, 13:40

pzorba75's gravatar image

pzorba75
1711415
Taux d'acceptation : 10%

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, 15:34) Jean-jacques Rétorré Jean-jacques%20R%C3%A9torr%C3%A9's gravatar image
Votre réponse
(dés)activer l'aperçu

Suivre cette question

Par courriel :

Une fois que vous serez enregistré, vous pourrez souscrire à n'importe quelle mise à jour ici

Par flux RSS :

Réponses

Réponses et commentaires

Bases de Markdown

  • *italique* ou _italique_
  • **gras** ou __gras__
  • Lien ::[texte](http://url.com/ "Titre ")
  • Image : ?![alt texte](/path/img.jpg "Titre ")
  • Liste numérotée : 1. Foo 2. Bar
  • Pour ajouter un passage à la ligne, ajoutez deux espaces à l'endroit où vous souhaitez que la ligne commence.
  • Les balises HTML de base sont également prises en charge.

Mots-clés de la question :

×1

Question posée : 09 Jan, 07:48

Question vue : 959 fois

Dernière mise à jour : 19 Mai, 17:53

Questions similaires