Statistiques meteo en langage C
2 ) Répartition de molécules dans le ciel
A ) Création d'un fichier de données
B ) Divers Calculs
b ) Variance ( notée s² )
c ) Ecart-type ( noté s )
Le langage C est un langage dit "compilé" . Il représente une application de quelques modules dans le but de permettre la réalisation .
Chaque module contient un texte de programme ( programme source ) qui est traduit en langage binaire ( programme objet ) par un compilateur pour créer un module objet .
Un module binaire est alors crée regroupant l'ensemble des modules objets donnant un programme exécutable .
2 ) Répartition de molécules dans le ciel
A ) Création d'un fichier de données
Il est possible d'écrire le programme suivant :
#include<stdio.h>
#include<math.h>
void main(void)
{
char nomfich[21];
short int i,np;
float x,y;
FILE *sortie;
printf("nom de fichier a creer");
scanf("%20s",nomfich);
sortie=fopen(nomfich,"wt");
printf("nombre de points:");
scanf("%d",&np);
printf("\n%d",np);
for(x=0,i=1;i<=np;i++)
{x+=0.1;
y=exp(-0.5*(x-5)*(x-5))+0.00001*rand()/100000;
printf("\n%f\t%f",x,y);
}
fclose(sortie);
system("pause");
}
D'où le graphe associé au programme ci-dessus :
M = ( 1/N )*S( i à N ) n(j) X(j)
N : somme des coefficients n(j) .
n(j) : coefficient associé à X(j) .
X(j) : variable aléatoire .
Exemple :
La température à Paris a été à 5 reprises ( n1 = 5 ) de 25°C ( X1 = 25 = et à 7 reprises ( n2 = 7 ) de 23°C ( X2 = 23 ) .
D'où M = [ 1 / ( n1 + n2 ) ] [ ( 5*25 ) + ( 7*23 ) ] = 23,83 °C .
s² = ( 1/N )*S( i à N ) ( Xi - M )²
Il suffit d'appliquer la racine carrée à la variance .
#include <stdio.h>
#define NM 100
#define h 0.1
void main(void)
{char nomfich[21];
short int i,j,k;
float x,y,z,ecart_type,t[NM],tab[NM];
FILE *entree;
printf("nom du fichier a lire:");
scanf("%20s",nomfich);
entree=fopen(nomfich,"rt");
i=0;
while(fscanf(entree,"%f%f",&x,&y),i++,t[i-1]=y,!feof(entree))
printf("\n%f\t",t[i-1]);
float moyenne(float t[]);
float m;
m=moyenne(t);
printf("la valeur de la moyenne est:%f\n",moyenne(t));
/*calcul de la variance*/
float var(float t[]);
float v;
v=var(t);
printf("la valeur de la variance est:%f\n",var(t));
/*calcul de l'ecart-type*/
ecart_type=sqrt(var(t));
printf("la valeur de l ecart type est:%f\n",ecart_type);
/*calcul de l'energie*/
double energie(float tab[],int dim,double pas);
double l;
l=energie(t,NM,h);
printf("la valeur de l energie est:%f\n",energie(t,NM,h));
fclose(entree);
system("pause");
}
/*calcul de la moyenne*/
float moyenne(float tab[])
{
float som,moy;
int i;
for(i=0,som=0;i<NM;++i)
som+=tab[i];
moy=som/NM;
return moy;
}
/*calcul de la variance*/
float var(float tab[])
{
float var,variance;
int j;
for(j=0,var=0;j<=NM;++j)
var+=(tab[j]-moyenne(tab))*(tab[j]-moyenne(tab));
variance=var/NM;
return variance;
}
/*calcul de l energie*/
double energie(float tab[],int dim,double pas)
{int k;
double energie=0.;
for(k=1;k<dim-1;++k)energie+=tab[k];
energie*=pas;
energie+=tab[0]+tab[dim-1];
return energie;
}
/*la valeur de la moyenne est:0.368093
la valeur de la variance est :0.9252612
la valeur de l ecart type est :0.961905
la valeur de l energie est :3.208695*/