E_cours_TdS_master_Digitalisation_Traitement_Donnees

Download Report

Transcript E_cours_TdS_master_Digitalisation_Traitement_Donnees

Sommaire
easyfitGUI
=
Modéliser des courbes
grabit
=
Digitaliser des images
Télécharger le programme « grabit » sur le web, le tester
- en utilisant un moteur de recherche, trouver le site de Mathworks producteur de
Matlab
- à partir du menu de ce site, naviguer jusqu’à la « Communauté des utilisateurs »,
« Échange de fichiers »
- Chercher, télécharger et sauver dans votre répertoire de travail le logiciel « grabit »
- Dans le fenêtre de commande. Lire l’aide après avoir taper :
>> help grabit
- taper :
>> grabit('-sample')
Expérimenter l’utilisation de grabit
- Calibrer les axes
- Saisir les points de la courbe verte
- En cliquant 2 fois lentement (pas de double-clic) sur le nom de la variable
« Data001 » du workspace, changer le nom pour simplement : « data »
- Visualiser les valeurs contenues dans cette variable en double-cliquant sur son
nom.
- Dans une nouvelle figure, représenter la en plaçant la première colonne en
abscisse et la seconde en ordonnée
- Placer titre et labels à votre convenance
Digitaliser 2 droites
- Télécharger l’image « iamc2.bmp » à partir du répertoire :
http://www.u-picardie.fr/~dellis/tdsMASTER/master_files_TdS/
- Digitaliser l’image pour saisir les 2 droites dans 4 variables différentes: x1 et y1
pour la droite du bas; x2 et y2 pour la droite du haut.
- Représenter y1 = f(x1) dans une figure Matlab.
Ecrire une fonction (I)
La façon naturelle d’écrire une fonction est : y = f(x). Etudions un exemple simple.
L’équation d’une droite est : y = a*x +b. Dans Matlab, en utilisant l’éditeur, on peut écrire cette équation dans un
fichier qui sera sauvé par exemple sous le nom : « ma_droite.m » :
function y = ma_droite(a, b, x)
y = a* x + b;
end
Ecrire la fonction « ma_droite » et la sauver dans votre répertoire de travail. A ce moment, il faut la tester dans la
fenêtre de commandes . Essayer successivement:
>> y=ma_droite(2, 5, 1)
7
>> y=ma_droite(2, 5, [1, 10, 100])
7, 25, 205
>> x=1:0.1:3; y= ma_droite(2, 5, x); plot(x, y, ‘o’)
•
•
•
•
•
•
Le mot « function » est obligatoire. Il signale à Matlab que le fichier est celui d’une fonction et non celui d’un
simple programme.
Le mot « end » est obligatoire. Il signale à Matlab que la définition de la fonction est terminée.
Les variables à gauche du signe = sont les variables de sortie (ici il n’y en a qu’une : y). Les noms sont donnés
par l’utilisateur : y, u, t, x, mavariable, sortie, … Quand il existe plusieurs variables de sorties, il faut les placer
entre crochet comme dans cet exemple :
function [u, v] = exempleavecplusieurssorties(x)
u = x + 1;
v = x – 1;
end
Le nom de la fonction placée à droite du signe =, ici « ma_droite », doit être le même que le nom du fichier
qui sera sauvé.
Les variables d’entrée sont placées entre parenthèses (ici 3 variables : a, b et x).
x est le vecteur qui contient les abscisses pour lesquelles la fonction calcule les ordonnées y.
Ecrire une fonction (II)
Pour utiliser une fonction avec easyfitGUI il faut écrire la fonction dans un format spécifique tel
que la fonction n’ait que 2 arguments en entrée : p et x. Ecrire le fichier qu’on appellera « droite.m »
en utilisant l’éditeur et le format suivant :
function y = droite(p,x)
y = p(1) * x + p(2);
end
- Dans cet exemple, p est un vecteur qui possède 2 éléments : p(1) jouera le rôle de a et p(2) celui
de b de l’expression y = a*x + b.
- x est le vecteur qui contient les abscisses pour lesquelles la fonction calcule les ordonnées y.
Après sauvé le fichier, il faut tester la fonction :
>> p=[2, 5]; y=droite(p, 1)
7
>> p=[2, 5]; y=droite(p, [1, 10, 100])
7, 25, 205
>> p=[2, 5]; x=1:0.1:3; y= droite(p, x); plot(x, y, ‘o’)
Ajuster des paramètres pour approcher des données par un modèle
Les variables crées dans l’exercice Digitaliser 2 droites doivent exister.
Après avoir étudier les commandes ci-dessous écrites sur une ligne :
>> p=[1,2]; y1new = droite(p,x1) ; plot(x1, y1, x1, y1new, ’or’)
exécuter plusieurs fois cette ligne dans la fenêtre de commandes afin de chercher
par tâtonnement un vecteur p qui s’approche de la droite digitalisée y1 = f(x1). Ces
valeurs seront utilisées par la suite comme valeurs initiales à un algorithme utilisé
par la fonction easyfitGUI.
Télécharger la fonction easyfitGUI, lire l’aide et l’utiliser pour une droite et
pour un modèle en puissance
-
Télécharger le programme « easyfitGUI » sur le site Mathworks ou à partir
du répertoire : http://www.upicardie.fr/~dellis/tdsMASTER/master_files_TdS/. Lancer le programme (la
figure comportant y1 = f(x1) doit exister), utiliser l’aide disponible dans le
menu de la figure pour trouver la pente et l’ordonnée à l’origine de la
droite étudiée. (Voir la diapositive suivante)
-
Télécharger le fichier de données « power1 » dans: http://www.upicardie.fr/~dellis/tdsMASTER/master_files_TdS/. Après avoir écrit la
fonction correspondant au modèle ci-dessous, ajuster les données y=f(x)
par une loi de puissance de la forme:
y=a*xn + b
Etapes de l’ajustement de données expérimentales
>> plot(x,y,'*')
Cliquer sur « Input Function »
et entrer le nom
>> easyfitGUI
Cliquer sur « Select Line »
puis sur la courbe à « fitter »
Cliquer sur « Input Pinit » et entrer autant de valeurs qu’il y a
d ’ éléments dans le vecteur p de la fonction modèle. Il ne
restera plus qu’à cliquer sur « Start Fit ».
2.4
2.2
model: gauss
P1 = 1.2967 +/- 0.10251
Utiliser easyfitGUI pour un modèle de « pic
»
2
P2 = 537.9805 +/- 1.0388
P3 = 540.8681 +/- 116.5501
- Télécharger l’image de données
1.8
P4 = 0.64964 +/- 0.090202
chi0 = 0.13845
« iamc1.bmp» depuis :
1.6
http://www.u1.4
picardie.fr/~dellis/tdsMASTER/master_fil
1.2
es_TdS/.
1
0.8
0.6
0.4
460
480
500
520
540
560
Créer la fonction « gauss », correspondant au modèle:
𝑥 − 𝑥0
𝑓 𝑥 = 𝐴. 𝑒𝑥𝑝 −
𝐵
2
Ajuster les données expérimentales extraite de l’image « iamc1 » et portant sur le
premier « pic ».
580
Utiliser easyfitGUI pour un modèle nécessitant une indexation « logique »
Télécharger le fichier de données « cassure» dans:
http://www.u-picardie.fr/~dellis/tdsMASTER/master_files_TdS/
Créer la fonction « droite2 » donnée ci-dessous, étudier les différentes
commandes qui la constituent, identifier le rôle de chaque paramètre.
Ajuster les données expérimentales du fichier « cassure ».
function y=droite2(p,x)
x=x(:);
logic_inf=x<=p(5);
x1=x(logic_inf);
logic_sup=x>p(5);
x2=x(logic_sup);
y1=p(1)*x1+p(2);
y2=p(3)*x2+p(4);
y=[y1;y2];
end