(1) (1) O O O O O O O O O O O O O O O O GRAPHES EN DIMENSION DEUX Bernard Dupon
(1) (1) O O O O O O O O O O O O O O O O GRAPHES EN DIMENSION DEUX Bernard Dupont Bernard.Dupont@univ-lille1.fr La possibilité qu'offrent les logiciels de calcul formel de visualiser en un temps extrêmement court une courbe est un de leurs grands atouts. On sait en effet qu'un graphique est souvent très parlant dans les sciences appliquées et permet, bien mieux que ne le feraient une expression algébrique ou un commentaire littéraire, de s'approprier les propriétés qualitatives du phénomène étudié. Maple est parfaitement profilé pour remplir cette tâche. De fait, une multitude de commandes et d'options, disponibles dans la bibliothèque proncipale ou dans des paquetages dédiés, permet de construire des graphiques (presque) parfaits. Pour représenter une fonction d'une variable réelle, Maple propose la commande directe plot disponible dans le noyau de base, par exemple : plot(sin(x)/x,x=-10..10); x K 10 K 5 0 5 10 K 0,2 0,2 0,4 0,6 0,8 1,0 Mais cette commande ne donne pas toute la mesure des capacités graphiques de Maple. On accède à celles-ci en chargeant le module (package) plots : with(plots); animate, animate3d, animatecurve, arrow, changecoords, complexplot, complexplot3d, conformal, conformal3d, contourplot, contourplot3d, coordplot, coordplot3d, densityplot, display, dualaxisplot, fieldplot, fieldplot3d, gradplot, gradplot3d, graphplot3d, implicitplot, implicitplot3d, inequal, interactive, interactiveparams, intersectplot, listcontplot, listcontplot3d, listdensityplot, listplot, listplot3d, loglogplot, logplot, matrixplot, multiple, odeplot, pareto, plotcompare, pointplot, pointplot3d, polarplot, polygonplot, polygonplot3d, polyhedra_supported, polyhedraplot, rootlocus, semilogplot, setcolors, setoptions, setoptions3d, spacecurve, sparsematrixplot, surfdata, textplot, textplot3d, tubeplot Parmi les fonctionnalités ajoutées, on s'intéressera tout particulièrement dans ce chapitre à animate , arrow, display, implicitplot, interactive, pointplot, textplot. En outre, les versions successives du logiciel ont ajouté des outils supplémentaires ayant pour but de faciliter la vie des utilisateurs, en particulier dans le domaine graphique via les outils interactifs 1 O O O O O O O O smartplot (graphes dynamiques) et Interactive Plot Builder (construction interactive de graphe). Il devient inutile de programmer, ce qui n'est pas forcément une bonne chose ... Les trois premières sections de ce chapitre présentent les ressources de la commande plot en allant du simple (tracés rudimentaires d'expressions, de fonctions, de points et de segments de droite) au complexe (options élaborées de toute nature) via les options élémentaires (spécification de l'intervalle d'arrivée, du repère, traitement des discontinuités, graduation des axes, titrage, etc). La possibilité de construire des courbes paramétrées est exposée dans la section 5. La troisième section introduit au maniement des commande display, textplot et arrows du paquetage plots. Les instructions spécifiques relatives aux courbes implicites et aux animations sont traitées dans les sections 4 et 6. La section 7 est consacrée aux outils interactifs. Tracés rudimentaires Fondamentalement, il faut utiliser la commande universelle plot avec au minimum les deux arguments suivants : en premier lieu et en première place, l'expression ou la fonction à représenter; en second lieu, le domaine décrit par la variable. Ce n'est pas tout à fait la même chose de donner une fonction-procédure ou une expression. Tracé d'une expression Si la fonction à tracer est explicitement une expression dépendant d'une variable nominative, par exemple x, il faut indiquer que c'est cette variable qui prend toutes les valeurs sur un intervalle. La syntaxe est donc : plot(expression de x,x=a..b)où a < b avec a éventuellement égal à -N et b éventuellement égal à +N. plot(exp(-x^2)*sin(Pi*x^3),x=-2..2); x K 2 K 1 0 1 2 K 0,4 K 0,2 0,2 0,4 Sur l'axe des abscisses figure (à un endroit peu usuel) la variable x. Un clic gauche sur le graphique fait apparaître le cadre dans lequel il s'insère. On en modifie la taille en tirant sur les poignées. Le pointeur se transforme en viseur et si on clique son centre sur un point quelconque de la courbe, celle-ci se réaffiche à l'intérieur d'un corridor bleu. Tracé d'une fonction Quand une fonction est décrite par une correspondance entre les éléments d'un ensemble de départ et les éléments d'un ensemble d'arrivée, il est inutile de spécifier en option de plot le nom de la variable décrivant l'ensemble de départ. La syntaxe est alors plot(fonction, 2 O O O O O O O O O O O O O O O O a..b)où a < b avec a éventuellement égal à -N et b éventuellement égal à +N. Dans le graphique, le nom de l'argument ne figure pas en abscisse comme c'est le cas pour une expression. f:=h->exp(-h^2)*sin(Pi*h^3); plot(f,-2..2); f := h/eK h2 sin π h3 K 2 K 1 0 1 2 K 0,4 K 0,2 0,2 0,4 Les deux graphiques suivants donnent l'allure de la fonction "à l'infini". plot(f,0..infinity); plot(f,-infinity..0); N 0 3 O O O O O O O O O O O O O O O O K N 0 Comme dans le paragraphe précédent, on a la possibilité de modifier la taille du graphique en cliquant gauche sur celui-ci puis en jouant sur les poignées. De même, les propriétés du viseur sont identiques. Tracé de points et de segments L'instruction plot n'est pas réservée aux seules fonctions. Elle permet aussi de visualiser des points et des segments dans le plan. Pour tracer n points de coordonnées (x1, y1), ..., (xn, yn) dans un graphique, la commande plot a la syntaxe minimale suivante : plot([[x[1],y[1]],...,[x[n],y[n]]],style=point) Le premier argument est une liste contenant une ou plusieurs listes de deux coordonnées. Le second fixe l'option style à point plot([[1,2],[2,1]],style=point); 1 1,2 1,4 1,6 1,8 2 1 1,2 1,4 1,6 1,8 2 On peut préciser en option l'intervalle de valeurs pour les abscisses et les ordonnées, à condition de les préciser avant l'option style=point : plot([[1,2],[2,1]],-4..4,-4..4,style=point); 4 O O O O O O O O O O O O O O O O K 4 K 3 K 2 K 1 0 1 2 3 4 K 4 K 3 K 2 K 1 1 2 3 4 Pour tracer le segment de droite reliant les points du plan de coordonnées x1, y1 et x2, y2 , l'option style doit être fixée à line. plot([[1,2],[2,1]],-4..4,-4..4,style=line); K 4 K 3 K 2 K 1 0 1 2 3 4 K 4 K 3 K 2 K 1 1 2 3 4 Pour obtenir plusieurs segments de droite dans un même graphique, il suffit de respecter la règle de cohérence des crochets pour que la liste des points à tracer soit bien composée de listes de deux listes : plot([[[1,2],[2,1]],[[-4,3],[-3,0]],[[-2,0],[0,-3]]],-4. .4,-4..4,style=line); 5 O O O O O O O O K 4 K 3 K 2 K 1 0 1 2 3 4 K 4 K 3 K 2 K 1 1 2 3 4 Plusieurs tracés dans un même graphique Avec plot, on peut représenter plusieurs expressions ou fonctions sur le même intervalle de l'ensemble de départ à l'aide d'une syntaxe adaptée. Pour des expressions, on utilise : plot({expression1,expression2,..,expressionN},x=a..b) et plot( {fonction1,fonction2,..,fonctionN},a..b). et pour des fonctions : plot([expression1,expression2,..,expressionN],x=a..b) et plot( [fonction1,fonction2,..,fonctionN],a..b). Le premier argument de plotest un ensemble (set) ou une liste (list) dont les éléments sont des expressions ou des fonctions, ce qu'on exprime par la mise entre parenthèses des éléments si leur ordre n'est pas important (cas d'un ensemble/set) ou la mise entre crochets si leur ordre est important (cas d'une liste/list). Maple attribue une couleur différente à chaque représentation graphique, mais on ignore les critères de choix de couleurs de sorte qu'on ne peut pas identifier les fonctions tracées. On reviendra plus loin sur ce problème. restart; plot({exp(-x^2)*sin(Pi*x^3),exp(-x^2),-exp(-x^2)},x=-2. .2);#cas d'un ensemble de trois expressions plot([x^(1/3),x,x^2],x=0..2);#cas d'une liste de trois expressions 6 O O O O O O O O O O O O O O O O x K 2 K 1 0 1 2 K 1 K 0,5 0,5 1 x 0 0,5 1 1,5 2 0 1 2 3 4 Technique d'assignation d'un graphique Dans une session longue qui enchaîne les figures, on a besoin de référencer les graphiques. A priori, il suffit d'attribuer un identificateur à chacun d'eux, mais cette opération simple d'assignation du type graphe:=plot( ) réserve quelques surprises. Dans l'exemple suivant, on commence par assigner un graphique en espérant le labelliser et le visualiser. graphe1:=plot(x^2-6*x,x=-5..5); graphe1 := PLOT ... Or, le graphique n'apparaît pas. Que contient graphe1? about(graphe1); PLOT(CURVES([[-5., 55.], [-4.78202845833333346, 51.5599669263098832], [-4.59237258541666636, 7 48.6441214757865552], [-4.37908472083333322, 45.4508913172359500], [-4.16438304583333352, 42.3283844274241119], [-3.95070181041666668, 39.3122556573295299], [-3.75259195208333330, 36.5974980713406026], [-3.54746066875000032, 33.8692412088281998], [-3.33531360208333316, 31.1361984367420988], [-3.12384689374999969, 28.5015007780915220], [-2.90632739166666632, 25.8847032575519656], [-2.71473609583333308, 23.6582086450204088], [-2.49904967499999974, 21.2395473281176024], [-2.28247762499999984, 18.9045698586256386], [-2.07377032499999992, 16.7431453108506042], [-1.88424410208333314, 14.8558404487358260], [-1.65887909166666648, 12.7051543907688238], [-1.46796536666666634, 10.9627145177327990], [-1.24588731874999992, 9.02755912352206380], [-1.04931061666666680, 7.39691647024938170], [-.833634818749999340, 5.69675592353233994], [-.628260456249999598, 4.16427393838745540], [-.413973854166665767, 2.65521747693359834], [-.217191860416666494, 1.35032346673125180], [-.493589583333342575e-2, .296397380676780738e-1], [.215538397916667180, -1.24677358652351944], [.407461918750000152, -2.27874629726856926], [.614744579166667472, -3.31055657738520193], [.828887850000000092, -4.28627203212237796], [1.03838526250000029, -5.15206762162280718], [1.24108478125000055, -5.90621725324964153], [1.46614803750000000, -6.64729815713489814], [1.66837738333333262, -7.22678120678181735], [1.88430037500000046, -7.75521434677486000], [2.07995869791666620, -8.15352400246080400], [2.29386492500000116, -8.50137325585474635], [2.49513401458333294, -8.74511033676925820], [2.70551820625000072, -8.91328047314978100], [2.91120720833333291, -8.99211584014803832], [3.12654453124999954, -8.98398648161071734], [3.33393996666666758, -8.88848409866266564], [3.54603175416666794, -8.70184932344167095], [3.75636731458333450, -8.42790848542999527], [3.94964385000000106, -8.09817655815717606], [4.17116057083333480, -7.62838291732533591], [4.36928776666666784, -7.12505101205701053], [4.58053268125000024, -6.50191644350068643], [4.78272101875000110, 8 O O O O O O O O O O O O O O O O -5.82190576930695869], [5., -5.]],COLOUR(RGB,1.00000000, 0.,0.)),AXESLABELS(x,""),VIEW(-5. .. 5.,DEFAULT)): nothing known about this object Mais si on demande maintenant : graphe1; x K 4 K 2 0 2 4 10 20 30 40 50 On obtient le uploads/s3/ ch4-05.pdf
Documents similaires










-
23
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Apv 04, 2022
- Catégorie Creative Arts / Ar...
- Langue French
- Taille du fichier 1.6993MB