Calcul numérique (avec Maple)

Preview:

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 Presentation

Citation preview

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

Recommended