Mathématice, intégration des Tice dans l'enseignement des mathématiques  
Sommaire > N°40 - mai 2014 > Regards croisés sur l’algorithmique et la (...)

Regards croisés sur l’algorithmique et la programmation (5)
Moteur de recherche
Mis en ligne le 19 avril 2014, par Alain Busser, Guillaume Connan, Hubert Raymondaud, Pierre-Marc Mazat, Stéphan Manganelli

Cet article peut être librement diffusé et son contenu réutilisé pour une utilisation non commerciale (contacter l’auteur pour une utilisation commerciale) suivant la licence CC-by-nc-sa (http://creativecommons.org/licenses/by-nc-sa/3.0/fr/legalcode)

Cette cinquième édition de la rubrique Regards croisés sur l’algorithmique et la programmation est consacrée aux statistiques.

Contribution d’Alain Busser

Pour saisir des données et faire de la statistique dessus, voir le travail de l’IREM de Lyon autour de Christian Mercat (le spécialiste des entrelacs et graphes ;-))

Et, si JSXGraph n’est pas du CoffeeScript mais du JavaScript, l’un de ses exemples montre comment saisir des données en JavaScript : en utilisant AJAX

  • Statistiques et arithmétiques avec MathsOntologie

Le logiciel MathsOntologie peut être téléchargé en suivant ce lien ; sa documentation en pdf est ici

l’article au format pdf son source en odt
PDF - 228.9 ko
OpenDocument Text - 212 ko
  • CoffeeScript

L’outil de programmation alcoffeethmique a été utilisé ici :

Zip - 313.6 ko
alcoffeethmique
décompresser puis lancer avec un navigateur internet

Extrait de son code source

Pour la statistique, les fonctions suivantes sont programmées :

  1. laSommeDe = (tableau) ->
  2. _S = 0
  3. _S += _e for _e in tableau
  4. _S
  5.  
  6. laMoyenneDe = (tableau) ->
  7. laSommeDe(tableau)/tableau.length
  8.  
  9. laVarianceDe = (tableau) ->
  10. laMoyenneDe (carré(x-laMoyenneDe(tableau)) for x in tableau)
  11.  
  12. lEcartTypeDe = (tableau) ->
  13. laRacineDe laVarianceDe tableau
  14.  
  15. laMédianeDe = (tableau) ->
  16. _t = tableau
  17. _t.sort (x,y)->(x > y)
  18. if _t.length % 2 is 0
  19. _indice = _t.length/2-1
  20. (_t[_indice]+_t[_indice+1])/2
  21. else
  22. _indice = (_t.length-1)/2
  23. _t[_indice]

Télécharger

On apprécie la concision du langage [1]. Par exemple, la moyenne d’un tableau y est définie comme quotient de la somme du tableau par sa longueur (le nombre d’éléments qu’il contient).

l’article en pdf son source en odt le génome étudié dans le document
PDF - 369.6 ko
OpenDocument Text - 92.4 ko
Texte - 1.3 ko
  • La calculatrice Ti-82Stats-fr

Quelques exemples

Dans les onglets suivants, on montre

  • comment les outils statistiques de la Ti82stats-fr permettent de calculer l’équation réduite de la droite par deux points
  • comment on peut utiliser le mode histogramme pour conjecturer l’allure d’une loi de probabilité
  • comment on peut tester la normalité d’une variable aléatoire

La statistique inférentielle a été traitée dans le dernier onglet de cet article.

Droite par deux points

L’exercice, classique en Seconde, intervient deux fois dans le programme :

  1. en parlant des fonctions affines
  2. en parlant des équations de droites

Voici l’énoncé de l’exemple traité ci-dessous :

Déterminer l’équation réduite de la droite passant par A(2 ;1) et B(4,2).

Mais on ignore souvent que c’est en fait un exercice de statistiques ! En effet, la droite (AB) n’est autre que la droite de régression linéaire obtenue avec le nuage de points A et B.

Alors on entre les coordonnées de A et B dans l’éditeur statistique :

Puis on choisit, parmi les calculs, la régression linéaire :

On applique la régression aux deux listes L1 (liste des abscisses) et L2 (liste des ordonnées) :

On obtient alors l’équation réduite cherchée :

Pour aller plus loin

On peut même récupérer l’équation, pour par exemple représenter graphiquement la fonction affine ainsi obtenue ! L’équation se trouve parmi les variables statistiques, auxquelles on accède avec le bouton VARS :

Parmi les variables statistiques, celle-ci est de type "équation" et se trouve donc dans le menu idoine :

Pour peu qu’on fasse cette recherche d’équation alors qu’on est dans "Y=", on a directement l’équation de la droite dans l’éditeur d’équations :

Pour compléter le dessin, il suffit de dessiner aussi les points A et B, ce qui peut être fait encore une fois avec de la statistique, puisqu’on a les coordonnées du nuage de points dans les listes L1 et L2 (graph stats) :

Après ça, un simple appui sur "graph" permet d’avoir ce dessin :

Recherche de loi

La somme de 12 variables aléatoires uniformes suit approximativement une loi normale de paramètres 6 et 1. La visualisation se fait aisément avec un histogramme. On commence donc par créer une liste L1 de 100 sommes de 12 nombres aléatoires, par un programme :

Puis on positionne un affichage statistique en mode "histogramme" :

Le fenêtrage est important ici, parce que les largeurs des rectangles sont conditionnés par le paramètre Xgrad :

L’histogramme a bien une forme de cloche :

Cette partie de l’activité est si rapide que l’on a le temps de chercher pour quelles valeurs des paramètres, la loi gaussienne approche bien l’histogramme ; expérimentalement, on trouve 6, 1 et 400 :

La coïncidence est plutôt bonne :

Pour tester un peu plus sérieusement la normalité de cette variable aléatoire, voir l’onglet suivant.

Test de normalité

Pour savoir si une variable aléatoire est vraiment normale, la Ti effectue un test visuel basé sur la droite de Henry : On trace un nuage de points et on regarde s’ils ont l’air alignés.

On commence donc par créer, comme dans l’onglet précédent, une liste L1 de 100 sommes de 12 nombres aléatoires, par un programme :

Puis on configure un affichage statistiques en mode "droite de Henry" :

(et les points gagnent à être dessinés petits parce qu’ils sont nombreux).

Ensuite, puisque c’est un test graphique, il convient de paramétrer le graphique :

En appuyant sur "Graph", on constate que les problèmes arrivent surtout aux valeurs extrêmes :

Mais ceci n’est pas très étonnant, puisque l’approximation est bornée (entre 0 et 12), contrairement à la loi normale de paramètres 6 et 1.

Contribution de Guillaume Connan

Stéphan Manganelli fait une infidélité à LARP

En effet, cette fois-ci, il a choisi GeoPlan pour parler des couples moyenne-écart type et médiane-écart absolu moyen :

PDF - 479.5 ko

Contribution de Pierre-Marc Mazat

Comme les lycanthropes se transforment une fois par mois, Pierre-Marc se lance tous les 4 ans (à l’occasion des coupes du monde) dans des études théoriques sur le ballon de foot. Ainsi, il y a 4 ans, il avait créé un CaRSCript de construction de patron de l’icosaèdre tronqué. Aujourd’hui, il joue les prolongations avec une étude statistique sur les arêtes choisies au cours de la construction du patron. Un programme en Java (langage) se charge de produire les numéros d’arêtes choisies, et d’enregistrer les entiers en question dans des fichiers "texte" qu’il est ensuite aisé d’analyser avec des outils adéquats (tableur par exemple).

le fichier Java

  1. import java.io.BufferedReader;
  2. import java.io.File;
  3. import java.io.FileNotFoundException;
  4. import java.io.FileReader;
  5. import java.io.IOException;
  6. import java.util.ArrayList;
  7.  
  8. /**
  9.  *
  10.  * @author Pierre-Marc
  11.  */
  12. public class Statistiques_icosaedre_tronque {
  13.  
  14. /**
  15.   * @param args the command line arguments
  16.   */
  17. public static void main(String[] args) {
  18. File[] f;
  19. ArrayList<String> nets = new ArrayList<>();
  20. String line;
  21. int N, i;
  22. String[] path;
  23. int[] Face = new int[] {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
  24.  
  25. f = new File(System.getProperty("user.dir")).listFiles();
  26.  
  27. for(File file : f) {
  28. if(file.toString().endsWith("random_nets.txt")) {
  29.  
  30. try {
  31. FileReader fr = new FileReader(file.toString());
  32.  
  33. while(!(line = in.readLine()).equals("")) {
  34. nets.add(line);
  35. }
  36. } catch(FileNotFoundException ex) {
  37. System.err.print("Erreur : "+ex);
  38. } catch (IOException ex) {
  39. System.err.print("Erreur : "+ex);
  40. }
  41. }
  42. }
  43.  
  44. N = nets.size();
  45. System.out.println("Taille de l'échantillon = "+N);
  46.  
  47. for(String net : nets) {
  48. path = net.split(",");
  49.  
  50. for(String s : path) {
  51. Face[Integer.parseInt(s)] ++;
  52. }
  53. }
  54.  
  55. for(i=0; i<32; i++) {
  56. System.out.println(Face[i]/(62.0*N));
  57. }
  58. }
  59. }

Télécharger

Il est d’ailleurs possible de télécharger ce source simplement en cliquant sur le lien idoine ci-dessus. Seulement l’extension est par défaut .txt au lieu de .java. À moins de vouloir renommer ce fichier, on peut donc le télécharger tel quel, ci-dessous :

Zip - 889 octets
le fichier Java
... mais zippé pour des raisons de sécurité
Généralités stats sur 10 000 patrons stats sur 50 000 patrons
PDF - 278.5 ko
l’article en pdf
Zip - 382.6 ko
données sur 10000 patrons
Zip - 1.9 Mo
données sur 50000 patrons
Excel - 21.8 ko
données Excel
PDF - 183.3 ko
diagramme en bâtons sur 10000 patrons
PDF - 183.1 ko
diagramme en bâtons sur 50000 patrons

Contribution d’Hubert Raymondaud : Le jeu des trois distributions

(avec Brigitte Chaput)

Dans la brochure APMEP n°167 (septembre 2007), j’avais proposé cette activité avec comme outil un tableur bien connu.

Les versions actuelles des tableurs ne permettant plus de réaliser cette activité, Brigitte Chaput a eu l’idée de réaliser l’outil avec Geogebra.

Trois séries statistiques sont présentées avec leur représentation graphique sous formes de points sur une droite et de boites à pattes.
Moyenne et écart type sont visualisés.

L’activité consiste à modifier les valeurs des séries (en modifiant la position des points sur les droites avec la souris) afin d’obtenir, par exemple, la même moyenne et le même écart type (au centième près) mais trois séries différentes.

Trois fichiers Geogebra sont proposés pour travailler sur différents indicateurs de dispersion, écart type, étendue, écart inter-quartile.

La construction de l’outil Geogebra est expliquée dans le document "ConstructionDuJeuDesTroisDistributions.doc" ci-dessous.

À vous de jouer ... Bonne chance ...

construction de l’outil ggt l’article
Word - 25 ko
PDF - 918.7 ko

Les trois versions du jeu, au format ggb :

écart-type interquartile étendue
geogebra - 10.1 ko
geogebra - 10.3 ko
geogebra - 10.3 ko

notes

[1Malgré cela, la fonction "médiane" est boguée, du moins si on utilise le navigateur Google Chrome. En fait, c’est celui-ci qui est bogué dès lors qu’il s’agit de trier des nombres. Pour plus de détails, voir ici.

Documents associés à l'article
  alcoffeethmique   |   (Zip - 390.7 ko) outil d’algorithmique niveau lycée, basé sur CoffeeScript
Réagir à cet article
Vous souhaitez compléter cet article pour un numéro futur, réagir à son contenu, demander des précisions à l'auteur ou au comité de rédaction...
À lire aussi ici
MathémaTICE est un projet
en collaboration avec
Suivre la vie du site Flux RSS 2.0  |  Espace de rédaction  |  Nous contacter  |  Site réalisé avec: SPIP  |  N° ISSN 2109-9197