1 / 72

Calcul numérique (avec Maple)

Calcul numérique (avec Maple). Maplesoft http://www.maplesoft.com/ Maple version 9.5. Chapitre 8 : Entrées-Sorties Analyse de Données Quelques mots sur le filtrage d’images. Entrées-Sorties. Entrées-sorties. Notion de « chemin » ( PATH ) dans un système de gestion de fichiers

Download Presentation

Calcul numérique (avec Maple)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Calcul numérique(avec Maple) Maplesoft http://www.maplesoft.com/ Maple version 9.5

  2. Chapitre 8 : Entrées-SortiesAnalyse de DonnéesQuelques mots sur le filtrage d’images

  3. Entrées-Sorties

  4. Entrées-sorties • Notion de « chemin » (PATH) dans un système de gestion de fichiers FILENAME := "C:\\Documents and Settings\\chaumont\\Mes documents\\Enseignement\\Maple\\Cours\\07_ressources\\data1.txt":

  5. Entrées-sorties • La notion d’ouverture de fichier

  6. Entrées-sorties • La notion d’ouverture de fichier • fopen retourne un descripteur de fichier (un petit entier). > NBCOLONNE := 2: FILENAME := "data1.txt": fd := fopen(FILENAME, READ); fd := 1

  7. Entrées-sorties • La lecture… • beaucoup de commandes, • choisir en fonction de ses besoins !

  8. Entrées-sorties • Exemple de lecture; commande readdata :

  9. Entrées-sorties • Exemple de lecture; commande readdata : > restart;NBCOLONNE := 2:FILENAME := "data1.txt":fd := fopen(FILENAME, READ):listePoints := readdata(fd, float, NBCOLONNE);fclose(fd):plot(listePoints, style=point);

  10. Entrées-sorties • Exemple d’écriture; commande fprintf : > fd := fopen("testFile.txt",WRITE,TEXT); fd := 0 > fprintf(fd,"This is a test\n"); 15 > fclose(fd);

  11. Entrées-sorties Exemple d’utilisation • Exemple d’utilisation… • Des étudiants de chimie ont effectué des relevés expérimentaux du volume de l’air en fonction de la température (ceci à pression constante). • Ces relevés ont été stockés dans un fichier texte. 1ère colonne : température en °C2ème colonne : volume en mL. Lien data1.txt

  12. Exemple d’utilisation Protocole de mesure...

  13. Entrées-sorties > restart;NBCOLONNE := 2:FILENAME := "C:\\data1.txt":fd := fopen(FILENAME, READ):listePoint := readdata(fd, float, NBCOLONNE);fclose(fd):plot(listePoint, labels=["Temperature (°C)", "Volume(mL)"], title = "Mesure expérimentale du volume d’un gaz à pression constante en fonction de la température", style=point); Lien Code Maple

  14. Entrées-sorties Mesures obtenues par un groupe d’étudiants

  15. Entrées-sorties Exemple d’utilisation Remarque : la loi des gaz parfaits indique que P.V = n.R.T P est la pression (en pascal) ; V est le volume occupé par le gaz (en mètre cube) ; n est la quantité de matière, en mole R est la constante des gaz parfaits (R = 8,314 472 J.K-1.mol-1) T est la température absolue (en kelvin).

  16. Entrées-sorties Exemple d’utilisation Remarque : la loi des gaz parfaits indique que P.V = n.R.T donc V = (n.R/P) × T = cst × T Si T est exprimée en °C on a une expression linéaire V=a.T + bavec a et b deux constantes. D’où la « sensation » de linéarité en regardant le tracé. (Figure montrée 2 transparents avant celui-ci)

  17. Entrées-sorties Exemple d’utilisation Si T est exprimée en °C on a une expression linéaire V=a.T + b avec a et b deux constantes. Question : Déterminer l’équation de la droite ?

  18. Entrées-sorties Exemple d’utilisation Signal image : j i

  19. H L Entrées-sorties Exemple d’utilisation • Représentation : Images et suite d’images ... image Image : tableau HxL de pixels Pixel : * niveau de gris ([0,255]) * couleur (RGB, YUV, …) * autres (multi-bande satellite, mouvement, …) pixel

  20. Entrées-sorties Exemple d’utilisation Le format (image) pgm : P5 128 128 255 ¢¡¢žŸœ››£¨¬¥”v``gjkmlmmjpvw{ Contenu du fichier :

  21. Analyse de données

  22. Analyse de données ;la régression linéaire • En statistiques, il arrive que deux grandeurs X et Y apparaissent liées par relation affine : Y = a.X + b. • La régression linéaire consiste à déterminer une estimation des valeurs a et b et à quantifier la validité de cette relation grâce au coefficient de corrélation linéaire. La généralisation à p variables Y = a0 + a1·X1 + a2·X2 + … + ap·Xp s'appelle la régression linéaire multiple.

  23. Régression linéaire • Soient Mi des points (xi,yi) avec i[1..n], on cherche la droite D dont l'équation est y = a x + b et qui passe au plus près des points Mi. D

  24. xi yi Régression linéaire D yi y = a.xi + b xi

  25. xi yi c’est-à-dire minimiser Régression linéaire On voudrait pour tous les points Mi que (yi - y)² soit le plus petit possible yi y = a.xi + b C’est-à-dire (yi - (a.xi+b))² soit le plus petit possible xi

  26. Régression linéaire • Passer au plus près, selon la méthode des moindres carrés, c'est rendre minimale la somme : • où (yi - axi - b)² représente le carré de la distance verticale du point expérimental Mi à la droite considérée comme la meilleure.

  27. Régression linéaire • Passer au plus près, selon la méthode des moindres carrés, c'est rendre minimale la somme : • Cela revient donc à déterminer les valeurs des paramètres a et b (respectivement le coefficient directeur de la droite et son ordonnée à l'origine) qui minimisent la somme ci-dessus.

  28. Régression linéaire

  29. Régression linéaire

  30. Régression linéaire Quelques formules classiques :

  31. Régression linéaire Ré-écriture de a et de b...

  32. Least Square Maple permet d’obtenir immédiatement le calcul de a et b de l'équation y = a x + b : > abscisse := createList(listePoints, 1);ordonnees := createList(listePoints, 2); with(stats): fit[leastsquare[[x,y]]]([abscisse,ordonnees]); y = 71.24130548 + 0.2922096617 x

  33. > f := x -> 71.24130548+.2922096617*x:plot([listePoints, f(x)], x=18.5..22.5, labels=["Temperature (°C)", "Volume(mL)"], title = "Mesure expérimental du volume d'un gaz à pression constante en fonction de la température", style=[point, line]);

  34. Least Square > with(stats): this example uses the defaults to fit the data to the curve y=a*x+b > fit[leastsquare[[x,y]]]([[10,15,17,19],[3,4,5,6]]); This is the same as > fit[leastsquare[[x,y], y=a*x+b, {a,b}]]([[10,15,17,19],[3,4,5,6]]); One can also specify nonlinear curves -- as long as the unknown parameters appear linearly > fit[leastsquare[[x,y], y=a*x^2+b*x+c]]( [[10,15,17,19],[3,4,5,6]]);

  35. Least Square with(stats): fit[leastsquare[[x,y],y=a*x^2+b*x+c]]([[10,15,17,19],[3,4,5,6]]); f := x -> 417/13358*x^2-7583/13358*x+37054/6679; lstPoints := [[10,3],[15,4],[17,5],[19,6]]; plot([f(x), lstPoints], x=-20..20, style=[line, point]);

  36. Régression linéaire Qualité de l’estimation de la linéarité: • Le coefficient de corrélation linéaire est toujours compris entre -1 et 1. • En pratique sa valeur absolue est rarement égale à 1, mais on estime généralement que l'ajustement est valide dès que ce coefficient a une valeur absolue supérieure à

  37. Régression linéaire Qualité de l’estimation de la linéarité:

  38. coefficient de corrélation linéaire Avec la formule... covar := describe[covariance](abscisse, ordonnees): varX := describe[variance](abscisse): varY := describe[variance](ordonnees): covar /(sqrt(varX) * sqrt(varY)); 0.9888453724 Avec Maple... describe[linearcorrelation](abscisse, ordonnees); 0.9888453724

  39. Traitement des données aberrantes (outlier)

  40. Traitement de données contenant des données aberrantes (outlier) AJOUT DU POINT ABERRANT (19 , 78) abscisseAberrant := [op(abscisse),19]: ordonneesAberrant := [op(ordonnees),78]: fit[leastsquare[[x,y]]]([abscisseAberrant,ordonneesAberrant]); y = 72.79926263 + 0.2192056011 x f_LS_2 := x -> 72.79926263+.2192056011*x: plot([listePoints, [[19.,78.]], f_LS_2(x)], x=18.5..22.5, labels=["Temperature (°C)", "Volume(mL)"], title = "Mesure expérimental du volume d'un gaz à pression constante en fonction de la température", style=[point, point, line], color=[black, black, blue], legend=["Données expérimentales", "Point aberrant", "Least Square"]);

  41. Traitement de données contenant des données aberrantes (outlier) Sans « outlier » = 0.9888453724 Avec « outlier » = 0.7188879334

  42. Traitement de données contenant des données aberrantes (outlier) • The function leastmediansquare of the subpackage stats[fit, ...] fits a curve to the given data using the method of least median of squares. • The equation to fit will be linear (affine) in the unknown parameters. The equation itself need not be linear. For example, specifying vars to be [x,y] implies fitting to the equation y=a*x^2+b*x+c.

  43. Traitement de données contenant des données aberrantes (outlier) The well-known least square regression method suffer from leverage points. By adding a single point to the data, one can change the result to an arbitrary extent. The least median of squares method allows one to add up to half the number of points without changing the result. The price to pay for this robustness is a substantial increase in computation cost.

  44. Traitement de données contenant des données aberrantes (outlier) with(stats): fit[leastsquare[[x,y]]]([abscisse,ordonnees]); y = 71.24130548 + 0.2922096617 x fit[leastmediansquare[[x,y]]]([abscisse,ordonnees]); y = 70.41666667 + 0.3333333333 x f_LS_1 := x -> 71.24130548+.2922096617*x: f_LMS_1 := x -> 70.41666667+.3333333333*x: plot([listePoints, f_LS_1(x), f_LMS_1(x)], x=18.5..22.5, labels=["Temperature (°C)", "Volume(mL)"], title = "Mesure expérimental du volume d'un gaz à pression constante en fonction de la température", style=[point, line, line], color=[black, blue, red], legend=["Données expérimentales", "Least Square", "Least Median Square"]);

  45. Traitement de données contenant des données aberrantes (outlier)

  46. Traitement de données contenant des données aberrantes (outlier) AJOUT DU POINT ABERRANT (19 , 78) abscisseAberrant := [op(abscisse),19]: ordonneesAberrant := [op(ordonnees),78]: fit[leastsquare[[x,y]]]([abscisseAberrant,ordonneesAberrant]); y = 72.79926263 + 0.2192056011 x fit[leastmediansquare[[x,y]]]([abscisseAberrant,ordonneesAberrant]); y = 70.41666667 + 0.3333333333 x f_LS_2 := x -> 72.79926263+.2192056011*x: f_LMS_2 := x -> 70.41666667+.3333333333*x: plot([listePoints, [[19.,78.]], f_LS_2(x), f_LMS_2(x)], x=18.5..22.5, labels=["Temperature (°C)", "Volume(mL)"], title = "Mesure expérimentale du volume d'un gaz à pression constante en fonction de la température", style=[point, point, line, line], color=[black, black, blue, red], legend=["Données expérimentales", "Point aberrant", "Least Square", "Least Median Square"]);

  47. Sans « outlier » Avec « outlier »

  48. Explications sur un exemple with(stats): data := [[1,3],[2,4],[3,5],[1,2]]: abscisse := createList(data, 1); ordonnees := createList(data, 2); fit[leastmediansquare[[x,y]]]([abscisse, ordonnees]); abscisse := [1, 2, 3, 1] ordonnees := [3, 4, 5, 2] y = 2+x f := x -> 2+x; plot([f(x), data], x=-20..20, style=[line, point])

  49. Explications Least Median Squarre data := [[1,3],[2,4],[3,5],[1,2]]: abscisse := createList(data, 1); ordonnees := createList(data, 2); fit[leastmediansquare[[x,y]]]([abscisse, ordonnees]); This is calculated as follows. For example, pick two points, say [1,3] and [2,4]. Pass a straight line through them. In this case it is y=2+x. For each point compute the square of the distance of the line to the point This gives [0,0,0,1]. Find the median through these distances: this gives 0. Now minimize over all possible lines. This is the result. | yi - (a.xi+b) | avec a=1 et b=2

  50. data := [[1,3],[2,4],[3,5],[1,2]]: This is calculated as follows. For example, pick two points, say [1,3] and [2,4]. Pass a straight line through them. In this case it is y=2+x. For each point compute the square of the distance of the line to the point This gives [0,0,0,1]. Find the median through these distances: this gives 0. Now minimize over all possible lines. This is the result. Cas où l’on a pris les points (1,3) et (2,4) ce qui donne la droite y = 1.x + 2 (y = a.x + b avec a = 1 et b = 2)

More Related