Histogramme et scilab (Page 1) / Programmation / Forum de mathématiques - Bibm@th.net

Forum de mathématiques - Bibm@th.net

Bienvenue dans les forums du site BibM@th, des forums où on dit Bonjour (Bonsoir), Merci, S'il vous plaît...

Vous n'êtes pas identifié(e).

#1 16-04-2017 10:29:48

bibmgb
Nouveau membre
Inscription : 16-04-2017
Messages : 1

Histogramme et scilab

Bonjour,

Avec scilab, j'ai simulé la somme de 40 v.a. i.i.d. de loi uniforme sur [0;1]. J'ai réalisé 1000 simulations et dessiné un histogramme dont les classes ont pour amplitude 1. J'ai voulu diminuer la taille de l'amplitude des classes et passer à 0.5. Le problème est que histplot a pris pour hauteur de rectangle la fréquence de la classe, alors que je voudrais qu'il prenne 2 fois la fréquence de la classe, pour m'approcher de la densité de la loi normale. Je vous mets mon code ci-dessous :

:

  1. k=1000;
  2. q=40;
  3.  m=zeros(1,k);
  4. for i=1:k
  5.     L=zeros(1,q);
  6.     for j=1:q
  7.     L(j)=rand();
  8.     end
  9. L=sum(L);
  10. m(i)=L;
  11. end
  12.  clf();
  13.  x=zeros(1,q);
  14.  for i=1:q+1
  15.      x(i)=i-1;
  16.  end
  17.  histplot(x,m,style=2)
  18.  // Calcul de la moyenne
  19.  
  20.  mu=sum(m)/k;
  21.  
  22.  // Calcul de la variance
  23.  
  24.  va=sum((m-mu).^2)/k;
  25.  sigma=sqrt(va);
  26.  
  27.  // Représentation de la loi normale
  28.  
  29.  xbis=0:0.1:q;
  30.  y=zeros(1,q*10+1);
  31.  for j=1:q*10+1
  32.      y(j)=1/(sigma*sqrt(2*%pi))*exp(-(xbis(j)-mu)^2/(2*va));
  33.  end
  34.  plot(xbis,y)
  35.  a=gca()
  36.  a.grid=[1 1]
  37.  a.thickness=1
  38.  x=0:0.5:40;
  39.  histplot(x,m,style=2)

Savez-vous comment remédier à ce problème ?
Merci pour votre contribution.

Hors ligne

#2 04-05-2017 08:47:05

PTRK
Membre
Inscription : 14-12-2016
Messages : 63

Re : Histogramme et scilab

Bien trot tard, mais bon,

Je ne comprend pas ton problème: si tu fournis un jeu de donnée $X = (x_0,...x_k)$ à classer dans $Nmax$ classes ($c_0<c_1 < c_2 < ...<c _{Nmax}$), alors histplot représente pour tout $t \in C_i=]c_i,c_{i+1}[$ , $h(t) = \#(x_n \in C_i, \forall x_n \in X)$ tel que $\int_{c_0}^{c_{Nmax}} h(t)dt = 1.$ Et je n'ai pas compris ton histoire de hauteur de rectangle.

Pour ma part, il me semble bien approcher la loi $\mathcal{N}(\mu,\sigma^2)$. Dans le graphe ci dessus, amplitude de classe = $ | x_i-x_{i-1} |$

loi normale

: Scilab

  1. clc
  2. clear
  3. xdel(winsid())
  4.  
  5. k=1000;
  6. q=40;
  7.  
  8. m=rand(q,k);
  9. m=sum(m,1);
  10.  
  11. // Calcul de la moyenne
  12. mu=mean(m);
  13.  
  14. // Calcul de la variance
  15. sigma=stdev(m);
  16.  
  17. // Représentation de la loi normale
  18. xbis=0:0.1:q;
  19. y = 1 ./ (sigma*sqrt(2*%pi))*exp(-((xbis-mu)/sigma).^2/2);
  20.  
  21. // Amplitude de classes
  22. pas = [2,1,0.5,q/k] // q/k : 1 classe par tirage
  23.  
  24. // nombre lignes et collones subplot
  25. sp = ceil(sqrt(length(pas))) //lignes
  26. sq = ceil(length(pas)/sp) //colonnes
  27.  
  28. figure
  29. f=gcf();
  30. f.background=-2
  31.  
  32. for i=1:size(pas,'*')
  33.     subplot(sp,sq,i)
  34.    
  35.     x=0:pas(i):q;
  36.     histplot(x,m)
  37.     plot(xbis,y,'r')
  38.    
  39.     title(sprintf('Amplitude de classe: %f',pas(i)))
  40.     legend('Simulation','Loi Normale')
  41.    
  42.     a=gca()
  43.     a.grid=[1,1] // affichage d'un grille sur les abscisses et ordonnées
  44.     a.grid_style=[9 9] // style pointillets legers
  45. end

Dernière modification par PTRK (05-05-2017 12:55:38)

Hors ligne

Réponse rapide

Veuillez composer votre message et l'envoyer

Les questions suivantes sont faites pour éviter le spam. Si vous voulez ne plus les avoir, inscrivez-vous!

Quel est le résultat de 91+35?

Quel est le 1 ième chiffre de 5003898?

Pied de page des forums

[ Générées en 0.098 secondes, 10 requêtes exécutées - Utilisation de la mémoire : 2.46 MiB (pic d'utilisation : 2.58 MiB) ]