####################################################################################################################################### # # # G E N E R A T I O N D ' I M A G E S R E L A T V E S A L ' E N T R O P I E D E B O L T Z M A N N : # # # # # # Author of '$xiirv/.BOLT.11.1.$U' : # # # # Jean-Francois COLONNA (LACTAMME, 20210819121525). # # # ####################################################################################################################################### $Z setParam _____Format "Suq" $Z # Parametre introduit le 20210821180923... # $Z setParam _____Dimension 64 $Z setParam _____Graine 1947 $Z setParam _____NPile $GRIS_2 $Z setParam _____NFace $GRIS_8 $Z setParam _____NGrille $GRIS_4 $Z setParam _____NEntropie $GRIS_6 $Z setParam _____DemiPave 1 $Z # Parametre introduit le 20210821180923... # $Z @ PaRiTe = $_____Dimension % 2 $Z if ($PaRiTe != 0) then $Z # Verification introduite le 20210824105710... # #20220105113156____:$Z ATTENTION "Il est preferable que $K_QS$K_DOLLAR""_____Dimension$K_QS soit paire \\c" # $Z ATTENTION "Il est preferable que $K_QS$K_DOLLAR""_____Dimension$K_QS soit paire \c" $Z echo "afin que l'entropie n'ait qu'un seul maximum." $Z else $Z endif $Z set format_FoRmAt=`eval echo "$K_DOLLAR""format_""$_____Format"` $Z set format_dimXFoRmAt=`eval echo "$K_DOLLAR""dimX""$_____Format"` $Z set format_dimYFoRmAt=`eval echo "$K_DOLLAR""dimY""$_____Format"` $Z # Introduit le 20210821102347 pour ameliorer le parametrage... # $Z FilSTmpB LiStEPoInTs $Z set CoOrDoNnEe_Xmin=`calcul $Xmin+1` $Z # Afin de rendre la barre X=0 implicite puisqu'elle est vide... # $Z set CoOrDoNnEe_Xmax=`calcul $Xmin+$_____Dimension` $Z set CoOrDoNnEe_Ymin=`calcul $Ymin` $Z set CoOrDoNnEe_Ymax=`calcul $Ymin+$_____Dimension-1` $Z set CoOrDoNnEe_X=$CoOrDoNnEe_Xmin $Z set GrAiNe=$_____Graine $Z while ($CoOrDoNnEe_X <= $CoOrDoNnEe_Xmax) $Z $xci/valeurs_inte$X premiere=$CoOrDoNnEe_Xmin derniere=$CoOrDoNnEe_X \ $Z vD=$CoOrDoNnEe_X vA=$CoOrDoNnEe_X \ $Z lineaire=VRAI \ $Z entiers=FAUX \ $Z >>! $LiStEPoInTs$COORD_X $Z # On notera le "entiers=FAUX" ('v $xci/valeurs_inte$K entier=FAUX' a ce propos...). # $Z $xci/valeurs_alea$X premiere=$CoOrDoNnEe_Xmin derniere=$CoOrDoNnEe_X \ $Z inferieur=$CoOrDoNnEe_Ymin superieur=$CoOrDoNnEe_Ymax \ $Z entiers=VRAI sans_collisions=VRAI message_borne_superieure_entiere=FAUX \ $Z graine=$GrAiNe \ $Z >>! $LiStEPoInTs$COORD_Y $Z # Ainsi, on genere 65 barres verticales contenant de gauche a droite {0,1,...,63,64} points, # $Z # la barre X=0 etant implicite puisque l'on commence a '$Xmin+1' et ce parce que cette barre # $Z # est vide... # $Z @ GrAiNe = $GrAiNe + 1 $Z @ CoOrDoNnEe_X = $CoOrDoNnEe_X + 1 $Z end $Z set NPoInTsX=`$CA $LiStEPoInTs$COORD_X | $WCl` $Z set NPoInTsY=`$CA $LiStEPoInTs$COORD_Y | $WCl` $Z set NPoInTs=`$xcg/MIN2.01$X x=$NPoInTsX y=$NPoInTsY` $Z $xrv/store_image$X \ $Z A=$_____NPile \ $Z ne=$NPoInTs \ $Z Xdenormalisees=VRAI \ $Z LISTE_X=$LiStEPoInTs$COORD_X \ $Z Ydenormalisees=VRAI \ $Z LISTE_Y=$LiStEPoInTs$COORD_Y \ $Z Ndenormalises=VRAI \ $Z LISTE_NIVEAU=$_____NFace \ $Z R=$_____ImageR \ $Z $format_FoRmAt $Z $xci/format.01$X \ $Z A=$_____ImageR \ $Z $format_FoRmAt \ $Z mode=0 \ $Z R=$_____ImageR \ $Z $formatIR $Z $xci/grille.01$X \ $Z A=$_____ImageR \ $Z denormalisees=VRAI \ $Z mx=`calculINS $dimX/$format_dimXFoRmAt` \ $Z X_increment_gauche=-1 \ $Z my=`calculINS $dimY/$format_dimYFoRmAt` \ $Z Y_increment_bas=-1 \ $Z niveau=$_____NGrille \ $Z R=$_____ImageR \ $Z $formatI $Z # Mise en place de la grille... # $Z set EfFaCeMeNt_X=`calcul ($format_dimXFoRmAt-($_____Dimension+1))/$format_dimXFoRmAt` $Z set EfFaCeMeNt_Y=`calcul ($format_dimXFoRmAt-($_____Dimension+0))/$format_dimYFoRmAt` $Z set CeNtRaGe_X=`calcul $EfFaCeMeNt_X/2` $Z $xci/scroll$X \ $Z A=$_____ImageR \ $Z toreX=FAUX trX=+$EfFaCeMeNt_X \ $Z toreY=FAUX trY=+$EfFaCeMeNt_Y \ $Z $formatI | \ $Z $xci/scroll$X \ $Z toreX=FAUX trX=-$CeNtRaGe_X \ $Z toreY=FAUX trY=`calcul -$EfFaCeMeNt_Y+0.01` \ $Z R=$_____ImageR \ $Z $formatI $Z # Positionnement de la grille remplie... # $Z FilSTmpB LiStEEnTrOpIe #20210821103832____:$Z $BC -l $xtb/combinaisons.01 | \ # #20210821103832____:$Z $GRE " entropie=" | \ # #20210821103832____:$Z $AW ' { print $2 } ' | \ # #20210821103832____:$Z $SE -e "s/^.*=//" | \ # #20210821103832____:$Z $xrv/normalise.01$X \ # #20210821103832____:$Z ne=0 \ # #20210821103832____:$Z fichier== \ # #20210821103832____:$Z minimum=0.01 \ # #20210821103832____:$Z maximum=0.46 \ # #20210821103832____:$Z > $LiStEEnTrOpIe$COORD_Y # $Z # Recuperation de l'entropie (en fait le logarithme en faisant egale a 1 la constante de # $Z # Boltzmann) "renormalisee" definissant les ordonnees... # #20210821120214____:$Z $BC -l $xtb/combinaisons.01 | \ # #20210821120214____:$Z $GRE " entropie=" | \ # #20210821120214____:$Z $AW ' { print $2 } ' | \ # #20210821120214____:$Z $SE -e "s/^.*=//" | \ # #20210821120214____:$Z $xrv/normalise.01$X \ # #20210821120214____:$Z ne=0 \ # #20210821120214____:$Z fichier== \ # #20210821120214____:$Z minimum=0.01 \ # #20210821120214____:$Z maximum=`calcul $EfFaCeMeNt_Y-0.04` \ # #20210821120214____:$Z > $LiStEEnTrOpIe$COORD_Y # $Z FilSTmpB FArGuMeNtS $Z echo "n=$_____Dimension" \ $Z >> $FArGuMeNtS #20210826113114____:$Z set MiNiMuM_Y=0.01 # $Z # Introduit le 20210826110946... # #20210826110946____:$Z $BC -l $FArGuMeNtS $xtb/EntropieConfiguration.01 | \ # #20210826110946____:$Z $SE -e "s/^.*=//" | \ # #20210826110946____:$Z $xrv/normalise.01$X \ # #20210826110946____:$Z ne=0 \ # #20210826110946____:$Z fichier== \ # #20210826110946____:$Z minimum=0.01 \ # #20210826110946____:$Z maximum=`calcul $EfFaCeMeNt_Y-0.04` \ # #20210826110946____:$Z > $LiStEEnTrOpIe$COORD_Y # #20210826113114____:$Z $BC -l $FArGuMeNtS $xtb/EntropieConfiguration.01 | \ # #20210826113114____:$Z $SE -e "s/^.*=//" | \ # #20210826113114____:$Z $xrv/normalise.01$X \ # #20210826113114____:$Z ne=0 \ # #20210826113114____:$Z fichier== \ # #20210826113114____:$Z minimum=$MiNiMuM_Y \ # #20210826113114____:$Z maximum=`calcul $EfFaCeMeNt_Y-0.04` \ # #20210826113114____:$Z > $LiStEEnTrOpIe$COORD_Y # #20210826113114____:$Z $BC -l $FArGuMeNtS $xtb/EntropieConfiguration.01 | \ # #20210826113114____:$Z $SE -e "s/^.*=//" | \ # #20210826113114____:$Z $xrv/normalise.01$X \ # #20210826113114____:$Z ne=0 \ # #20210826113114____:$Z fichier== \ # #20210826113114____:$Z minimum=0 \ # #20210826113114____:$Z maximum=`calcul $EfFaCeMeNt_Y-0.04` \ # #20210826113114____:$Z > $LiStEEnTrOpIe$COORD_Y # $Z $BC -l $FArGuMeNtS $xtb/EntropieConfiguration.01 | \ $Z $SE -e "s/^.*=//" | \ $Z $xrv/normalise.01$X \ $Z ne=0 \ $Z fichier== \ $Z minimum=0 \ $Z maximum=`calcul $EfFaCeMeNt_Y-0.035` \ $Z > $LiStEEnTrOpIe$COORD_Y $Z # Recuperation de l'entropie (en fait le logarithme en faisant egale a 1 la constante de # $Z # Boltzmann) "renormalisee" definissant les ordonnees... # $Z # # $Z # Le parametre numerique '0.04' est arbitraire et est destine a eviter que l'histogramme # $Z # touche le sommet de l'image (etant strictement positif...). # $Z FilSTmpE FArGuMeNtS $Z set NPoInTsY=`$CA $LiStEEnTrOpIe$COORD_Y | $WCl` $Z set FaCtEuR=`calcul 0.98*($dimX/$format_dimXFoRmAt)` $Z set CoOrDoNnEe_Xmin=`calcul $FaCtEuR*$Xmin` $Z set CoOrDoNnEe_Xmax=`calcul $FaCtEuR*$CoOrDoNnEe_Xmax` #20210821103832____:$Z echo $Xmin | \ # #20210821103832____:$Z $CA - $LiStEPoInTs$COORD_X | \ # #20210821103832____:$Z $SE -e "s/^[^$Alphabet_0_9]//" | \ # #20210821103832____:$Z $SOR -u -n | \ # #20210821103832____:$Z $xrv/MUL2.11$X ne=0 \ # #20210821103832____:$Z fichier1== \ # #20210821103832____:$Z fichier2=`calcul $dimX/$format_dimXFoRmAt` \ # #20210821103832____:$Z formater=VRAI entiers=VRAI | \ # #20210821103832____:$Z $xrv/ADD2.11$X ne=0 \ # #20210821103832____:$Z fichier1== \ # #20210821103832____:$Z fichier2=`calculINS ($dimX*$CeNtRaGe_X)-(($dimX/$format_dimXFoRmAt)/2)-1` \ # #20210821103832____:$Z formater=VRAI entiers=VRAI \ # #20210821103832____:$Z > $LiStEEnTrOpIe$COORD_X # $Z echo $Xmin | \ $Z $CA - $LiStEPoInTs$COORD_X | \ $Z $SE -e "s/^[^$Alphabet_0_9]//" | \ $Z $SOR -u -n | \ $Z $xrv/MUL2.11$X ne=0 \ $Z fichier1== \ $Z fichier2=`calcul $dimX/$format_dimXFoRmAt` \ $Z formater=VRAI entiers=VRAI | \ $Z $xrv/ADD2.11$X ne=0 \ $Z fichier1== \ $Z fichier2=`calculINS ($dimX*$CeNtRaGe_X)+(($dimX/$format_dimXFoRmAt)/2)-1` \ $Z formater=VRAI entiers=VRAI \ $Z > $LiStEEnTrOpIe$COORD_X $Z # Generation des abscisses sans oublier d'introduire en tete la colonne X=0 (=$Xmin) # $Z # implicite... # $Z FilSTmpB HiStOgRaMmE $Z set NPoInTsX=`$CA $LiStEEnTrOpIe$COORD_X | $WCl` $Z set NPoInTs=`$xcg/MIN2.01$X x=$NPoInTsX y=$NPoInTsY` #20210826110946____:$Z $xrv/store_image$X \ # #20210826110946____:$Z ne=$NPoInTs \ # #20210826110946____:$Z Xdenormalisees=VRAI \ # #20210826110946____:$Z LISTE_X=$LiStEEnTrOpIe$COORD_X \ # #20210826110946____:$Z Ydenormalisees=FAUX \ # #20210826110946____:$Z LISTE_Y=$LiStEEnTrOpIe$COORD_Y \ # #20210826110946____:$Z demi_pave_XG=$_____DemiPave demi_pave_XD=$_____DemiPave \ # #20210826110946____:$Z demi_pave_YG=$_____DemiPave demi_pave_YD=$_____DemiPave \ # #20210826110946____:$Z epaississement_carre=VRAI \ # #20210826110946____:$Z Ndenormalises=VRAI \ # #20210826110946____:$Z LISTE_NIVEAU=$_____NEntropie \ # #20210826110946____:$Z histogramme=VRAI histogramme_vertical=VRAI \ # #20210826110946____:$Z R=$HiStOgRaMmE \ # #20210826110946____:$Z $formatI # #20210826113114____:$Z set NMiNiMuM_Y=`$xci/coordonnees$X Yf=$MiNiMuM_Y denormaliser=VRAI eX=FAUX eY=VRAI eZ=FAUX eN=FAUX` # $Z set NMiNiMuM_Y=$_____DemiPave $Z # Donner cette valeur permet aux points 'log(1)=0' d'etre malgre tout visualises par un # $Z # trait d'epaisseur unite (puisque la dimension d'un pave est '(2*$_____DemiPave+1'... # $Z $xrv/store_image$X \ $Z ne=$NPoInTs \ $Z Xdenormalisees=VRAI \ $Z LISTE_X=$LiStEEnTrOpIe$COORD_X \ $Z Ydenormalisees=FAUX \ $Z LISTE_Y=$LiStEEnTrOpIe$COORD_Y \ $Z demi_pave_XG=$_____DemiPave demi_pave_XD=$_____DemiPave \ $Z demi_pave_YG=$_____DemiPave demi_pave_YD=$_____DemiPave \ $Z epaississement_carre=VRAI \ $Z Ndenormalises=VRAI \ $Z LISTE_NIVEAU=$_____NEntropie \ $Z histogramme=VRAI histogramme_vertical=VRAI Ymin_histogramme_vertical=$NMiNiMuM_Y \ $Z R=$HiStOgRaMmE \ $Z $formatI $Z # Generation de l'histogramme de l'entropie... # #20210821103832____:$Z $xci/scroll$X \ # #20210821103832____:$Z A=$HiStOgRaMmE \ # #20210821103832____:$Z toreX=FAUX trX=0 \ # #20210821103832____:$Z toreY=FAUX trY=0.520 \ # #20210821103832____:$Z $formatI | \ # #20210821103832____:$Z $xci/cache$X \ # #20210821103832____:$Z A=$_____ImageR \ # #20210821103832____:$Z R=$_____ImageR \ # #20210821103832____:$Z $formatI # $Z $xci/scroll$X \ $Z A=$HiStOgRaMmE \ $Z toreX=FAUX trX=0 \ $Z toreY=FAUX trY=`calcul (1-$EfFaCeMeNt_Y)+0.020` \ $Z $formatI | \ $Z $xci/cache$X \ $Z A=$_____ImageR \ $Z R=$_____ImageR \ $Z $formatI $Z # Mise en place de l'histogramme de l'entropie au-dessus de la grille... # $Z FilSTmpE HiStOgRaMmE $Z FilSTmpE LiStEEnTrOpIe $Z FilSTmpE LiStEPoInTs