Bibm@th

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
Membre
Inscription : 16-04-2017
Messages : 25

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 :


k=1000;
q=40;
 m=zeros(1,k);
for i=1:k
    L=zeros(1,q);
    for j=1:q
    L(j)=rand();
    end
L=sum(L);
m(i)=L;
end
 clf();
 x=zeros(1,q);
 for i=1:q+1
     x(i)=i-1;
 end
 histplot(x,m,style=2)
 // Calcul de la moyenne
 
 mu=sum(m)/k;
 
 // Calcul de la variance
 
 va=sum((m-mu).^2)/k;
 sigma=sqrt(va);
 
 // Représentation de la loi normale
 
 xbis=0:0.1:q;
 y=zeros(1,q*10+1);
 for j=1:q*10+1
     y(j)=1/(sigma*sqrt(2*%pi))*exp(-(xbis(j)-mu)^2/(2*va));
 end
 plot(xbis,y)
 a=gca()
 a.grid=[1 1]
 a.thickness=1
 x=0:0.5:40;
 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 : 101

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

clc
clear
xdel(winsid())

k=1000;
q=40;

m=rand(q,k);
m=sum(m,1);

// Calcul de la moyenne
mu=mean(m);

// Calcul de la variance
sigma=stdev(m);

// Représentation de la loi normale
xbis=0:0.1:q;
y = 1 ./ (sigma*sqrt(2*scilab.org/product/dic-mat-sci/M2SCI_doc.htm">%pi))*exp(-((xbis-mu)/sigma).^2/2);

// Amplitude de classes
pas = [2,1,0.5,q/k] // q/k : 1 classe par tirage

// nombre lignes et collones subplot
sp = ceil(sqrt(length(pas))) //lignes
sq = ceil(length(pas)/sp) //colonnes

figure
f=gcf();
f.background=-2

scilab.org/product/dic-mat-sci/M2SCI_doc.htm">for i=1:size(pas,'*')
    subplot(sp,sq,i)
   
    x=0:pas(i):q;
    histplot(x,m)
    plot(xbis,y,'r')
   
    title(sprintf('Amplitude de classe: %f',pas(i)))
    legend('Simulation','Loi Normale')
   
    a=gca()
    a.grid=[1,1] // affichage d'un grille sur les abscisses et ordonnées
    a.grid_style=[9 9] // style pointillets legers
scilab.org/product/dic-mat-sci/M2SCI_doc.htm">end

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

Hors ligne

Pied de page des forums