500 likes | 704 Views
Calcul numérique (avec Maple). Maplesoft http://www.maplesoft.com/ Maple version 9.5. Le logiciel de calcul formel Maple. Sources utilisées pour ce cours : Raphaël Giromini http://www.giromini.org/maple/index.html M. Chare (cours-tds années précédant 2006).
E N D
Calcul numérique(avec Maple) Maplesoft http://www.maplesoft.com/ Maple version 9.5
Le logiciel de calcul formel Maple • Sources utilisées pour ce cours : • Raphaël Giromini http://www.giromini.org/maple/index.html • M. Chare (cours-tds années précédant 2006). • José-Marconi Rodrigues (tps précédant 2006).
Brainstorming …qu’a t-on vu la dernière fois ? • is, type • and, or, not, • `if` (expr, alt1, alt2) • définition d’une procédure : proc, local • Affichage : plot, with(plot), textplot
Rappel de la semaine dernière • Maple contient un grand nombre de types de données. Nous avons vu pour le moment les types : • complex • integer • fraction • float • string
Rappel de la semaine dernière • Il existe de nombreux autres types « exotiques » : function, procedure, indexed, series, ::, .., uneval etc. • Certains types sont également présents dans d’autres langages de programmation comme les types : suite (exprseq), liste (list), ensemble (set), tableau (array), table (table).
Suites • En Maple, une suite est un ensemble d’expressions écrites dans un ordre donné et séparées par des virgules.
Listes • En Maple, une liste est une « suite entourée de crochets ».
Suite Liste • Pour passer d’une suite à une liste on ajoute des crochets [ ]. • Pour passer d’une liste à une suite, on utilise la commande op.
Construction de suites génériques(séquence ou itération) • On utilise la commande seq ou bien la programmation par itération pour construire une suite générique.
Accès à un n-ème terme(suite ou liste) Pour accéder au n-ème terme d’une liste ou d’une suite, on écrit le nom de la variable suivi du numéro du terme entre crochets
sous-suite sous-liste concaténation de suites concaténation de listes Sous-suite, sous-liste et concaténation
Quelques particularités des listes • Commandes propres aux listes : • Nombre d’éléments : nops • Substitution d’un élément sachant son nom: subs • Substitution d’un élément sachant sa place: subsop • Tri : sort.
Le 5ème élément est remplacé par la valeur 10 Quelques particularités des listes
Extraction d’une sous-listepar un critère (fonction booléenne) sur la liste • On utilise la commande select
Dernière remarque • On peut créer des listes de listes
Les ensembles • Un ensemble est une suite d’éléments qui ne se répètent pas et n’ont pas d’ordre particulier. • En Maple un ensemble se saisit par une énumération d’expressions séparées par des virgules et entourée d’accolades { }.
Les ensembles • Illustration :
Suite Ensemble • Pour passer d’une suite à un ensemble on ajoute des crochets { }. • Pour passer d’un ensemble à une suite, on utilise la commande op.
Opérations sur les ensembles • Union, Intersection, Soustraction :
Nombre d’éléments, Accès à un élément, sous-ensemble ... Nombre d’éléments Accès à un élément Sous-ensemble
Extraction d’un sous-ensemblepar un critère (fonction booléenne) sur l’ensemble • On utilise la commande select
Tableaux • Un tableau est une structure de données qui contient des éléments de même type. • En Maple, la syntaxe pour déclarer un tableau nommé T est la suivante : T := array(type_de_tableau, fonction_index, liste_valeurs); - type_de_tableau : (optionnel) symetric, antisymetric, sparse, diagonal et identity. - fonction_index : décrit la façon dont les index varient. - liste_valeurs: (optionnel) valeurs contenues dans le tableau.
nombre de lignes nombre de colonnes Tableaux : Illustration
Liste Tableau • Pour passer d’une liste de liste à un tableau on utilise la commande convert(…, ‘array’). • Pour passer d’un tableau à une liste de liste on utilise également la commande convert(…, ‘listlist’). Remarque : on peut définir un tableau, sans préciser ses dimensions, en donnant ses entrées sous la forme de liste de listes.
Les tables • Les tables sont une généralisation des tableaux si ce n’est que les indices sont n’importe quel type d’expression (chaîne, symbole, etc.). • Les tables sont utiles uniquement dans le cadre de la programmation avancée.
Courbes paramétrées • La syntaxe pour tracer une courbe définie paramétriquement par le vecteur (f(t), g(t)) avec f et g des fonctions dépendant du paramètre t est : plot([f(t), g(t), t=intervalle]); Les crochets sont autour de toute l’expression
Champs de vecteurs • En physique, il peut être utile de tracer un champ de vecteurs (par exemple le champ de vecteurs d’une force magnétique, électrique ou gravitationnelle). • Maple permet de tracer les champs de la forme (f(x,y), g(x,y)). La commande pour tracer un tel champ est définie par : fieldplot([f(x,y), g(x,y)], x=a..b, y=c..d, options)
Fonctions implicites • Les fonctions implicites en deux dimensions sont définies par une relation de la forme f(x,y) = a. • Elles peuvent être tracées en utilisant la commande implicitplot
Graphes de points • La commande peut aussi être utilisée pour relier des points entre eux, avec la syntaxe : plot([[a1,b1], [a2,b2], ... ,[an,bn]]); • On peut fermer la courbe en mettant [a1,b1] = [an,bn].
Graphes de points plot([[-12, -1],[20,7], [21,3], [-11, -5], [-12,-1]]); plot([[-12, -1],[20,7], [21,3], [-11, -5], [-12,-1]], style=point);
Autres systèmes de coordonnées • Il suffit d’ajouter l’option coords = type bipolar, cartesian, cassinian, elliptic, hyperbolic, invcassinian, invelliptic, logarithmic, parabolic, rose, tangent … • Exemple :cartesien (u, v) --> polaire (x, y) • x = u*cos(v) • y = u*sin(v)
Inégalités • Il est possible de tracer des courbes représentatives d’inégalités en utilisant la commande inequal
Graphique en 3D... • La syntaxe est similaire à la syntaxe de la commande plot: plot3d(expression, intervalle, options) • On retrouve d’ailleurs les mêmes options : • plusieurs courbes sur un même graphique, • courbes paramétrées, • nombreux systèmes de coordonnées ...
Exemples Une Fonction plot3d(sin(x*y), x=-Pi..Pi, y=-Pi..Pi, style=hidden); Une courbe paramétrée plot3d([ x*sin(y)*cos(y), x*cos(y)*cos(y), x*sin(y) ], x=0..2*Pi, y=0..Pi);
Les animations • Une suite de graphes 2D ou 3D peut être animée grâce à la commande animate qui a la syntaxe suivante : animate ([f(x,t), x=a..b, t=c..d) où t représente le temps c’est-à-dire le paramètre à faire varier *