11
Sommaire easyfitG UI = Modéliser des courbes grabit = Digitaliser des images

Sommaire easyfitGUI = Modéliser des courbes grabit = Digitaliser des images

Embed Size (px)

Citation preview

Page 1: Sommaire easyfitGUI = Modéliser des courbes grabit = Digitaliser des images

Sommaire

easyfitGUI=

Modéliser des courbes

grabit=

Digitaliser des images

Page 2: 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')

Page 3: Sommaire easyfitGUI = Modéliser des courbes grabit = Digitaliser des images

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

Page 4: Sommaire easyfitGUI = Modéliser des courbes grabit = Digitaliser des images

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.

Page 5: Sommaire easyfitGUI = Modéliser des courbes grabit = Digitaliser des images

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.

Page 6: Sommaire easyfitGUI = Modéliser des courbes grabit = Digitaliser des images

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’)

Page 7: Sommaire easyfitGUI = Modéliser des courbes grabit = Digitaliser des images

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.

Page 8: Sommaire easyfitGUI = Modéliser des courbes grabit = Digitaliser des images

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.u-picardie.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.u-picardie.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

Page 9: Sommaire easyfitGUI = Modéliser des courbes grabit = Digitaliser des images

>> plot(x,y,'*') >> easyfitGUI Cliquer sur « Select Line »puis sur la courbe à « fitter »

Cliquer sur « Input Function »et entrer le nom

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 ».

Etapes de l’ajustement de données expérimentales

Page 10: Sommaire easyfitGUI = Modéliser des courbes grabit = Digitaliser des images

Utiliser easyfitGUI pour un modèle de « pic »- Télécharger l’image de données

« iamc1.bmp» depuis :http://www.u-picardie.fr/~dellis/

tdsMASTER/master_files_TdS/.

460 480 500 520 540 560 580 6000.4

0.6

0.8

1

1.2

1.4

1.6

1.8

2

2.2

2.4

model: gauss

P1 = 1.2967 +/- 0.10251

P2 = 537.9805 +/- 1.0388

P3 = 540.8681 +/- 116.5501

P4 = 0.64964 +/- 0.090202

chi0 = 0.13845

Créer la fonction « gauss », correspondant au modèle:

Ajuster les données expérimentales extraite de l’image « iamc1 » et portant sur le premier « pic ».

Page 11: Sommaire easyfitGUI = Modéliser des courbes grabit = Digitaliser des images

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