par Nicolas Martignoni Collège Sainte-Croix 1700 Fribourg (Suisse) Version 2.0 © Copyright 1992-1998 Nicolas Martignoni. Tous droits réservés.
Voici quelques problèmes de programmation permettant de s'exercer et de développer ses propres connaissances en Mathematica.
Ces problèmes vont du plus simple (mais pas trop quand même) au plus compliqué (mais pas trop non plus). On trouvera une solution à chacun de ces problèmes dans le chapitre 5.
Lorsque l'on dessine la représentation graphique d'une fonction trigonométrique, on aimerait souvent que les graduations de l'axe des abscisses soient des multiples fractionnaires de
. Dessinez la représentation graphique de la fonction sinus de -
à
avec des graduations de
/3 en
/3.
Programmez avec des règles l'algorithme d'Euclide pour calculer le pgcd de deux entiers.
La «racine numérique» d'un nombre naturel est la somme itérée de ses chiffres: on additionne les chiffres du nombre, puis les chiffres du nombre obtenu et ainsi de suite jusqu'à ce qu'il ne reste qu'un seul chiffre. Par exemple la racine numérique de 753 est 6; en effet 7 + 5 + 3 = 15, et 1 + 5 = 6. On demande de programmer cette opération.
Ecrivez un programme qui calcule l'écart-type d'une liste de nombres. On rappelle que l'écart-type est défini comme la racine carrée de la moyenne des écarts à la moyenne au carré.
Un palindrome est une expression qui ne change pas, qu'on la lise de droite à gauche ou de gauche à droite, comme «Laval» ou «ici». Un nombre palindrome se définit de façon analogue. Par exemple le nombre 13531 est un nombre palindrome. Programmez une fonction qui teste si un nombre est palindrome ou non.
Indication: on commencera par écrire un programme qui «renverse» un nombre.
Généralisez l'exercice donné plus haut pour calculer le pgcd d'un nombre quelconque d'entiers.
Ecrivez un programme qui dessine la représentation graphique d'une fonction, ainsi que la tangente à la courbe en un point dont l'abscisse est donnée, comme ci-dessous.
tangentePlot[x^3 - x, -1/2, {x, -2, 2}];

Fabriquez une fonction qui tire aléatoirement n entiers parmi m, sans remise.
On aimerait construire un programme qui dessine le processus de convergence de la méthode de Newton pour la recherche des zéros d'une fonction, comme dans l'exemple ci-dessous.
NewtonGraph[x^3 - x, 0.4472215, {t, -1.2, 1.2}]
1.

Voici trois sujets de projets. Ils comprennent des difficultés relativement importantes. Pour arriver à une connaissance approfondie de Mathematica, il est vivement conseillé d'aborder l'un ou l'autre.
Il serait en outre profitable de fabriquer un package pour chacun des problèmes proposés, afin de se familiariser avec le concept important de contexte, qui n'a pas été abordé dans le cours.
Pour des exemples et des informations importantes à ce sujet, on consultera le livre Programming in Mathematica, de Roman Maeder (voir la bibliographie).
Ces trois projets sont classés par ordre de difficulté croissante.
On demande de mettre en oeuvre l'algorithme de la réduction de Gauss pour les matrices. On aimerait voir la matrice après sa réduction en avant, obtenir son rang et finalement voir la matrice réduite. On en déduira facilement l'algorithme pour inverser une matrice carrée.
Ce projet est particulièrement adapté à un approfondissement des connaissances dans la manipulation des listes.
Lorsque l'on dessine la représentation graphique d'une fonction ayant une singularité essentielle, Mathematica dessine automatiquement ce qui semble être une asymptote:
Plot[Tan[x], {x, 0, \[Pi]}];

Cette asymptote est souvent indésirable, surtout si l'on a besoin de combiner plusieurs courbes, comme dans le cas suivant:
Plot[{1/(x^2 - 4), Tan[x]}, {x, -4, 4}];

On demande de fabriquer une fonction NewPlot qui corrige ce défaut de Plot.
NewPlot[{1/(x^2 - 4), Tan[x]}, {x, -4, 4}];

On aimerait avoir à disposition une fonction PlotDefiniteIntegral qui dessine la représentation graphique d'une fonction f, et qui hachure la surface située entre la courbe de f, l'axe des abscisses et les droites d'équations x = a et x = b.
PlotDefiniteIntegral[-(2 Cos[x])/3 + 1/3, {-1.5, 3.4}, {x, -2, 4}];

Avec la distribution du logiciel Mathematica, la fréquence des publications va toujours en augmentant. C'est ainsi que l'on voit paraître des livres sur Mathematica également en français. Voici une sélection de publications intéressantes:
Le manuel de référence de Mathematica. Il couvre tous les aspects de l'utilisation et du développement en Mathematica. Malheureusement, les fonctions du front end ne sont pas traitées de manière exhaustive. Ce livre est disponible en d'autres langues, notamment le français et l'allemand.
Le manuel de référence des packages standard de Mathematica. Contient des explications sur l'utilisation des différents packages, avec une description des différentes fonctions disponibles.
Bonne introduction à Mathematica par des exemples.
Un livre de référence en français.
En français, ce livre recouvre approximativement la matière vue dans le présent cours.
Quelques applications très intéressantes de Mathematica, comprenant de nombreux trucs et astuces. Avec un superbe CD-Rom. Excellent ouvrage.
Applications de Mathematica au niveau secondaire 2. En français, avec une disquette (format Macintosh).
Applications très intéressantes de Mathematica, notamment en mathématiques numériques.
Cours d'analyse avec Mathematica.
Applications de Mathematica dans les sciences naturelles: physique, chimie, biologie, etc.
Comme son titre l'indique, ce livre est une introduction à la programmation avec Mathematica.
Excellent livre très technique sur la programmation en Mathematica. Couvre les nouveautés de la version 3.0.
Cette revue contient, outre des articles techniques et des applications dans tous les domaines scientifiques (sciences naturelles, économie, etc.), un grand nombre de trucs et astuces d'utilisation.
Revue consacrée à l'utilisation de Mathematica dans l'éducation et dans la recherche. Un peu trop axée sur l'éducation supérieure.
Il y a deux adresses du site officiel de Mathematica sur le WWW. La première est www.mathematica.com et la deuxième est www.wolfram.com. Ces deux adresses connectent au même site, où l'on a accès à toutes les informations concernant Mathematica, corrections de bugs, mises à jour, applications (packages) professionnelles, etc.
MathSource est une bibliothèque de packages, notebooks et exemples Mathematica, accessible gratuitement sur Internet, par le WWW ou par transfert de fichiers, et même sur CD-ROM.
La manière la plus simple d'accéder à MathSource est le WWW. Son adresse www.mathsource.com. On peut parcourir l'intégralité du site et télécharger immédiatement les documents désirés.
On peut aussi directement télécharger les fichiers par FTP à l'adresse ftp.mathsource.com.
Le forum de discussion comp.soft-sys.math.mathematica est dédié à toute discussion sur Mathematica. Les messages qui y sont postés sont également envoyés à la liste de diffusion MathGroup (voir ci-dessous).
La liste de diffusion MathGroup permet d'entrer en contact avec des utilisateurs de Mathematica. On peut y poser toutes sortes de questions sur le sujet. Pour s'abonner, il faut envoyer un e-mail à l'adresse MathGroup@wolfram.com et demander d'être ajouté à la liste. Les archives du groupe sont consultables à l'adresse www.mathematica.com/mathgroup/. Les messages postés sur MathGroup sont également envoyés au forum de discussion comp.soft-sys.math.mathematica (voir ci-dessus).
Il existe des groupes d'utilisateurs de Mathematica. Ces groupes vous permettent d'entrer en contact avec d'autres utilisateurs parlant votre langue.
Le GROUMF (GROupement des Utilisateurs de Mathematica en France) est un groupe d'utilisateurs français. Pour s'y abonner, il suffit d'envoyer un e-mail à listserv@ext.jussieu.fr, avec comme texte du message: «sub groumf».
Le DMUG est groupe de langue allemande, basé en Suisse. On trouve les informations pour s'inscrire à l'adresse www.mathematica.ch/dmug-liste.html. On peut également accéder directement aux archives de ce groupe par http://www.mathematica.ch/dmug-archive/.
|
Chapitre précédent |
Table des matières |
Chapitre suivant |