> restart:
TP 06
Lecture de fichiers et
loi lognormale
Rappel de consignes
(1) titre en "Times New Roman", corps 36,
NOM Prénom - groupe
TP06 - date
(2) sauvegarder "souvent"
(3) imprimer : paginer (Format/Page_Number)
puis File/Preview.
enfin imprimer en deux colonnes
>
On charge quelques bibliothèques
Vérifier les numéros de version des bibliothèmes disponibles
>
with(pldx); # il faut la version 27
ever_loaded;
>
with(simul); # il faut la version 19
ever_loaded;
> xmacro();
Création du fichier
>
Lecture du fichier
Télécharger le fichier "www.douillet.info/~douillet/maotp/maotp07/dat_maotp07.txt"
Déclarer le nom de la copie locale du fichier
> fich:= "F:/docs/Ensait/maotp/maotp06/dat_maotp06.txt";
On lit le premier nombre
>
hdl:= fopen(fich, READ);
fscanf(hdl,"%a");
fclose(fich);
On lit tous les nombres
>
lire:= table(): tmp:= 'tmp':
hdl:= fopen(fich, READ);
for i while tmp <> [ ] do
tmp:= fscanf(hdl,"%a");
lire[i]:= op (tmp);
od:
fclose(fich); n:= i-2 ; i:='i':
On en fait une liste
> li:= [seq(lire[j], j=1..n)]:
>
Paramètres de dispersion
>
m:= moy(li);
> s, s2:= sqrt(var(li)), var(li);
>
vals:= xab(li);
nbr(li);
>
Visualisation
>
xima:=proc(pl); op(1,pl) : convert(%,list): map(op,%):
map2(op,2,%): max(op(%)): end:
Histogramme automatique
> xhisto(li, area=1); pl1:= %:
>
yx:=xima(pl1) ;
plot([[m,y,y=0..yx], [m-s,y,y=0..yx], [m+s,y,y=0..yx]], color=red, linestyle=[24,8,8]); pl2:= %:
> display(pl1, pl2);
>
Histogramme avec choix des classes
> macro(talto = stats[transform, tallyinto] );
>
dx:= 150; kx:=30; seq(k*dx..k*dx+dx, k=0..kx), dx*(kx+1).. ceil(rhs(vals)):
les_interv:= [%];
> ta2:= talto(li, les_interv) ;
>
pl3:=xhisto(ta2):
yx:=xima(pl3):
pl4:= plot([[m,y,y=0..yx], [m-s,y,y=0..yx], [m+s,y,y=0..yx]], color=red, linestyle=[24,8,8]):
> display( pl3, pl4);
>
M:='M': K:='K': m=M*sqrt(K), (s/m)^2 = K-1; solve({%});
assign(%);
> M, K;
> pl5:= plot(norlaw(ln(M), sqrt(ln(K)), ln(x))/x, x=vals, color=blue, linestyle=16):
> display(pl3,pl4,pl5);
>
Loi "en masse"
> ta2;
>
recode:= proc(item) global m; local a,b, c;
a,b,c:= op(op(1,item)), op(2, item);
Weight(a..b, c*(a+b)/2/m)
end;
> ta3:= map(recode, ta2);
> nbr(ta3);
> m_:= moy(ta3)*1.; v_:= var(ta3)*1.; s_:= sqrt(%);
>
pl23:=xhisto(ta3, area=1):
yx:=xima(pl23) :
pl24:= plot([[m_,y,y=0..yx], [m_-s_,y,y=0..yx], [m_+s_,y,y=0..yx]], color=red, linestyle=[24,8,8]):
> pl25:= plot(norlaw(ln(M*K), sqrt(ln(K)), ln(x))/x, x=vals, color=blue, linestyle=16):
> display( pl23, pl24,pl25);
> m_; (s/m)^2+1; m*%;
>
>
>