Cours d'introduction à
Mathematica 3.0

par
Nicolas Martignoni
Collège Sainte-Croix
1700 Fribourg (Suisse)
Version 2.0

© Copyright 1992-1998 Nicolas Martignoni.
Tous droits réservés.

Chapitre quatrième:

Appendices

top4.1. Quelques problèmes intéressants

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.

top4.1.1. Graduation «sur mesure» [voir la solution]

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 pi. Dessinez la représentation graphique de la fonction sinus de -pi à pi avec des graduations de pi/3 en pi/3.

top4.1.2. Pgcd [voir la solution]

Programmez avec des règles l'algorithme d'Euclide pour calculer le pgcd de deux entiers.

top4.1.3. «Racine numérique» [voir la solution]

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.

top4.1.4. Écart-type [voir la solution]

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é.

top4.1.5. Nombres palindromes [voir la solution]

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.

top4.1.6. Pgcd généralisé [voir la solution]

Généralisez l'exercice donné plus haut pour calculer le pgcd d'un nombre quelconque d'entiers.

top4.1.7. Tangente [voir la solution]

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}];

Graphique 1

top4.1.8. Loterie [voir la solution]

Fabriquez une fonction qui tire aléatoirement n entiers parmi m, sans remise.

top4.1.9. Convergence de la méthode de Newton [voir la solution]

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.

Graphique 2

top4.2. Suggestion pour des projets

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.

top4.2.1. Algèbre linéaire: algorithme de Gauss

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.

top4.2.2. Amélioration de la fonction Plot

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]}];

Graphique 3

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}];

Graphique 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}];

Graphique 5

top4.2.3. Dessin de la surface sous une courbe (intégrale définie)

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}];

Graphique 6

top4.3. Bibliographie

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:

top4.3.1. Manuels de référence: la «bible» de Mathematica

*Stephen Wolfram, The Mathematica Book, third edition, Wolfram Media/Cambridge University Press, 1996.

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.

*Wolfram Research, Mathematica 3.0 Standard Add-on Packages, Wolfram Media/Cambridge University Press, 1996.

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.

top4.3.2. Pour le débutant

*Nancy Blachman, Mathematica, a Pratical Approach, Prentice Hall, 1992.

Bonne introduction à Mathematica par des exemples.

*Thierry Verdel, L'Essentiel de Mathematica 3, Ritme Informatique/Global Design, 199?

Un livre de référence en français.

*Jean-Christophe Culioli, Introduction à Mathematica, Ellipses, 1991.

En français, ce livre recouvre approximativement la matière vue dans le présent cours.

top4.3.3. Enseignement des mathématiques et autres applications

*Theodore Gray and Jerry Glynn, Exploring Mathematics with Mathematica, Addison-Wesley, 1991.

Quelques applications très intéressantes de Mathematica, comprenant de nombreux trucs et astuces. Avec un superbe CD-Rom. Excellent ouvrage.

*Robert Cabessa, Mathematica dans les Lycées, LEP Loisirs et Pédagogie, 1996.

Applications de Mathematica au niveau secondaire 2. En français, avec une disquette (format Macintosh).

*Stan Wagon, Mathematica in Action, W. H. Freeman, 1990.

Applications très intéressantes de Mathematica, notamment en mathématiques numériques.

*Don Brown, Horacio Porta, Jerry Uhl, Calculus&Mathematica, Addison-Wesley, 1994.

Cours d'analyse avec Mathematica.

*Richard Crandall, Mathematica for the Sciences, Addison-Wesley, 1991.

Applications de Mathematica dans les sciences naturelles: physique, chimie, biologie, etc.

top4.3.4. Programmation

*Richard Gaylord, Sam Kamin, Paul Wellin, Introduction to Programming with Mathematica, second edition, TELOS/Springer-Verlag, 1996.

Comme son titre l'indique, ce livre est une introduction à la programmation avec Mathematica.

*Roman Maeder, Programming in Mathematica, third edition, Addison-Wesley, 1996.

Excellent livre très technique sur la programmation en Mathematica. Couvre les nouveautés de la version 3.0.

top4.3.5. Périodiques

*The Mathematica Journal, Academic Press (anciennement chez Miller and Freeman).

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.

*Mathematica in Education and Research, TELOS/Springer-Verlag.

Revue consacrée à l'utilisation de Mathematica dans l'éducation et dans la recherche. Un peu trop axée sur l'éducation supérieure.

top4.4. Autres ressources

top4.4.1 Mathematica sur le World Wide Web

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.

top4.4.2. Bibliothèque de programmes MathSource

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.

top4.4.3. Forum de discussion (newsgroup) comp.soft-sys.math.mathematica

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).

top4.4.4. Liste de diffusion MathGroup

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).

top4.4.5. Groupes d'utilisateurs

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/.