LSM 3.053 Informatique : TP n°4

Transcription

LSM 3.053 Informatique : TP n°4
LSM 3.053
Informatique : TP n°4
Exercice 1 : Régression linéaire sur des données provenant d'un fichier à accès séquentiel
Contrairement à l'exercice 2, on accède au fichier de façon séquentielle. Les champs de données
sont séparés par un séparateur de type "TAB".
Copiez dans votre répertoire le fichier à accès séquentiel TP4_TAB.txt.
Ouvrez le fichier avec un éditeur de texte et regardez sa structure :
• Le fichier comprend 2 colonnes de nombres, séparées par le caractère TAB
(code ASCII hexadécimal : 09).
• La première ligne du fichier donne l'intitulé des 2 colonnes.
• Le passage d'une ligne à la suivante se fait à l'aide des caractères "CARRIAGE
RETURN" (ASCII : 0D) et "LINE FEED" (ASCII : 0A)
•
1) Importez le fichier dans Excel avec la commande "Ouvrir".
a)
Tracez la courbe f(X) en fonction de X.
b)
Ajoutez au graphe la droite de régression linéaire aX+b s'ajustant le mieux aux
données (Clic gauche sur les points de la série de données, puis clic droit "Ajoutez une
courbe de tendance"). Affichez l'équation et le facteur d'accord R sur le graphe.
2) Réalisez un programme qui réalise les mêmes opérations :
a)
Réalisez une macro qui lise les données directement à partir du fichier TP4_TAB.txt,
et les inscrive en colonnes A et B.
b)
Ajoutez une partie à la macro de façon à calculer par moindres carrés les coefficients a
et b de la droite de régression linéaire à partir des données (Voir annexe).
Pour réaliser ce calcul, il peut être utile d'introduire des variables intermédiaires
correspondant à N*E(X), N*E(XY), N*E(X2).
__________________________________________________________________________________
ANNEXE : REGRESSION LINEAIRE PAR LA METHODE DES MOINDRES CARRES
Lorsque deux grandeurs X et Y mesurées conjointement ont une interdépendance linéaire, le tracé
d’un graphe type ‘nuage de points’ Y = f(X) montre que les points expérimentaux se placent à
proximité d’une droite (dite ‘de régression’) d’équation Y = aX +b .
La méthode des moindres carrés consiste à calculer les coefficients a et b d’une telle droite en
minimisant les écarts entre les valeurs théoriques et expérimentales.
a et b vérifient les équations suivantes :
E ( XY ) − E ( X ) * E (Y )
E ( X 2 ) − E ( X )2
1 N
E ( X ) = ∑ xi
avec
N i =1
a=
b = E (Y ) − a * E ( X )
E ( XY ) =
1 N
∑ xi yi et
N i =1
E( X 2 ) =
1 N 2
∑ xi
N i =1
Exercice 2 : Calculs statistiques à partir d'un fichier à accès direct
Cet exercice reprend une partie des calculs déja effectués au cours du TP_1+2.
Contrairement à l'exercice 1, on accède au fichier de façon directe. Les champs de données ont une
largeur (nombre de caractères) fixe.
Copiez dans votre répertoire le fichier à accès direct "donnees.txt".
Ouvrez le fichier avec un éditeur de texte ou, mieux un éditeur hexadecimal, et regardez sa structure :
Le fichier comprend 6 colonnes de nombres, séparées par le caractère TAB (code ASCII
hexadécimal : 09). Les 3 premières colonnes correspondent aux indices de Miller h, k et l d'un
plan de diffraction, la 4ème colonne à l'intensité I_hkl diffractée par ces plans, la 5ème colonne à
l'incertitude sig_I_hkl sur la mesure de I_hkl, la 6ème colonne contient un chiffre num
numérotant l'expérience de diffraction. Chaque ligne comprend également une 7ème colonne
(non affichable) contenant la chaîne fin_ligne de 2 caractères ("CARRIAGE RETURN" (0D)
et "LINE FEED" (0A)) marquant la fin de la ligne.
1) Déclaration du type d'enregistrement :
a)
Regardez combien de caractères comprennent les variables h, k,l, I_hkl, sig_I_hkl et
num (on compte également les espaces situés à gauche des chiffres et les points
(séparateur décimal anglosaxon). La variable fin_ligne comprend 2 caractères.
b)
Déclarer le type "Enregistrement" formé des variables h, k,l, I_hkl, sig_I_hkl et
num et fin_ligne (voir cours) elles-mêmes déclarées comme "chaines de caractères"
de longueur la longueur que vous aurez déterminée au a).
c)
Vérifiez que la lecture du fichier à accès direct se fait correctement en réalisant une
petite macro qui lise dans le fichier "donnees.txt" les 20 premières valeurs de I_hkl et
les affiche à l'aide d'une boite de message.
REMARQUE :
Lecture de la variable var de type "Enregistrement" : get var
Lecture du champ I_hkl de la variable var : get var.I_hkl
2) Calculs statistiques élémentaires
a)
Réalisez une macro qui lise dans le fichier "donnees.txt" les N =110 valeurs de h, k,l,
I_hkl, sig_I_hkl et num et inscrive ces nombres dans la feuille de calcul active dans
les colonnes A à F.
b)
Ajoutez à la macro une partie qui calcule, au fur et à mesure que les données sont lues,
les variables :
somme_I = Σ I_hkl
somme_I2 = Σ (I_hkl)2
somme_sigI = Σ sigI_hkl
somme_sigI2 = Σ (sigI_hkl)2
somme_IsigI : Σ I_hkl * sigI_hkl
et utilisez ces variables pour calculer
la moyenne : moy_I = 1/N * somme_I
la variance :
var_I = 1/(N-1) * (somme_I2 - 1/N*(somme_I)2 )
cf. cours
l'écart-type : esd_I = (var_I)1/2
3) Exportation de données pour la réalisation d'un histogramme
a)
Rajoutez une partie au programme qui repère les valeurs mimimum min_I et
maximum max_I de I_hkl lors de la lecture des 110 lignes de données.
b)
Calculez les 15 valeurs du tableau limite(num_classe) contenant les 15 limites
inférieures des classes d'intensité de I_hkl, numérotées par l'indice num_classe
(num_classe = 1, 15).
c)
A l'aide d'une nouvelle boucle sur les 110 lignes du fichier, calculez les 15 valeurs du
tableau fréquence(num_classe) des fréquences partielles de I_hkl.
d)
Ecrivez dans le fichier "histo.txt" les variables num_classe, limite(num_classe) et
frequence(num_classe) pour les 15 valeurs de num_classe. Les différents champs
seront séparés par le caractère "TAB" et la ligne terminée par "CARRIAGE
RETURN" et "LINE FEED".

Documents pareils