Statistiques meteo en langage C

1 ) Rappel sur le langage C

2 ) Répartition de molécules dans le ciel

A ) Création d'un fichier de données

B ) Divers Calculs

a ) Moyenne ( notée M )

b ) Variance ( notée s² )

c ) Ecart-type ( noté s )

d ) Programme approprié

 

 

1 ) Rappel sur le langage C

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 :

 

B ) Divers Calculs

a ) Moyenne ( notée M )

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 .

 

b ) Variance ( notée s² )

s² = ( 1/N )*S( i à N ) ( Xi - M )²

 

c ) Ecart-type ( noté s )

Il suffit d'appliquer la racine carrée à la variance .

 

d ) Programme approprié

#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*/

 
Positionnement et Statistiques Gratuites  
Accueil   Livre d'or   Forum