calcul numérique (avec maple)
DESCRIPTION
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). - PowerPoint PPT PresentationTRANSCRIPT
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 ?
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
Chapitre 6 : Types de données fondamentaux
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.
Construction de suites génériques(séquence ou itération)
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 et concaténation
concaténation de suites
concaténation de listes
sous-suite
sous-liste
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.
Quelques particularités des listes
Le 5ème élément est remplacé par la valeur 10
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.
Tableaux : Illustration
nombre de lignes
nombre de colonnes
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.
Liste Tableau
Nombre d’éléments, Accès à un élément...
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.
Les tables - illustration
Chapitre 4 : Graphiques … suite
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
Courbes paramétrées - Illustration
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)
Champs de vecteurs
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
Fonctions implicites
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)
Exemple de système polaire
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 Fonctionplot3d(sin(x*y), x=-Pi..Pi, y=-Pi..Pi, style=hidden);
Une courbe paramétréeplot3d([ 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